diff options
636 files changed, 19787 insertions, 10483 deletions
diff --git a/apct-tests/perftests/core/src/android/libcore/XmlSerializerPerfTest.java b/apct-tests/perftests/core/src/android/libcore/XmlSerializerPerfTest.java new file mode 100644 index 000000000000..412cb5acbf8b --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/XmlSerializerPerfTest.java @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; +import android.util.Xml; + +import androidx.test.runner.AndroidJUnit4; + +import libcore.util.XmlObjectFactory; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.xmlpull.v1.XmlSerializer; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; + +/** + * Compares various kinds of method invocation. + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class XmlSerializerPerfTest { + + @Rule + public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeFastSerializer_nonIndent_depth100() throws IOException { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + XmlSerializer serializer = Xml.newFastSerializer(); + runTest(serializer, 100); + } + } + + @Test + public void timeFastSerializer_indent_depth100() throws IOException { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + XmlSerializer serializer = Xml.newFastSerializer(); + serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); + runTest(serializer, 100); + } + } + + @Test + public void timeKXmlSerializer_nonIndent_depth100() throws IOException { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + XmlSerializer serializer = XmlObjectFactory.newXmlSerializer(); + runTest(serializer, 100); + } + } + + @Test + public void timeKXmlSerializer_indent_depth100() throws IOException { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + XmlSerializer serializer = XmlObjectFactory.newXmlSerializer(); + serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); + runTest(serializer, 100); + } + } + + private void runTest(XmlSerializer serializer, int depth) throws IOException { + File file = File.createTempFile(XmlSerializerPerfTest.class.getSimpleName(), "tmp"); + try (OutputStream out = new FileOutputStream(file)) { + serializer.setOutput(out, StandardCharsets.UTF_8.name()); + serializer.startDocument(null, true); + writeContent(serializer, depth); + serializer.endDocument(); + } + } + + private void writeContent(XmlSerializer serializer, int depth) throws IOException { + serializer.startTag(null, "tag"); + serializer.attribute(null, "attribute", "value1"); + if (depth > 0) { + writeContent(serializer, depth - 1); + } + serializer.endTag(null, "tag"); + } + +} diff --git a/apct-tests/perftests/windowmanager/Android.bp b/apct-tests/perftests/windowmanager/Android.bp index 365824eb6d00..903cf8ca955a 100644 --- a/apct-tests/perftests/windowmanager/Android.bp +++ b/apct-tests/perftests/windowmanager/Android.bp @@ -31,7 +31,10 @@ android_test { "collector-device-lib", "platform-test-annotations", ], - test_suites: ["device-tests"], + test_suites: [ + "device-tests", + "automotive-tests", + ], data: [":perfetto_artifacts"], platform_apis: true, certificate: "platform", diff --git a/boot/boot-image-profile.txt b/boot/boot-image-profile.txt index c5a9cbd4f07c..7c5035e05ada 100644 --- a/boot/boot-image-profile.txt +++ b/boot/boot-image-profile.txt @@ -159,7 +159,6 @@ HSPLandroid/animation/Animator;->createConstantState()Landroid/content/res/Const HSPLandroid/animation/Animator;->getBackgroundPauseDelay()J HSPLandroid/animation/Animator;->getChangingConfigurations()I HSPLandroid/animation/Animator;->getListeners()Ljava/util/ArrayList; -HSPLandroid/animation/Animator;->isPaused()Z HSPLandroid/animation/Animator;->pause()V HSPLandroid/animation/Animator;->removeAllListeners()V HSPLandroid/animation/Animator;->removeListener(Landroid/animation/Animator$AnimatorListener;)V @@ -232,7 +231,6 @@ HSPLandroid/animation/AnimatorSet;->isInitialized()Z HSPLandroid/animation/AnimatorSet;->isRunning()Z HSPLandroid/animation/AnimatorSet;->isStarted()Z HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder; -HSPLandroid/animation/AnimatorSet;->playSequentially(Ljava/util/List;)V HSPLandroid/animation/AnimatorSet;->playSequentially([Landroid/animation/Animator;)V HSPLandroid/animation/AnimatorSet;->playTogether(Ljava/util/Collection;)V HSPLandroid/animation/AnimatorSet;->playTogether([Landroid/animation/Animator;)V @@ -397,7 +395,6 @@ HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setIntValue HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V HSPLandroid/animation/PropertyValuesHolder$PropertyValues;-><init>()V HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;)V -HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;Landroid/animation/PropertyValuesHolder-IA;)V HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;)V HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/PropertyValuesHolder-IA;)V HSPLandroid/animation/PropertyValuesHolder;->calculateValue(F)V @@ -431,7 +428,6 @@ HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landro HSPLandroid/animation/StateListAnimator$1;-><init>(Landroid/animation/StateListAnimator;)V HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;-><init>(Landroid/animation/StateListAnimator;)V -HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->getChangingConfigurations()I HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Landroid/animation/StateListAnimator; HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Ljava/lang/Object; HSPLandroid/animation/StateListAnimator$Tuple;-><init>([ILandroid/animation/Animator;)V @@ -492,7 +488,6 @@ HSPLandroid/animation/ValueAnimator;->ofInt([I)Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->ofObject(Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->pause()V HSPLandroid/animation/ValueAnimator;->pulseAnimationFrame(J)Z -HSPLandroid/animation/ValueAnimator;->registerDurationScaleChangeListener(Landroid/animation/ValueAnimator$DurationScaleChangeListener;)Z HSPLandroid/animation/ValueAnimator;->removeAllUpdateListeners()V HSPLandroid/animation/ValueAnimator;->removeAnimationCallback()V HSPLandroid/animation/ValueAnimator;->resolveDurationScale()F @@ -518,7 +513,6 @@ HSPLandroid/animation/ValueAnimator;->start()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/animation/ValueAnimator;->unregisterDurationScaleChangeListener(Landroid/animation/ValueAnimator$DurationScaleChangeListener;)Z HSPLandroid/app/Activity$1;-><init>(Landroid/app/Activity;)V HSPLandroid/app/Activity$1;->isTaskRoot()Z HSPLandroid/app/Activity$1;->updateNavigationBarColor(I)V @@ -527,9 +521,6 @@ HSPLandroid/app/Activity$HostCallbacks;-><init>(Landroid/app/Activity;)V HSPLandroid/app/Activity$HostCallbacks;->onAttachFragment(Landroid/app/Fragment;)V HSPLandroid/app/Activity$HostCallbacks;->onGetLayoutInflater()Landroid/view/LayoutInflater; HSPLandroid/app/Activity$HostCallbacks;->onUseFragmentManagerInflaterFactory()Z -HSPLandroid/app/Activity$RequestFinishCallback$$ExternalSyntheticLambda0;-><init>(Landroid/app/Activity;)V -HSPLandroid/app/Activity$RequestFinishCallback$$ExternalSyntheticLambda0;->run()V -HSPLandroid/app/Activity$RequestFinishCallback;->requestFinish()V HSPLandroid/app/Activity;-><init>()V HSPLandroid/app/Activity;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Landroid/app/Instrumentation;Landroid/os/IBinder;ILandroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Landroid/app/Activity$NonConfigurationInstances;Landroid/content/res/Configuration;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;Landroid/os/IBinder;Landroid/os/IBinder;)V HSPLandroid/app/Activity;->attachBaseContext(Landroid/content/Context;)V @@ -552,14 +543,12 @@ HSPLandroid/app/Activity;->findViewById(I)Landroid/view/View; HSPLandroid/app/Activity;->finish()V HSPLandroid/app/Activity;->finish(I)V HSPLandroid/app/Activity;->finishAfterTransition()V -HSPLandroid/app/Activity;->getActionBar()Landroid/app/ActionBar; HSPLandroid/app/Activity;->getActivityOptions()Landroid/app/ActivityOptions; HSPLandroid/app/Activity;->getActivityToken()Landroid/os/IBinder; HSPLandroid/app/Activity;->getApplication()Landroid/app/Application; HSPLandroid/app/Activity;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; HSPLandroid/app/Activity;->getAutofillClientController()Landroid/view/autofill/AutofillClientController; HSPLandroid/app/Activity;->getCallingActivity()Landroid/content/ComponentName; -HSPLandroid/app/Activity;->getCallingPackage()Ljava/lang/String; HSPLandroid/app/Activity;->getComponentName()Landroid/content/ComponentName; HSPLandroid/app/Activity;->getContentCaptureManager()Landroid/view/contentcapture/ContentCaptureManager; HSPLandroid/app/Activity;->getContentCaptureTypeAsString(I)Ljava/lang/String; @@ -590,7 +579,6 @@ HSPLandroid/app/Activity;->isTaskRoot()Z HSPLandroid/app/Activity;->makeVisible()V HSPLandroid/app/Activity;->navigateBack()V HSPLandroid/app/Activity;->notifyContentCaptureManagerIfNeeded(I)V -HSPLandroid/app/Activity;->onActivityResult(IILandroid/content/Intent;)V HSPLandroid/app/Activity;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V HSPLandroid/app/Activity;->onAttachFragment(Landroid/app/Fragment;)V HSPLandroid/app/Activity;->onAttachedToWindow()V @@ -660,7 +648,6 @@ HSPLandroid/app/Activity;->setRequestedOrientation(I)V HSPLandroid/app/Activity;->setResult(ILandroid/content/Intent;)V HSPLandroid/app/Activity;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V HSPLandroid/app/Activity;->setTheme(I)V -HSPLandroid/app/Activity;->setTitle(I)V HSPLandroid/app/Activity;->setTitle(Ljava/lang/CharSequence;)V HSPLandroid/app/Activity;->setVolumeControlStream(I)V HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;)V @@ -686,11 +673,9 @@ HSPLandroid/app/ActivityClient;->activityTopResumedStateLost()V HSPLandroid/app/ActivityClient;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z HSPLandroid/app/ActivityClient;->getActivityClientController()Landroid/app/IActivityClientController; HSPLandroid/app/ActivityClient;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName; -HSPLandroid/app/ActivityClient;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String; HSPLandroid/app/ActivityClient;->getDisplayId(Landroid/os/IBinder;)I HSPLandroid/app/ActivityClient;->getInstance()Landroid/app/ActivityClient; HSPLandroid/app/ActivityClient;->getTaskForActivity(Landroid/os/IBinder;Z)I -HSPLandroid/app/ActivityClient;->onBackPressedOnTaskRoot(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V HSPLandroid/app/ActivityClient;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V HSPLandroid/app/ActivityClient;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V HSPLandroid/app/ActivityClient;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V @@ -705,7 +690,6 @@ HSPLandroid/app/ActivityManager$MemoryInfo;->readFromParcel(Landroid/os/Parcel;) HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$PendingIntentInfo; HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/ActivityManager$PendingIntentInfo;-><init>(Ljava/lang/String;IZI)V -HSPLandroid/app/ActivityManager$PendingIntentInfo;->isImmutable()Z HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RecentTaskInfo; HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;-><init>()V @@ -787,7 +771,6 @@ HSPLandroid/app/ActivityOptions;->fromBundle(Landroid/os/Bundle;)Landroid/app/Ac HSPLandroid/app/ActivityOptions;->getAnimationType()I HSPLandroid/app/ActivityOptions;->makeBasic()Landroid/app/ActivityOptions; HSPLandroid/app/ActivityOptions;->makeRemoteAnimation(Landroid/view/RemoteAnimationAdapter;)Landroid/app/ActivityOptions; -HSPLandroid/app/ActivityOptions;->setLaunchDisplayId(I)Landroid/app/ActivityOptions; HSPLandroid/app/ActivityOptions;->setLaunchWindowingMode(I)V HSPLandroid/app/ActivityOptions;->setSourceInfo(IJ)V HSPLandroid/app/ActivityOptions;->toBundle()Landroid/os/Bundle; @@ -801,13 +784,11 @@ HSPLandroid/app/ActivityTaskManager;->getInstance()Landroid/app/ActivityTaskMana HSPLandroid/app/ActivityTaskManager;->getService()Landroid/app/IActivityTaskManager; HSPLandroid/app/ActivityTaskManager;->getTasks(IZ)Ljava/util/List; HSPLandroid/app/ActivityTaskManager;->getTasks(IZZ)Ljava/util/List; -HSPLandroid/app/ActivityTaskManager;->getTasks(IZZI)Ljava/util/List; HSPLandroid/app/ActivityTaskManager;->supportsMultiWindow(Landroid/content/Context;)Z HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda0;-><init>(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda0;->onConfigurationChanged(Landroid/content/res/Configuration;)V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda1;-><init>()V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda3;-><init>()V -HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda5;->run()V HSPLandroid/app/ActivityThread$2;-><init>(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$2;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V @@ -870,7 +851,6 @@ HSPLandroid/app/ActivityThread$ApplicationThread;->setNetworkBlockSeq(J)V HSPLandroid/app/ActivityThread$ApplicationThread;->setProcessState(I)V HSPLandroid/app/ActivityThread$ApplicationThread;->unstableProviderDied(Landroid/os/IBinder;)V HSPLandroid/app/ActivityThread$ApplicationThread;->updateCompatOverrideScale(Landroid/content/res/CompatibilityInfo;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->updateTimeZone()V HSPLandroid/app/ActivityThread$BindServiceData;-><init>()V HSPLandroid/app/ActivityThread$ContextCleanupInfo;-><init>()V HSPLandroid/app/ActivityThread$CreateBackupAgentData;-><init>()V @@ -896,7 +876,6 @@ HSPLandroid/app/ActivityThread$RequestAssistContextExtras;-><init>()V HSPLandroid/app/ActivityThread$ServiceArgsData;-><init>()V HSPLandroid/app/ActivityThread$ServiceArgsData;->toString()Ljava/lang/String; HSPLandroid/app/ActivityThread;->-$$Nest$fgetmTransactionExecutor(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor; -HSPLandroid/app/ActivityThread;->-$$Nest$mgetGetProviderKey(Landroid/app/ActivityThread;Ljava/lang/String;I)Landroid/app/ActivityThread$ProviderKey; HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindApplication(Landroid/app/ActivityThread;Landroid/app/ActivityThread$AppBindData;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleCreateBackupAgent(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V @@ -908,12 +887,8 @@ HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpResources(Landroid/app/Activ HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleEnterAnimationComplete(Landroid/app/ActivityThread;Landroid/os/IBinder;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleReceiver(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ReceiverData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleServiceArgs(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ServiceArgsData;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetContentCaptureOptionsCallback(Landroid/app/ActivityThread;Ljava/lang/String;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetCoreSettings(Landroid/app/ActivityThread;Landroid/os/Bundle;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleStopService(Landroid/app/ActivityThread;Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleUnbindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mpurgePendingResources(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread;->-$$Nest$msendMessage(Landroid/app/ActivityThread;ILjava/lang/Object;IIZ)V HSPLandroid/app/ActivityThread;-><init>()V HSPLandroid/app/ActivityThread;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider; @@ -1078,7 +1053,6 @@ HSPLandroid/app/AlarmManager;->legacyExactLength()J HSPLandroid/app/AlarmManager;->set(IJJJLandroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;Landroid/os/WorkSource;)V HSPLandroid/app/AlarmManager;->set(IJLandroid/app/PendingIntent;)V HSPLandroid/app/AlarmManager;->set(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V -HSPLandroid/app/AlarmManager;->setAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V HSPLandroid/app/AlarmManager;->setExact(IJLandroid/app/PendingIntent;)V HSPLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V HSPLandroid/app/AlarmManager;->setExactAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V @@ -1113,9 +1087,7 @@ HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastAccessEvent(III)Landroi HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastRejectEvent(III)Landroid/app/AppOpsManager$NoteOpEvent; HSPLandroid/app/AppOpsManager$NoteOpEvent;->getDuration()J HSPLandroid/app/AppOpsManager$NoteOpEvent;->getNoteTime()J -HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1$$ExternalSyntheticLambda0;->run()V+]Landroid/app/AppOpsManager$OnOpNotedCallback$1;Landroid/app/AppOpsManager$OnOpNotedCallback$1; HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;-><init>(Landroid/app/AppOpsManager$OnOpNotedCallback;)V -HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;->lambda$opNoted$0$android-app-AppOpsManager$OnOpNotedCallback$1(Landroid/app/AsyncNotedAppOp;)V HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;->opNoted(Landroid/app/AsyncNotedAppOp;)V HSPLandroid/app/AppOpsManager$OnOpNotedCallback;-><init>()V HSPLandroid/app/AppOpsManager$OnOpNotedCallback;->getAsyncNotedExecutor()Ljava/util/concurrent/Executor; @@ -1134,7 +1106,6 @@ HSPLandroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->checkPackage(ILjava/lang/String;)V HSPLandroid/app/AppOpsManager;->collectNoteOpCallsForValidation(I)V -HSPLandroid/app/AppOpsManager;->collectNotedOpSync(Landroid/app/SyncNotedAppOp;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/app/SyncNotedAppOp;Landroid/app/SyncNotedAppOp;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/app/AppOpsManager;->extractFlagsFromKey(J)I HSPLandroid/app/AppOpsManager;->extractUidStateFromKey(J)I HSPLandroid/app/AppOpsManager;->finishNotedAppOpsCollection()V @@ -1154,11 +1125,9 @@ HSPLandroid/app/AppOpsManager;->makeKey(II)J HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(ILandroid/content/AttributionSource;Ljava/lang/String;Z)I HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String; @@ -1292,13 +1261,11 @@ HSPLandroid/app/ApplicationPackageManager;->getCachedIcon(Landroid/app/Applicati HSPLandroid/app/ApplicationPackageManager;->getCachedString(Landroid/app/ApplicationPackageManager$ResourceName;)Ljava/lang/CharSequence; HSPLandroid/app/ApplicationPackageManager;->getComponentEnabledSetting(Landroid/content/ComponentName;)I HSPLandroid/app/ApplicationPackageManager;->getDefaultTextClassifierPackageName()Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getDevicePolicyManager()Landroid/app/admin/DevicePolicyManager;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; HSPLandroid/app/ApplicationPackageManager;->getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable; HSPLandroid/app/ApplicationPackageManager;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo; HSPLandroid/app/ApplicationPackageManager;->getInstalledApplications(I)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(II)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(Landroid/content/pm/PackageManager$ApplicationInfoFlags;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledModules(I)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(I)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(Landroid/content/pm/PackageManager$PackageInfoFlags;)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(II)Ljava/util/List; @@ -1323,8 +1290,6 @@ HSPLandroid/app/ApplicationPackageManager;->getPermissionControllerPackageName() HSPLandroid/app/ApplicationPackageManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I HSPLandroid/app/ApplicationPackageManager;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo; HSPLandroid/app/ApplicationPackageManager;->getPermissionManager()Landroid/permission/PermissionManager; -HSPLandroid/app/ApplicationPackageManager;->getProperty(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/PackageManager$Property; -HSPLandroid/app/ApplicationPackageManager;->getPropertyAsUser(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PackageManager$Property; HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo; HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ProviderInfo; HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo; @@ -1332,7 +1297,6 @@ HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/Com 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(Ljava/lang/String;)Landroid/content/res/Resources; -HSPLandroid/app/ApplicationPackageManager;->getRotationResolverPackageName()Ljava/lang/String; HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo; HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ServiceInfo; HSPLandroid/app/ApplicationPackageManager;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String; @@ -1399,7 +1363,6 @@ HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Landroi HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/AsyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;J)V HSPLandroid/app/AsyncNotedAppOp;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/AsyncNotedAppOp;->getAttributionTag()Ljava/lang/String; HSPLandroid/app/AsyncNotedAppOp;->getMessage()Ljava/lang/String; HSPLandroid/app/AsyncNotedAppOp;->getOp()Ljava/lang/String; HSPLandroid/app/AsyncNotedAppOp;->onConstructed()V @@ -1418,16 +1381,11 @@ HSPLandroid/app/BackStackRecord;->isFragmentPostponed(Landroid/app/BackStackReco HSPLandroid/app/BackStackRecord;->isPostponed()Z HSPLandroid/app/BackStackRecord;->runOnCommitRunnables()V HSPLandroid/app/BroadcastOptions;-><init>()V -HSPLandroid/app/BroadcastOptions;->isTemporaryAppAllowlistSet()Z HSPLandroid/app/BroadcastOptions;->makeBasic()Landroid/app/BroadcastOptions; -HSPLandroid/app/BroadcastOptions;->setTemporaryAppAllowlist(JIILjava/lang/String;)V HSPLandroid/app/BroadcastOptions;->setTemporaryAppWhitelistDuration(J)V HSPLandroid/app/BroadcastOptions;->toBundle()Landroid/os/Bundle; HSPLandroid/app/ClientTransactionHandler;-><init>()V HSPLandroid/app/ClientTransactionHandler;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/ComponentOptions;-><init>(Landroid/os/Bundle;)V+]Landroid/app/ComponentOptions;Landroid/app/ActivityOptions;,Landroid/app/BroadcastOptions;]Landroid/os/Bundle;Landroid/os/Bundle; -HSPLandroid/app/ComponentOptions;->setPendingIntentBackgroundActivityLaunchAllowed(Z)V -HSPLandroid/app/ComponentOptions;->setPendingIntentBackgroundActivityLaunchAllowedByPermission(Z)V HSPLandroid/app/ConfigurationController;-><init>(Landroid/app/ActivityThreadInternal;)V HSPLandroid/app/ConfigurationController;->applyCompatConfiguration()Landroid/content/res/Configuration; HSPLandroid/app/ConfigurationController;->createNewConfigAndUpdateIfNotNull(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration; @@ -1460,7 +1418,6 @@ HSPLandroid/app/ContextImpl$ApplicationContentResolver;->resolveUserIdFromAuthor 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;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z -HSPLandroid/app/ContextImpl;->bindService(Landroid/content/Intent;ILjava/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 @@ -1571,7 +1528,6 @@ HSPLandroid/app/ContextImpl;->getWindowContextToken()Landroid/os/IBinder; HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V HSPLandroid/app/ContextImpl;->initializeTheme()V HSPLandroid/app/ContextImpl;->isAssociatedWithDisplay()Z -HSPLandroid/app/ContextImpl;->isConfigurationContext()Z+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; HSPLandroid/app/ContextImpl;->isCredentialProtectedStorage()Z HSPLandroid/app/ContextImpl;->isDeviceProtectedStorage()Z HSPLandroid/app/ContextImpl;->isRestricted()Z @@ -1644,10 +1600,8 @@ HSPLandroid/app/Dialog;->dispatchOnCreate(Landroid/os/Bundle;)V HSPLandroid/app/Dialog;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z HSPLandroid/app/Dialog;->findViewById(I)Landroid/view/View; HSPLandroid/app/Dialog;->getContext()Landroid/content/Context; -HSPLandroid/app/Dialog;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher; HSPLandroid/app/Dialog;->getWindow()Landroid/view/Window; HSPLandroid/app/Dialog;->hide()V -HSPLandroid/app/Dialog;->isShowing()Z HSPLandroid/app/Dialog;->onAttachedToWindow()V HSPLandroid/app/Dialog;->onContentChanged()V HSPLandroid/app/Dialog;->onCreate(Landroid/os/Bundle;)V @@ -1872,10 +1826,8 @@ HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityStopped(Landroid/ HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityTopResumedStateLost()V HSPLandroid/app/IActivityClientController$Stub$Proxy;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z HSPLandroid/app/IActivityClientController$Stub$Proxy;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName; -HSPLandroid/app/IActivityClientController$Stub$Proxy;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String; HSPLandroid/app/IActivityClientController$Stub$Proxy;->getDisplayId(Landroid/os/IBinder;)I HSPLandroid/app/IActivityClientController$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I -HSPLandroid/app/IActivityClientController$Stub$Proxy;->onBackPressedOnTaskRoot(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V HSPLandroid/app/IActivityClientController$Stub$Proxy;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V @@ -1936,7 +1888,6 @@ HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getAppTasks(Ljava/lang/String; HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo; HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLockTaskModeState()I HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTasks(IZZI)Ljava/util/List;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I HSPLandroid/app/IActivityTaskManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityTaskManager; @@ -1989,8 +1940,6 @@ HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenMode()I HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenRules()Ljava/util/List; HSPLandroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z HSPLandroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager; -HSPLandroid/app/IRequestFinishCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IRequestFinishCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/app/IServiceConnection$Stub;-><init>()V HSPLandroid/app/IServiceConnection$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/app/IServiceConnection$Stub;->getDefaultTransactionName(I)Ljava/lang/String; @@ -2000,8 +1949,6 @@ HSPLandroid/app/IServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroi HSPLandroid/app/ITaskStackListener$Stub;-><init>()V HSPLandroid/app/ITaskStackListener$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/app/ITaskStackListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/ITransientNotificationCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/ITransientNotificationCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/app/IUiAutomationConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiAutomationConnection; HSPLandroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I @@ -2012,7 +1959,6 @@ HSPLandroid/app/IUriGrantsManager$Stub$Proxy;->getUriPermissions(Ljava/lang/Stri HSPLandroid/app/IUserSwitchObserver$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperColors(III)Landroid/app/WallpaperColors; HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperInfo(I)Landroid/app/WallpaperInfo; -HSPLandroid/app/IWallpaperManager$Stub$Proxy;->isWallpaperSupported(Ljava/lang/String;)Z HSPLandroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager; HSPLandroid/app/IWallpaperManagerCallback$Stub;-><init>()V HSPLandroid/app/IWallpaperManagerCallback$Stub;->asBinder()Landroid/os/IBinder; @@ -2180,7 +2126,6 @@ HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon; HSPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput; -HSPLandroid/app/Notification$Action;->getSemanticAction()I HSPLandroid/app/Notification$Action;->isContextual()Z HSPLandroid/app/Notification$Action;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/Notification$BigPictureStyle;-><init>()V @@ -2216,7 +2161,6 @@ HSPLandroid/app/Notification$Builder;->setAutoCancel(Z)Landroid/app/Notification HSPLandroid/app/Notification$Builder;->setBadgeIconType(I)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setBubbleMetadata(Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setContent(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setContentInfo(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; @@ -2271,7 +2215,6 @@ HSPLandroid/app/Notification$MediaStyle;-><init>()V HSPLandroid/app/Notification$MediaStyle;->addExtras(Landroid/os/Bundle;)V HSPLandroid/app/Notification$MediaStyle;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification; HSPLandroid/app/Notification$MediaStyle;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MediaStyle;->setShowActionsInCompactView([I)Landroid/app/Notification$MediaStyle; HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;)V HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;Z)V HSPLandroid/app/Notification$MessagingStyle$Message;->getDataUri()Landroid/net/Uri; @@ -2302,8 +2245,6 @@ HSPLandroid/app/Notification$Style;->reduceImageSizes(Landroid/content/Context;) 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;->-$$Nest$fputmChannelId(Landroid/app/Notification;Ljava/lang/String;)V -HSPLandroid/app/Notification;->-$$Nest$smgetParcelableArrayFromBundle(Landroid/os/Bundle;Ljava/lang/String;Ljava/lang/Class;)[Landroid/os/Parcelable; HSPLandroid/app/Notification;-><init>()V HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/Context;Landroid/app/Notification;)V @@ -2354,7 +2295,6 @@ HSPLandroid/app/NotificationChannel;->enableVibration(Z)V HSPLandroid/app/NotificationChannel;->equals(Ljava/lang/Object;)Z HSPLandroid/app/NotificationChannel;->getAudioAttributes()Landroid/media/AudioAttributes; HSPLandroid/app/NotificationChannel;->getConversationId()Ljava/lang/String; -HSPLandroid/app/NotificationChannel;->getDeletedTimeMs()J HSPLandroid/app/NotificationChannel;->getDescription()Ljava/lang/String; HSPLandroid/app/NotificationChannel;->getGroup()Ljava/lang/String; HSPLandroid/app/NotificationChannel;->getId()Ljava/lang/String; @@ -2432,7 +2372,6 @@ HSPLandroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Not HSPLandroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I HSPLandroid/app/PendingIntent$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/app/PendingIntent$$ExternalSyntheticLambda1;->execute(Ljava/lang/Runnable;)V HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent; HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/PendingIntent$FinishedDispatcher;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V @@ -2459,7 +2398,6 @@ HSPLandroid/app/PendingIntent;->getIntentSender()Landroid/content/IntentSender; HSPLandroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; HSPLandroid/app/PendingIntent;->hashCode()I HSPLandroid/app/PendingIntent;->isActivity()Z -HSPLandroid/app/PendingIntent;->isImmutable()Z HSPLandroid/app/PendingIntent;->send()V HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;)V HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)V @@ -2489,8 +2427,6 @@ HSPLandroid/app/Person;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PictureInPictureParams; HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/PictureInPictureParams;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/PictureInPictureParams;->writeRationalToParcel(Landroid/util/Rational;Landroid/os/Parcel;)V -HSPLandroid/app/PictureInPictureParams;->writeToParcel(Landroid/os/Parcel;I)V+]Ljava/lang/Boolean;Ljava/lang/Boolean;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/PropertyInvalidatedCache$1;-><init>(Landroid/app/PropertyInvalidatedCache;IFZ)V HSPLandroid/app/PropertyInvalidatedCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z HSPLandroid/app/PropertyInvalidatedCache$DefaultComputer;-><init>(Landroid/app/PropertyInvalidatedCache;)V @@ -2514,7 +2450,6 @@ HSPLandroid/app/PropertyInvalidatedCache;->dumpCacheInfo(Landroid/os/ParcelFileD HSPLandroid/app/PropertyInvalidatedCache;->getActiveCaches()Ljava/util/ArrayList; HSPLandroid/app/PropertyInvalidatedCache;->getActiveCorks()Ljava/util/ArrayList; HSPLandroid/app/PropertyInvalidatedCache;->getCurrentNonce()J -HSPLandroid/app/PropertyInvalidatedCache;->getNonce(Ljava/lang/String;)J HSPLandroid/app/PropertyInvalidatedCache;->invalidateCache(Ljava/lang/String;)V HSPLandroid/app/PropertyInvalidatedCache;->invalidateCacheLocked(Ljava/lang/String;)V HSPLandroid/app/PropertyInvalidatedCache;->isDisabled()Z @@ -2524,7 +2459,6 @@ HSPLandroid/app/PropertyInvalidatedCache;->query(Ljava/lang/Object;)Ljava/lang/O 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;->setNonce(Ljava/lang/String;J)V HSPLandroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/app/QueuedWork;->-$$Nest$smprocessPendingWork()V @@ -2543,7 +2477,6 @@ HSPLandroid/app/RemoteAction;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/RemoteAction;->getActionIntent()Landroid/app/PendingIntent; HSPLandroid/app/RemoteAction;->getIcon()Landroid/graphics/drawable/Icon; HSPLandroid/app/RemoteAction;->getTitle()Ljava/lang/CharSequence; -PLandroid/app/RemoteAction;->setEnabled(Z)V HSPLandroid/app/RemoteAction;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteInput; HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -2555,7 +2488,6 @@ HSPLandroid/app/RemoteInput;->getChoices()[Ljava/lang/CharSequence; HSPLandroid/app/RemoteInput;->getEditChoicesBeforeSending()I HSPLandroid/app/RemoteInput;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/ResourcesManager$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z -HSPLandroid/app/ResourcesManager$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/app/ResourcesManager$ActivityResource;-><init>()V HSPLandroid/app/ResourcesManager$ActivityResources;-><init>()V HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;-><init>(Landroid/app/ResourcesManager;)V @@ -2726,36 +2658,37 @@ HSPLandroid/app/SystemServiceRegistry$109;->createService(Landroid/app/ContextIm HSPLandroid/app/SystemServiceRegistry$110;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$111;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$112;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$113;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionManager; HSPLandroid/app/SystemServiceRegistry$113;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Landroid/permission/LegacyPermissionManager; HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$115;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionCheckerManager; HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$117;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$118;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$11;->createService(Landroid/app/ContextImpl;)Landroid/view/textclassifier/TextClassificationManager; HSPLandroid/app/SystemServiceRegistry$11;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$121;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$122;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$123;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$124;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$125;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$126;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$127;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$128;->createService(Landroid/app/ContextImpl;)Landroid/hardware/devicestate/DeviceStateManager; HSPLandroid/app/SystemServiceRegistry$128;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$129;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$130;->createService(Landroid/app/ContextImpl;)Landroid/app/GameManager; HSPLandroid/app/SystemServiceRegistry$130;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$131;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$134;->createService()Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$135;->createService()Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$136;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$137;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/app/ContextImpl;)Landroid/content/ClipboardManager; HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$17$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/app/SystemServiceRegistry$17$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$17;->createService(Landroid/app/ContextImpl;)Landroid/net/TetheringManager; HSPLandroid/app/SystemServiceRegistry$17;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$17;->lambda$createService$0()Landroid/os/IBinder; HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/AccessibilityManager; HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager; @@ -2764,7 +2697,6 @@ HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager; HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Landroid/nfc/NfcManager; HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$25;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$27;->createService()Landroid/hardware/input/InputManager; @@ -2783,7 +2715,6 @@ HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager; HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkPolicyManager; HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager; HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2797,9 +2728,7 @@ HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$41;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager; HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorPrivacyManager; HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Landroid/app/StatusBarManager; HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager; HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2824,7 +2753,6 @@ HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Landroid/os/Vibrator; HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Landroid/app/WallpaperManager; HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager; @@ -2835,17 +2763,11 @@ HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Landroid/hardware/camera2/CameraManager; HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/LauncherApps; HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Landroid/content/RestrictionsManager; HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Landroid/companion/CompanionDeviceManager; HSPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Landroid/hardware/fingerprint/FingerprintManager; -HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Landroid/hardware/biometrics/BiometricManager; HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$75;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2874,7 +2796,6 @@ HSPLandroid/app/SystemServiceRegistry$94;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager; HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Landroid/view/contentcapture/ContentCaptureManager; HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$98;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$99;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2888,7 +2809,6 @@ HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)L HSPLandroid/app/TaskInfo;-><init>()V HSPLandroid/app/TaskInfo;->getWindowingMode()I HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/TaskInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/window/WindowContainerToken;Landroid/window/WindowContainerToken;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/TaskStackListener;-><init>()V HSPLandroid/app/TaskStackListener;->onActivityRequestedOrientationChanged(II)V HSPLandroid/app/TaskStackListener;->onActivityRestartAttempt(Landroid/app/ActivityManager$RunningTaskInfo;ZZZ)V @@ -2897,7 +2817,6 @@ HSPLandroid/app/TaskStackListener;->onTaskCreated(ILandroid/content/ComponentNam HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V HSPLandroid/app/TaskStackListener;->onTaskFocusChanged(IZ)V -PLandroid/app/TaskStackListener;->onTaskMovedToBack(Landroid/app/ActivityManager$RunningTaskInfo;)V HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(I)V HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(I)V @@ -2905,7 +2824,6 @@ HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(Landroid/app/ActivityMa HSPLandroid/app/TaskStackListener;->onTaskRemoved(I)V HSPLandroid/app/TaskStackListener;->onTaskRequestedOrientationChanged(II)V HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>()V -HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>(Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager-IA;)V HSPLandroid/app/UiModeManager;-><init>(Landroid/content/Context;)V HSPLandroid/app/UiModeManager;->getActiveProjectionTypes()I HSPLandroid/app/UiModeManager;->getCurrentModeType()I @@ -2915,11 +2833,9 @@ HSPLandroid/app/UriGrantsManager;->getService()Landroid/app/IUriGrantsManager; HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperColors; HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/WallpaperColors;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/WallpaperColors;->getAllColors()Ljava/util/Map; HSPLandroid/app/WallpaperColors;->getColorHints()I HSPLandroid/app/WallpaperColors;->getMainColors()Ljava/util/List; HSPLandroid/app/WallpaperManager$Globals$1;-><init>(Landroid/app/WallpaperManager$Globals;)V -HSPLandroid/app/WallpaperManager$Globals;->-$$Nest$fgetmService(Landroid/app/WallpaperManager$Globals;)Landroid/app/IWallpaperManager; HSPLandroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V HSPLandroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V HSPLandroid/app/WallpaperManager$Globals;->getWallpaperColors(III)Landroid/app/WallpaperColors; @@ -2977,7 +2893,6 @@ HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;->apply(Ljav HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda6;-><init>(Landroid/app/admin/DevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda7;-><init>(Landroid/app/admin/DevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8;-><init>(Landroid/app/admin/DevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda9;-><init>(Landroid/app/admin/DevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;Z)V @@ -3007,23 +2922,18 @@ HSPLandroid/app/admin/DevicePolicyManager;->isOrganizationOwnedDeviceWithManaged HSPLandroid/app/admin/DevicePolicyManager;->isParentInstance()Z HSPLandroid/app/admin/DevicePolicyManager;->isProfileOwnerApp(Ljava/lang/String;)Z HSPLandroid/app/admin/DevicePolicyManager;->lambda$new$2$android-app-admin-DevicePolicyManager(Landroid/util/Pair;)Ljava/lang/Integer; -HSPLandroid/app/admin/DevicePolicyManager;->lambda$new$5$android-app-admin-DevicePolicyManager(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/app/admin/DevicePolicyManager;->myUserId()I HSPLandroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V HSPLandroid/app/admin/DevicePolicyResourcesManager;-><clinit>()V HSPLandroid/app/admin/DevicePolicyResourcesManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyResourcesManager;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/admin/DevicePolicyResourcesManager;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/admin/DevicePolicyResourcesManager;->getString(Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/lang/String; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getActiveAdmins(I)Ljava/util/List; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName; -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordQuality(Landroid/content/ComponentName;IZ)I HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwnerAsUser(I)Landroid/content/ComponentName; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStorageEncryptionStatus(Ljava/lang/String;I)I -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getString(Ljava/lang/String;)Landroid/app/admin/ParcelableResource; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasDeviceOwner()Z HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAdminActive(Landroid/content/ComponentName;I)Z HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isOrganizationOwnedDeviceWithManagedProfile()Z @@ -3031,7 +2941,6 @@ HSPLandroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinde HSPLandroid/app/admin/ParcelableResource$1;-><init>()V HSPLandroid/app/admin/ParcelableResource;-><clinit>()V HSPLandroid/app/admin/ParcelableResource;->loadDefaultDrawable(Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/admin/ParcelableResource;->loadDefaultString(Ljava/util/function/Supplier;)Ljava/lang/String; HSPLandroid/app/assist/AssistContent;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistStructure; @@ -3183,37 +3092,9 @@ HSPLandroid/app/job/IJobService$Stub;->getTransactionName(I)Ljava/lang/String; HSPLandroid/app/job/IJobService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo; HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBackoffPolicy(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBias(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipData(Landroid/app/job/JobInfo$Builder;)Landroid/content/ClipData; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipGrantFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmConstraintFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/PersistableBundle; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlexMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasEarlyConstraint(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasLateConstraint(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmInitialBackoffMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIntervalMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPeriodic(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPersisted(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobId(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobService(Landroid/app/job/JobInfo$Builder;)Landroid/content/ComponentName; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMaxExecutionDelayMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinLatencyMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinimumNetworkChunkBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkDownloadBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkRequest(Landroid/app/job/JobInfo$Builder;)Landroid/net/NetworkRequest; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkUploadBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmPriority(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTransientExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/Bundle; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentMaxDelay(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUpdateDelay(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUris(Landroid/app/job/JobInfo$Builder;)Ljava/util/ArrayList; HSPLandroid/app/job/JobInfo$Builder;-><init>(ILandroid/content/ComponentName;)V HSPLandroid/app/job/JobInfo$Builder;->addTriggerContentUri(Landroid/app/job/JobInfo$TriggerContentUri;)Landroid/app/job/JobInfo$Builder; HSPLandroid/app/job/JobInfo$Builder;->build()Landroid/app/job/JobInfo; -HSPLandroid/app/job/JobInfo$Builder;->build(Z)Landroid/app/job/JobInfo;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo; HSPLandroid/app/job/JobInfo$Builder;->setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder; HSPLandroid/app/job/JobInfo$Builder;->setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder; HSPLandroid/app/job/JobInfo$Builder;->setImportantWhileForeground(Z)Landroid/app/job/JobInfo$Builder; @@ -3239,7 +3120,6 @@ 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;Landroid/app/job/JobInfo-IA;)V HSPLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/net/NetworkRequest$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/job/JobInfo;->enforceValidity(Z)V HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle; @@ -3333,22 +3213,14 @@ HSPLandroid/app/prediction/AppTargetId;-><init>(Ljava/lang/String;)V HSPLandroid/app/prediction/AppTargetId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/prediction/IPredictionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/app/prediction/IPredictionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/prediction/IPredictionCallback; -HSPLandroid/app/search/SearchContext$1;-><init>()V -HSPLandroid/app/search/SearchContext;-><clinit>()V -HSPLandroid/app/search/SearchSessionId$1;-><init>()V -HSPLandroid/app/search/SearchSessionId;-><clinit>()V HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityConfigurationChangeItem; HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V HSPLandroid/app/servertransaction/ActivityLifecycleItem;-><init>()V -HSPLandroid/app/servertransaction/ActivityLifecycleItem;->recycle()V -HSPLandroid/app/servertransaction/ActivityRelaunchItem;-><init>()V HSPLandroid/app/servertransaction/ActivityRelaunchItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/ActivityRelaunchItem;->obtain(Ljava/util/List;Ljava/util/List;ILandroid/util/MergedConfiguration;Z)Landroid/app/servertransaction/ActivityRelaunchItem; HSPLandroid/app/servertransaction/ActivityRelaunchItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/servertransaction/ActivityRelaunchItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V -HSPLandroid/app/servertransaction/ActivityRelaunchItem;->recycle()V HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityResultItem; HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/ActivityResultItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V @@ -3360,17 +3232,12 @@ HSPLandroid/app/servertransaction/BaseClientRequest;->postExecute(Landroid/app/C HSPLandroid/app/servertransaction/BaseClientRequest;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ClientTransaction; HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/ClientTransaction;-><init>()V HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ClientTransaction-IA;)V -HSPLandroid/app/servertransaction/ClientTransaction;->addCallback(Landroid/app/servertransaction/ClientTransactionItem;)V HSPLandroid/app/servertransaction/ClientTransaction;->getActivityToken()Landroid/os/IBinder; HSPLandroid/app/servertransaction/ClientTransaction;->getCallbacks()Ljava/util/List; HSPLandroid/app/servertransaction/ClientTransaction;->getLifecycleStateRequest()Landroid/app/servertransaction/ActivityLifecycleItem; -HSPLandroid/app/servertransaction/ClientTransaction;->obtain(Landroid/app/IApplicationThread;Landroid/os/IBinder;)Landroid/app/servertransaction/ClientTransaction; HSPLandroid/app/servertransaction/ClientTransaction;->preExecute(Landroid/app/ClientTransactionHandler;)V -HSPLandroid/app/servertransaction/ClientTransaction;->recycle()V -HSPLandroid/app/servertransaction/ClientTransaction;->setLifecycleStateRequest(Landroid/app/servertransaction/ActivityLifecycleItem;)V HSPLandroid/app/servertransaction/ClientTransactionItem;-><init>()V HSPLandroid/app/servertransaction/ClientTransactionItem;->getPostExecutionState()I HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ConfigurationChangeItem; @@ -3395,8 +3262,6 @@ HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/NewIntentItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/servertransaction/NewIntentItem;->getPostExecutionState()I -HSPLandroid/app/servertransaction/ObjectPool;->obtain(Ljava/lang/Class;)Landroid/app/servertransaction/ObjectPoolItem;+]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/app/servertransaction/ObjectPool;->recycle(Landroid/app/servertransaction/ObjectPoolItem;)V+]Ljava/lang/Object;megamorphic_types]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/PauseActivityItem; HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/PauseActivityItem;-><init>(Landroid/os/Parcel;)V @@ -3482,89 +3347,19 @@ HSPLandroid/app/slice/SliceSpec;->getRevision()I HSPLandroid/app/slice/SliceSpec;->getType()Ljava/lang/String; HSPLandroid/app/slice/SliceSpec;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/smartspace/SmartspaceAction$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/SmartspaceAction; -HSPLandroid/app/smartspace/SmartspaceAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/SmartspaceAction$Builder;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/smartspace/SmartspaceAction$Builder;->build()Landroid/app/smartspace/SmartspaceAction; -HSPLandroid/app/smartspace/SmartspaceAction$Builder;->setIntent(Landroid/content/Intent;)Landroid/app/smartspace/SmartspaceAction$Builder; HSPLandroid/app/smartspace/SmartspaceAction;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceAction;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/smartspace/SmartspaceAction;-><init>(Ljava/lang/String;Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;)V -HSPLandroid/app/smartspace/SmartspaceAction;-><init>(Ljava/lang/String;Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;Landroid/app/smartspace/SmartspaceAction-IA;)V -HSPLandroid/app/smartspace/SmartspaceAction;->getExtras()Landroid/os/Bundle; -HSPLandroid/app/smartspace/SmartspaceAction;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/smartspace/SmartspaceConfig$1;-><init>()V HSPLandroid/app/smartspace/SmartspaceConfig;-><clinit>()V HSPLandroid/app/smartspace/SmartspaceSessionId$1;-><init>()V HSPLandroid/app/smartspace/SmartspaceSessionId;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceSessionId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/smartspace/SmartspaceTarget$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/SmartspaceTarget; -HSPLandroid/app/smartspace/SmartspaceTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/SmartspaceTarget$Builder;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)V -HSPLandroid/app/smartspace/SmartspaceTarget$Builder;->build()Landroid/app/smartspace/SmartspaceTarget; -HSPLandroid/app/smartspace/SmartspaceTarget$Builder;->setFeatureType(I)Landroid/app/smartspace/SmartspaceTarget$Builder; HSPLandroid/app/smartspace/SmartspaceTarget;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Landroid/os/Parcel;Landroid/app/smartspace/SmartspaceTarget-IA;)V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Ljava/lang/String;Landroid/app/smartspace/SmartspaceAction;Landroid/app/smartspace/SmartspaceAction;JJFLjava/util/List;Ljava/util/List;IZZLjava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/lang/String;Landroid/net/Uri;Landroid/appwidget/AppWidgetProviderInfo;Landroid/app/smartspace/uitemplatedata/BaseTemplateData;)V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Ljava/lang/String;Landroid/app/smartspace/SmartspaceAction;Landroid/app/smartspace/SmartspaceAction;JJFLjava/util/List;Ljava/util/List;IZZLjava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/lang/String;Landroid/net/Uri;Landroid/appwidget/AppWidgetProviderInfo;Landroid/app/smartspace/uitemplatedata/BaseTemplateData;Landroid/app/smartspace/SmartspaceTarget-IA;)V -HSPLandroid/app/smartspace/SmartspaceTarget;->getComponentName()Landroid/content/ComponentName; -HSPLandroid/app/smartspace/SmartspaceTarget;->getCreationTimeMillis()J -HSPLandroid/app/smartspace/SmartspaceTarget;->getFeatureType()I -HSPLandroid/app/smartspace/SmartspaceTarget;->getSmartspaceTargetId()Ljava/lang/String; -HSPLandroid/app/smartspace/SmartspaceTarget;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/smartspace/SmartspaceTargetEvent$1;-><init>()V HSPLandroid/app/smartspace/SmartspaceTargetEvent;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceTargetEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/smartspace/SmartspaceUtils;->isEmpty(Landroid/app/smartspace/uitemplatedata/Text;)Z -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/BaseTemplateData; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Icon$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/Icon$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/Icon; -HSPLandroid/app/smartspace/uitemplatedata/Icon$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/Icon;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/Icon;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Icon;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/TapAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/TapAction; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$Builder;-><init>(Ljava/lang/CharSequence;)V -HSPLandroid/app/smartspace/uitemplatedata/TapAction$Builder;->build()Landroid/app/smartspace/uitemplatedata/TapAction; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$Builder;->setIntent(Landroid/content/Intent;)Landroid/app/smartspace/uitemplatedata/TapAction$Builder; -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><init>(Ljava/lang/CharSequence;Landroid/content/Intent;Landroid/app/PendingIntent;Landroid/os/UserHandle;Landroid/os/Bundle;Z)V -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><init>(Ljava/lang/CharSequence;Landroid/content/Intent;Landroid/app/PendingIntent;Landroid/os/UserHandle;Landroid/os/Bundle;ZLandroid/app/smartspace/uitemplatedata/TapAction-IA;)V -HSPLandroid/app/smartspace/uitemplatedata/TapAction;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Text$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/Text$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/Text; -HSPLandroid/app/smartspace/uitemplatedata/Text$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/Text;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/Text;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Text;->getText()Ljava/lang/CharSequence; -HSPLandroid/app/smartspace/uitemplatedata/Text;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/text/TextUtils$TruncateAt;Landroid/text/TextUtils$TruncateAt;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/time/TimeZoneCapabilities$Builder;-><init>(Landroid/os/UserHandle;)V HSPLandroid/app/time/TimeZoneCapabilities$Builder;->build()Landroid/app/time/TimeZoneCapabilities; HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureAutoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureGeoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; -HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setSuggestManualTimeZoneCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; HSPLandroid/app/time/TimeZoneCapabilities$Builder;->verifyCapabilitySet(ILjava/lang/String;)V HSPLandroid/app/time/TimeZoneCapabilities;-><init>(Landroid/app/time/TimeZoneCapabilities$Builder;)V HSPLandroid/app/time/TimeZoneCapabilitiesAndConfig;-><init>(Landroid/app/time/TimeZoneCapabilities;Landroid/app/time/TimeZoneConfiguration;)V @@ -3595,7 +3390,6 @@ HSPLandroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinde HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents; -HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryUsageStats(IJJLjava/lang/String;I)Landroid/content/pm/ParceledListSlice; HSPLandroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager; HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/StorageStats; HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -3652,8 +3446,6 @@ HSPLandroid/appwidget/AppWidgetProviderInfo;-><init>(Landroid/os/Parcel;)V+]Land HSPLandroid/appwidget/AppWidgetProviderInfo;->getProfile()Landroid/os/UserHandle; HSPLandroid/appwidget/AppWidgetProviderInfo;->updateDimensions(Landroid/util/DisplayMetrics;)V HSPLandroid/appwidget/AppWidgetProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/companion/CompanionDeviceManager;-><init>(Landroid/companion/ICompanionDeviceManager;Landroid/content/Context;)V -HSPLandroid/companion/CompanionDeviceManager;->checkFeaturePresent()Z HSPLandroid/companion/ICompanionDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceManager; HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->cancelSync(Landroid/content/ISyncContext;)V HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->isCallerSystem()Z @@ -3686,21 +3478,16 @@ HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/Str HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSource;Landroid/content/AttributionSource;)V HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSourceState;)V HSPLandroid/content/AttributionSource;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/AttributionSource;->asScopedParcelState()Landroid/content/AttributionSource$ScopedParcelState; HSPLandroid/content/AttributionSource;->asState()Landroid/content/AttributionSourceState; HSPLandroid/content/AttributionSource;->checkCallingPid()Z HSPLandroid/content/AttributionSource;->checkCallingUid()Z HSPLandroid/content/AttributionSource;->enforceCallingPid()V HSPLandroid/content/AttributionSource;->enforceCallingUid()V -HSPLandroid/content/AttributionSource;->enforceCallingUidAndPid()V HSPLandroid/content/AttributionSource;->getAttributionTag()Ljava/lang/String; HSPLandroid/content/AttributionSource;->getNext()Landroid/content/AttributionSource; -HSPLandroid/content/AttributionSource;->getNextAttributionTag()Ljava/lang/String; -HSPLandroid/content/AttributionSource;->getNextUid()I HSPLandroid/content/AttributionSource;->getPackageName()Ljava/lang/String; HSPLandroid/content/AttributionSource;->getRenouncedPermissions()Ljava/util/Set; HSPLandroid/content/AttributionSource;->getUid()I -HSPLandroid/content/AttributionSource;->hashCode()I+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; HSPLandroid/content/AttributionSource;->myAttributionSource()Landroid/content/AttributionSource; HSPLandroid/content/AttributionSource;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/AttributionSourceState$1;-><init>()V @@ -3747,16 +3534,12 @@ HSPLandroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item; HSPLandroid/content/ClipData;->getItemCount()I HSPLandroid/content/ClipData;->isStyledText()Z HSPLandroid/content/ClipData;->newIntent(Ljava/lang/CharSequence;Landroid/content/Intent;)Landroid/content/ClipData; -HSPLandroid/content/ClipData;->prepareToEnterProcess(Landroid/content/AttributionSource;)V HSPLandroid/content/ClipData;->prepareToLeaveProcess(ZI)V HSPLandroid/content/ClipData;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/ClipDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ClipDescription; -HSPLandroid/content/ClipDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/ClipDescription;-><init>(Landroid/os/Parcel;)V HSPLandroid/content/ClipDescription;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;)V HSPLandroid/content/ClipDescription;->compareMimeTypes(Ljava/lang/String;Ljava/lang/String;)Z HSPLandroid/content/ClipDescription;->confidencesToBundle()Landroid/os/Bundle; -HSPLandroid/content/ClipDescription;->getTimestamp()J HSPLandroid/content/ClipDescription;->readBundleToConfidences(Landroid/os/Bundle;)V HSPLandroid/content/ClipDescription;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ClipboardManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V @@ -3768,7 +3551,6 @@ HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda1;->acc HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;-><init>(Landroid/content/res/Configuration;)V HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLandroid/content/ComponentCallbacksController;-><init>()V -HSPLandroid/content/ComponentCallbacksController;->clearCallbacks()V HSPLandroid/content/ComponentCallbacksController;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V HSPLandroid/content/ComponentCallbacksController;->dispatchLowMemory()V HSPLandroid/content/ComponentCallbacksController;->dispatchTrimMemory(I)V @@ -3810,7 +3592,6 @@ HSPLandroid/content/ContentCaptureOptions;-><init>(ZIIIIILandroid/util/ArraySet; HSPLandroid/content/ContentCaptureOptions;->isWhitelisted(Landroid/content/Context;)Z HSPLandroid/content/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ContentProvider$Transport;-><init>(Landroid/content/ContentProvider;)V -HSPLandroid/content/ContentProvider$Transport;->applyBatch(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; HSPLandroid/content/ContentProvider$Transport;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; HSPLandroid/content/ContentProvider$Transport;->createCancellationSignal()Landroid/os/ICancellationSignal; HSPLandroid/content/ContentProvider$Transport;->delete(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/os/Bundle;)I @@ -3930,7 +3711,6 @@ HSPLandroid/content/ContentProviderOperation;->resolveSelectionArgsBackReference HSPLandroid/content/ContentProviderOperation;->resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues; HSPLandroid/content/ContentProviderOperation;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ContentProviderProxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/ContentProviderProxy;->applyBatch(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder; HSPLandroid/content/ContentProviderProxy;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; HSPLandroid/content/ContentProviderProxy;->createCancellationSignal()Landroid/os/ICancellationSignal; @@ -4163,7 +3943,6 @@ 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;->isConfigurationContext()Z+]Landroid/content/Context;missing_types HSPLandroid/content/ContextWrapper;->isDeviceProtectedStorage()Z HSPLandroid/content/ContextWrapper;->isRestricted()Z HSPLandroid/content/ContextWrapper;->isUiContext()Z @@ -4198,8 +3977,6 @@ HSPLandroid/content/ContextWrapper;->unregisterComponentCallbacks(Landroid/conte HSPLandroid/content/ContextWrapper;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V HSPLandroid/content/ContextWrapper;->updateDisplay(I)V HSPLandroid/content/IClipboard$Stub$Proxy;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/content/IClipboard$Stub$Proxy;->getPrimaryClip(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/ClipData; -HSPLandroid/content/IClipboard$Stub$Proxy;->getPrimaryClipDescription(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/ClipDescription; HSPLandroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/content/IContentService$Stub$Proxy;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V HSPLandroid/content/IContentService$Stub$Proxy;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V @@ -4413,7 +4190,6 @@ HSPLandroid/content/IntentSender;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/LocusId; HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/LocusId;-><init>(Ljava/lang/String;)V -HSPLandroid/content/LocusId;->getId()Ljava/lang/String; HSPLandroid/content/LocusId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/PeriodicSync; HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -4493,8 +4269,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>()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 @@ -4561,7 +4336,6 @@ HSPLandroid/content/pm/BaseParceledListSlice;->readCreator(Landroid/os/Parcelabl 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/ChangedPackages;->getPackageNames()Ljava/util/List; 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 @@ -4609,7 +4383,6 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(JI)Landroid/content/pm/ParceledListSlice; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String; @@ -4619,7 +4392,6 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroi HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;JI)I HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionControllerPackageName()Ljava/lang/String; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPropertyAsUser(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PackageManager$Property; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getReceiverInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo; @@ -4647,15 +4419,10 @@ HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Lan HSPLandroid/content/pm/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getShortcuts(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z HSPLandroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService; HSPLandroid/content/pm/IncrementalStatesInfo$1;-><init>()V HSPLandroid/content/pm/IncrementalStatesInfo;-><clinit>()V -HSPLandroid/content/pm/InstallSourceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/InstallSourceInfo; -HSPLandroid/content/pm/InstallSourceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/InstallSourceInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/InstallSourceInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/InstallSourceInfo-IA;)V HSPLandroid/content/pm/InstallSourceInfo;->getInitiatingPackageName()Ljava/lang/String; HSPLandroid/content/pm/InstallSourceInfo;->getInstallingPackageName()Ljava/lang/String; HSPLandroid/content/pm/LauncherActivityInfoInternal$1;-><init>()V @@ -4893,7 +4660,6 @@ HSPLandroid/content/pm/SharedLibraryInfo;->getAllCodePaths()Ljava/util/List; HSPLandroid/content/pm/SharedLibraryInfo;->getDependencies()Ljava/util/List; HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String; HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String; -HSPLandroid/content/pm/SharedLibraryInfo;->getType()I HSPLandroid/content/pm/SharedLibraryInfo;->isNative()Z HSPLandroid/content/pm/SharedLibraryInfo;->isSdk()Z HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V @@ -4920,21 +4686,17 @@ HSPLandroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V HSPLandroid/content/pm/ShortcutInfo;->getActivity()Landroid/content/ComponentName; HSPLandroid/content/pm/ShortcutInfo;->getCategories()Ljava/util/Set; HSPLandroid/content/pm/ShortcutInfo;->getDisabledMessage()Ljava/lang/CharSequence; -HSPLandroid/content/pm/ShortcutInfo;->getDisabledReason()I HSPLandroid/content/pm/ShortcutInfo;->getDisabledReasonForRestoreIssue(Landroid/content/Context;I)Ljava/lang/String; HSPLandroid/content/pm/ShortcutInfo;->getExtras()Landroid/os/PersistableBundle; HSPLandroid/content/pm/ShortcutInfo;->getIconResourceId()I HSPLandroid/content/pm/ShortcutInfo;->getId()Ljava/lang/String; -HSPLandroid/content/pm/ShortcutInfo;->getIntents()[Landroid/content/Intent; HSPLandroid/content/pm/ShortcutInfo;->getLastChangedTimestamp()J -HSPLandroid/content/pm/ShortcutInfo;->getLocusId()Landroid/content/LocusId; HSPLandroid/content/pm/ShortcutInfo;->getLongLabel()Ljava/lang/CharSequence; HSPLandroid/content/pm/ShortcutInfo;->getPackage()Ljava/lang/String; HSPLandroid/content/pm/ShortcutInfo;->getPersons()[Landroid/app/Person; HSPLandroid/content/pm/ShortcutInfo;->getRank()I HSPLandroid/content/pm/ShortcutInfo;->getShortLabel()Ljava/lang/CharSequence; HSPLandroid/content/pm/ShortcutInfo;->getUserHandle()Landroid/os/UserHandle; -HSPLandroid/content/pm/ShortcutInfo;->hasAdaptiveBitmap()Z HSPLandroid/content/pm/ShortcutInfo;->hasFlags(I)Z HSPLandroid/content/pm/ShortcutInfo;->hasIconFile()Z HSPLandroid/content/pm/ShortcutInfo;->hasIconResource()Z @@ -4944,7 +4706,6 @@ HSPLandroid/content/pm/ShortcutInfo;->isCached()Z HSPLandroid/content/pm/ShortcutInfo;->isDeclaredInManifest()Z HSPLandroid/content/pm/ShortcutInfo;->isDynamic()Z HSPLandroid/content/pm/ShortcutInfo;->isEnabled()Z -HSPLandroid/content/pm/ShortcutInfo;->isImmutable()Z HSPLandroid/content/pm/ShortcutInfo;->isPinned()Z HSPLandroid/content/pm/ShortcutInfo;->setIntentExtras(Landroid/content/Intent;Landroid/os/PersistableBundle;)Landroid/content/Intent; HSPLandroid/content/pm/ShortcutInfo;->updateTimestamp()V @@ -4958,7 +4719,6 @@ HSPLandroid/content/pm/ShortcutManager;->getManifestShortcuts()Ljava/util/List; HSPLandroid/content/pm/ShortcutManager;->getMaxShortcutCountPerActivity()I HSPLandroid/content/pm/ShortcutManager;->getPinnedShortcuts()Ljava/util/List; HSPLandroid/content/pm/ShortcutManager;->injectMyUserId()I -HSPLandroid/content/pm/ShortcutManager;->reportShortcutUsed(Ljava/lang/String;)V HSPLandroid/content/pm/ShortcutManager;->setDynamicShortcuts(Ljava/util/List;)Z HSPLandroid/content/pm/ShortcutManager;->updateShortcuts(Ljava/util/List;)Z HSPLandroid/content/pm/ShortcutQueryWrapper;->writeToParcel(Landroid/os/Parcel;I)V @@ -5344,7 +5104,6 @@ HSPLandroid/content/res/Resources;->getValueForDensity(IILandroid/util/TypedValu 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;->lambda$newTheme$0(Ljava/lang/ref/WeakReference;)Z HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; HSPLandroid/content/res/Resources;->loadComplexColor(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; HSPLandroid/content/res/Resources;->loadDrawable(Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; @@ -5459,7 +5218,6 @@ HSPLandroid/content/res/ThemedResourceCache;->pruneEntriesLocked(Landroid/util/L HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;)V HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;Z)V HSPLandroid/content/res/TypedArray;-><init>(Landroid/content/res/Resources;)V -HSPLandroid/content/res/TypedArray;->close()V HSPLandroid/content/res/TypedArray;->extractThemeAttrs()[I HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I HSPLandroid/content/res/TypedArray;->getBoolean(IZ)Z @@ -5653,7 +5411,6 @@ HSPLandroid/database/CursorWindow$1;->createFromParcel(Landroid/os/Parcel;)Ljava HSPLandroid/database/CursorWindow$1;->newArray(I)[Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;)V -HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;Landroid/database/CursorWindow-IA;)V HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;)V HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V HSPLandroid/database/CursorWindow;->allocRow()Z @@ -5789,7 +5546,6 @@ HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatement;-><init>(Landroid HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(Landroid/database/sqlite/SQLiteConnection;I)V HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->-$$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 @@ -5838,7 +5594,6 @@ HSPLandroid/database/sqlite/SQLiteConnection;->setSyncModeFromConfiguration()V HSPLandroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter-IA;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/os/Looper;JLjava/lang/Runnable;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionAcquired(Landroid/database/sqlite/SQLiteConnection;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionClosed(Landroid/database/sqlite/SQLiteConnection;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionReleased(Landroid/database/sqlite/SQLiteConnection;)V @@ -5864,7 +5619,6 @@ 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;->onConnectionLeaked()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->onStatementExecuted(J)V HSPLandroid/database/sqlite/SQLiteConnectionPool;->open()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->open(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)Landroid/database/sqlite/SQLiteConnectionPool; @@ -5875,7 +5629,6 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Landr 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;->setMaxConnectionPoolSizeLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->setupIdleConnectionHandler(Landroid/os/Looper;JLjava/lang/Runnable;)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; @@ -6068,7 +5821,6 @@ HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setStrict(Z)V HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setTables(Ljava/lang/String;)V HSPLandroid/database/sqlite/SQLiteQueryBuilder;->wrap(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>()V -HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>(Landroid/database/sqlite/SQLiteSession$Transaction-IA;)V HSPLandroid/database/sqlite/SQLiteSession;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V HSPLandroid/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)V HSPLandroid/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V @@ -6107,23 +5859,11 @@ HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/Str HSPLandroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;Ljava/lang/String;I)V HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;I)V HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/ddm/DdmHandleExit;->onConnected()V -PLandroid/ddm/DdmHandleExit;->onDisconnected()V HSPLandroid/ddm/DdmHandleHeap;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleHeap;->onConnected()V -PLandroid/ddm/DdmHandleHeap;->onDisconnected()V HSPLandroid/ddm/DdmHandleHello;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; HSPLandroid/ddm/DdmHandleHello;->handleFEAT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; HSPLandroid/ddm/DdmHandleHello;->handleHELO(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleHello;->onConnected()V -PLandroid/ddm/DdmHandleHello;->onDisconnected()V -HSPLandroid/ddm/DdmHandleNativeHeap;->onConnected()V -PLandroid/ddm/DdmHandleNativeHeap;->onDisconnected()V HSPLandroid/ddm/DdmHandleProfiling;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleProfiling;->onConnected()V -PLandroid/ddm/DdmHandleProfiling;->onDisconnected()V -HSPLandroid/ddm/DdmHandleViewDebug;->onConnected()V -PLandroid/ddm/DdmHandleViewDebug;->onDisconnected()V HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Landroid/view/SurfaceControl;III)V HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Z)V HSPLandroid/graphics/BLASTBufferQueue;->createSurface()Landroid/view/Surface; @@ -6146,7 +5886,6 @@ HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/g 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;->drawPaint(Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V @@ -6157,7 +5896,6 @@ HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitm 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/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/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V @@ -6165,10 +5903,8 @@ HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDu HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawPaint(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 -HSPLandroid/graphics/BaseRecordingCanvas;->drawPicture(Landroid/graphics/Picture;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; @@ -6183,7 +5919,6 @@ HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/ 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;->asShared()Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->checkHardware(Ljava/lang/String;)V HSPLandroid/graphics/Bitmap;->checkPixelAccess(II)V HSPLandroid/graphics/Bitmap;->checkPixelsAccess(IIIIII[I)V @@ -6197,8 +5932,6 @@ HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)La HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; @@ -6293,7 +6026,6 @@ HSPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V HSPLandroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawOval(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawPaint(Landroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V @@ -6375,16 +6107,12 @@ HSPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V HSPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J HSPLandroid/graphics/ColorSpace$Named;->values()[Landroid/graphics/ColorSpace$Named; HSPLandroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/ColorSpace$Rgb;)V -HSPLandroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda0;->applyAsDouble(D)D -HSPLandroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda3;->applyAsDouble(D)D HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;-><init>(DDDDDDD)V HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;->hashCode()I -HSPLandroid/graphics/ColorSpace$Rgb;->$r8$lambda$QGR5f_dq259rVcM_HPGB_A_avAs(Landroid/graphics/ColorSpace$Rgb;D)D HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)V HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V HSPLandroid/graphics/ColorSpace$Rgb;->area([F)F -HSPLandroid/graphics/ColorSpace$Rgb;->clamp(D)D HSPLandroid/graphics/ColorSpace$Rgb;->computePrimaries([F)[F HSPLandroid/graphics/ColorSpace$Rgb;->computeWhitePoint([F)[F HSPLandroid/graphics/ColorSpace$Rgb;->computeXYZMatrix([F[F)[F @@ -6398,12 +6126,10 @@ HSPLandroid/graphics/ColorSpace$Rgb;->isGray([F)Z HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb()Z HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb([F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFI)Z HSPLandroid/graphics/ColorSpace$Rgb;->isWideGamut([FFF)Z -HSPLandroid/graphics/ColorSpace$Rgb;->lambda$new$2(Landroid/graphics/ColorSpace$Rgb$TransferParameters;D)D HSPLandroid/graphics/ColorSpace$Rgb;->xyPrimaries([F)[F HSPLandroid/graphics/ColorSpace$Rgb;->xyWhitePoint([F)[F HSPLandroid/graphics/ColorSpace;->-$$Nest$smadaptToIlluminantD50([F[F)[F HSPLandroid/graphics/ColorSpace;->-$$Nest$sminverse3x3([F)[F -HSPLandroid/graphics/ColorSpace;->-$$Nest$smresponse(DDDDDD)D HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[FLandroid/graphics/ColorSpace$Adaptation;)Landroid/graphics/ColorSpace; HSPLandroid/graphics/ColorSpace;->adaptToIlluminantD50([F[F)[F @@ -6412,7 +6138,6 @@ HSPLandroid/graphics/ColorSpace;->compare(Landroid/graphics/ColorSpace$Rgb$Trans HSPLandroid/graphics/ColorSpace;->compare([F[F)Z HSPLandroid/graphics/ColorSpace;->get(I)Landroid/graphics/ColorSpace; HSPLandroid/graphics/ColorSpace;->get(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/ColorSpace;->getId()I HSPLandroid/graphics/ColorSpace;->getModel()Landroid/graphics/ColorSpace$Model; HSPLandroid/graphics/ColorSpace;->getName()Ljava/lang/String; HSPLandroid/graphics/ColorSpace;->inverse3x3([F)[F @@ -6420,11 +6145,9 @@ HSPLandroid/graphics/ColorSpace;->match([FLandroid/graphics/ColorSpace$Rgb$Trans HSPLandroid/graphics/ColorSpace;->mul3x3([F[F)[F HSPLandroid/graphics/ColorSpace;->mul3x3Diag([F[F)[F HSPLandroid/graphics/ColorSpace;->mul3x3Float3([F[F)[F -HSPLandroid/graphics/ColorSpace;->response(DDDDDD)D HSPLandroid/graphics/Compatibility;-><clinit>()V HSPLandroid/graphics/Compatibility;->getTargetSdkVersion()I HSPLandroid/graphics/Compatibility;->setTargetSdkVersion(I)V -HSPLandroid/graphics/DashPathEffect;-><init>([FF)V HSPLandroid/graphics/DrawFilter;-><init>()V HSPLandroid/graphics/FrameInfo;-><init>()V HSPLandroid/graphics/FrameInfo;->addFlags(J)V @@ -6449,10 +6172,10 @@ HSPLandroid/graphics/HardwareRenderer;-><init>()V HSPLandroid/graphics/HardwareRenderer;->addObserver(Landroid/graphics/HardwareRendererObserver;)V HSPLandroid/graphics/HardwareRenderer;->allocateBuffers()V HSPLandroid/graphics/HardwareRenderer;->clearContent()V -HSPLandroid/graphics/HardwareRenderer;->createHardwareBitmap(Landroid/graphics/RenderNode;II)Landroid/graphics/Bitmap; HSPLandroid/graphics/HardwareRenderer;->destroy()V HSPLandroid/graphics/HardwareRenderer;->detachSurfaceTexture(J)V HSPLandroid/graphics/HardwareRenderer;->dumpGlobalProfileInfo(Ljava/io/FileDescriptor;I)V +HSPLandroid/graphics/HardwareRenderer;->isDrawingEnabled()Z HSPLandroid/graphics/HardwareRenderer;->loadSystemProperties()Z HSPLandroid/graphics/HardwareRenderer;->notifyFramePending()V HSPLandroid/graphics/HardwareRenderer;->onLayerDestroyed(Landroid/graphics/TextureLayer;)V @@ -6505,12 +6228,9 @@ HSPLandroid/graphics/ImageDecoder$InputStreamSource;-><init>(Landroid/content/re HSPLandroid/graphics/ImageDecoder$InputStreamSource;->createImageDecoder(Z)Landroid/graphics/ImageDecoder; HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getDensity()I HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getResources()Landroid/content/res/Resources; -HSPLandroid/graphics/ImageDecoder$InputStreamSource;->toString()Ljava/lang/String; HSPLandroid/graphics/ImageDecoder$Source;-><init>()V HSPLandroid/graphics/ImageDecoder$Source;-><init>(Landroid/graphics/ImageDecoder$Source-IA;)V HSPLandroid/graphics/ImageDecoder$Source;->computeDstDensity()I -HSPLandroid/graphics/ImageDecoder$Source;->getDensity()I -HSPLandroid/graphics/ImageDecoder;->-$$Nest$smcreateFromAsset(Landroid/content/res/AssetManager$AssetInputStream;ZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder; HSPLandroid/graphics/ImageDecoder;->-$$Nest$smdescribeDecoderForTrace(Landroid/graphics/ImageDecoder;)Ljava/lang/String; HSPLandroid/graphics/ImageDecoder;-><init>(JIIZZ)V HSPLandroid/graphics/ImageDecoder;->callHeaderDecoded(Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;Landroid/graphics/ImageDecoder$Source;)V @@ -6677,7 +6397,6 @@ HSPLandroid/graphics/Paint;->isFilterBitmap()Z HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F -HSPLandroid/graphics/Paint;->measureText([CII)F HSPLandroid/graphics/Paint;->reset()V HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V HSPLandroid/graphics/Paint;->setAlpha(I)V @@ -6742,7 +6461,6 @@ HSPLandroid/graphics/Path;->isConvex()Z HSPLandroid/graphics/Path;->isEmpty()Z HSPLandroid/graphics/Path;->lineTo(FF)V HSPLandroid/graphics/Path;->moveTo(FF)V -HSPLandroid/graphics/Path;->mutateNI()J 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 @@ -6754,8 +6472,6 @@ HSPLandroid/graphics/Path;->set(Landroid/graphics/Path;)V HSPLandroid/graphics/Path;->setFillType(Landroid/graphics/Path$FillType;)V HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;)V HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V -HSPLandroid/graphics/PathEffect;-><init>()V -HSPLandroid/graphics/PathEffect;->finalize()V HSPLandroid/graphics/PathMeasure;-><init>()V HSPLandroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V HSPLandroid/graphics/PathMeasure;->finalize()V @@ -6770,8 +6486,6 @@ HSPLandroid/graphics/Picture;->endRecording()V HSPLandroid/graphics/Picture;->finalize()V HSPLandroid/graphics/Picture;->getHeight()I HSPLandroid/graphics/Picture;->getWidth()I -HSPLandroid/graphics/Picture;->requiresHardwareAcceleration()Z -HSPLandroid/graphics/Picture;->verifyValid()V HSPLandroid/graphics/PixelFormat;->formatHasAlpha(I)Z HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Point; HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -6784,9 +6498,7 @@ HSPLandroid/graphics/Point;->hashCode()I HSPLandroid/graphics/Point;->offset(II)V HSPLandroid/graphics/Point;->readFromParcel(Landroid/os/Parcel;)V HSPLandroid/graphics/Point;->set(II)V -HSPLandroid/graphics/Point;->set(Landroid/graphics/Point;)V HSPLandroid/graphics/Point;->toString()Ljava/lang/String; -HSPLandroid/graphics/Point;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/graphics/PointF;-><init>()V HSPLandroid/graphics/PointF;-><init>(FF)V HSPLandroid/graphics/PointF;->equals(FF)Z @@ -6831,7 +6543,6 @@ HSPLandroid/graphics/Rect;->contains(Landroid/graphics/Rect;)Z HSPLandroid/graphics/Rect;->equals(Ljava/lang/Object;)Z HSPLandroid/graphics/Rect;->exactCenterX()F HSPLandroid/graphics/Rect;->exactCenterY()F -HSPLandroid/graphics/Rect;->hashCode()I HSPLandroid/graphics/Rect;->height()I HSPLandroid/graphics/Rect;->inset(II)V HSPLandroid/graphics/Rect;->inset(IIII)V @@ -6840,7 +6551,6 @@ HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Rect;)V HSPLandroid/graphics/Rect;->intersect(IIII)Z HSPLandroid/graphics/Rect;->intersect(Landroid/graphics/Rect;)Z HSPLandroid/graphics/Rect;->intersectUnchecked(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Rect;->intersects(IIII)Z HSPLandroid/graphics/Rect;->intersects(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z HSPLandroid/graphics/Rect;->isEmpty()Z HSPLandroid/graphics/Rect;->offset(II)V @@ -6908,11 +6618,9 @@ 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;)V HSPLandroid/graphics/RenderNode;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V HSPLandroid/graphics/RenderNode;->addPositionUpdateListener(Landroid/graphics/RenderNode$PositionUpdateListener;)V HSPLandroid/graphics/RenderNode;->adopt(J)Landroid/graphics/RenderNode; -HSPLandroid/graphics/RenderNode;->beginRecording()Landroid/graphics/RecordingCanvas;+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/graphics/RenderNode;->beginRecording(II)Landroid/graphics/RecordingCanvas; HSPLandroid/graphics/RenderNode;->clearStretch()Z HSPLandroid/graphics/RenderNode;->create(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)Landroid/graphics/RenderNode; @@ -6948,8 +6656,6 @@ HSPLandroid/graphics/RenderNode;->setLayerType(I)Z HSPLandroid/graphics/RenderNode;->setLeftTopRightBottom(IIII)Z HSPLandroid/graphics/RenderNode;->setOutline(Landroid/graphics/Outline;)Z HSPLandroid/graphics/RenderNode;->setPivotX(F)Z -HSPLandroid/graphics/RenderNode;->setPivotY(F)Z -HSPLandroid/graphics/RenderNode;->setPosition(IIII)Z HSPLandroid/graphics/RenderNode;->setProjectBackwards(Z)Z HSPLandroid/graphics/RenderNode;->setProjectionReceiver(Z)Z HSPLandroid/graphics/RenderNode;->setRenderEffect(Landroid/graphics/RenderEffect;)Z @@ -6999,6 +6705,7 @@ HSPLandroid/graphics/Typeface$CustomFallbackBuilder;-><init>(Landroid/graphics/f HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->build()Landroid/graphics/Typeface; HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->setStyle(Landroid/graphics/fonts/FontStyle;)Landroid/graphics/Typeface$CustomFallbackBuilder; HSPLandroid/graphics/Typeface;-><init>(J)V +HSPLandroid/graphics/Typeface;-><init>(JLjava/lang/String;)V HSPLandroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface; HSPLandroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface; HSPLandroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface; @@ -7269,7 +6976,6 @@ HSPLandroid/graphics/drawable/ColorDrawable;-><init>()V HSPLandroid/graphics/drawable/ColorDrawable;-><init>(I)V HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;Landroid/graphics/drawable/ColorDrawable-IA;)V -HSPLandroid/graphics/drawable/ColorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/ColorDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/ColorDrawable;->clearMutated()V HSPLandroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; @@ -7291,7 +6997,6 @@ HSPLandroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/ HSPLandroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/Drawable$ConstantState;-><init>()V HSPLandroid/graphics/drawable/Drawable$ConstantState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable;-><init>()V HSPLandroid/graphics/drawable/Drawable;->applyTheme(Landroid/content/res/Resources$Theme;)V @@ -7487,10 +7192,8 @@ HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setStroke(ILandro HSPLandroid/graphics/drawable/GradientDrawable;-><init>()V HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;Landroid/graphics/drawable/GradientDrawable-IA;)V -HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/GradientDrawable;->buildRing(Landroid/graphics/drawable/GradientDrawable$GradientState;)Landroid/graphics/Path;+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/graphics/drawable/GradientDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas; @@ -7518,8 +7221,6 @@ HSPLandroid/graphics/drawable/GradientDrawable;->setAlpha(I)V HSPLandroid/graphics/drawable/GradientDrawable;->setColor(I)V HSPLandroid/graphics/drawable/GradientDrawable;->setColor(Landroid/content/res/ColorStateList;)V HSPLandroid/graphics/drawable/GradientDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/GradientDrawable;->setColors([I)V -HSPLandroid/graphics/drawable/GradientDrawable;->setColors([I[F)V+]Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/graphics/drawable/GradientDrawable$GradientState;]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable; HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadii([F)V HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadius(F)V HSPLandroid/graphics/drawable/GradientDrawable;->setDither(Z)V @@ -7560,8 +7261,6 @@ 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon;->typeToString(I)Ljava/lang/String; HSPLandroid/graphics/drawable/Icon;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/InsetDrawable$InsetState;[I)V HSPLandroid/graphics/drawable/InsetDrawable$InsetState;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V @@ -7668,16 +7367,6 @@ HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphic HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/LayerDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/graphics/drawable/LevelListDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->addLevel(IILandroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->indexOfLevel(I)I -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/LevelListDrawable;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/LevelListDrawable;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/content/res/Resources;Landroid/graphics/drawable/LevelListDrawable-IA;)V -HSPLandroid/graphics/drawable/LevelListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/LevelListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/LevelListDrawable;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/LevelListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V HSPLandroid/graphics/drawable/NinePatchDrawable$$ExternalSyntheticLambda0;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>()V HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;)V @@ -7730,8 +7419,6 @@ HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getPr HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getShader()Landroid/graphics/drawable/RippleShader; HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getX()Ljava/lang/Object; HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getY()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->setOrigin(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->setRadius(Ljava/lang/Object;)V HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;-><init>(Landroid/graphics/drawable/RippleAnimationSession;)V HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationCancel(Landroid/animation/Animator;)V HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V @@ -7757,7 +7444,6 @@ HSPLandroid/graphics/drawable/RippleAnimationSession;->onAnimationEnd(Landroid/a HSPLandroid/graphics/drawable/RippleAnimationSession;->setForceSoftwareAnimation(Z)Landroid/graphics/drawable/RippleAnimationSession; HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnAnimationUpdated(Ljava/lang/Runnable;)Landroid/graphics/drawable/RippleAnimationSession; HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnSessionEnd(Ljava/util/function/Consumer;)Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleAnimationSession;->setRadius(F)V+]Landroid/graphics/drawable/RippleShader;Landroid/graphics/drawable/RippleShader;]Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; HSPLandroid/graphics/drawable/RippleAnimationSession;->startAnimation(Landroid/animation/Animator;Landroid/animation/Animator;)V HSPLandroid/graphics/drawable/RippleAnimationSession;->useRTAnimations(Landroid/graphics/Canvas;)Z HSPLandroid/graphics/drawable/RippleComponent;->onBoundsChange()V @@ -7820,7 +7506,6 @@ HSPLandroid/graphics/drawable/RippleDrawable;->setColor(Landroid/content/res/Col HSPLandroid/graphics/drawable/RippleDrawable;->setHotspot(FF)V HSPLandroid/graphics/drawable/RippleDrawable;->setHotspotBounds(IIII)V HSPLandroid/graphics/drawable/RippleDrawable;->setPaddingMode(I)V -HSPLandroid/graphics/drawable/RippleDrawable;->setRadius(I)V HSPLandroid/graphics/drawable/RippleDrawable;->setRippleActive(Z)V HSPLandroid/graphics/drawable/RippleDrawable;->setVisible(ZZ)Z HSPLandroid/graphics/drawable/RippleDrawable;->startBackgroundAnimation()V+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; @@ -7869,10 +7554,8 @@ HSPLandroid/graphics/drawable/RippleShader;->setRadius(F)V HSPLandroid/graphics/drawable/RippleShader;->setResolution(FF)V HSPLandroid/graphics/drawable/RippleShader;->setShader(Landroid/graphics/Shader;)V HSPLandroid/graphics/drawable/RippleShader;->setTouch(FF)V -HSPLandroid/graphics/drawable/RotateDrawable$RotateState;->-$$Nest$fgetmThemeAttrs(Landroid/graphics/drawable/RotateDrawable$RotateState;)[I HSPLandroid/graphics/drawable/RotateDrawable$RotateState;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/RotateDrawable$RotateState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/RotateDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/RotateDrawable;->draw(Landroid/graphics/Canvas;)V HSPLandroid/graphics/drawable/RotateDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/RotateDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; @@ -8165,7 +7848,6 @@ HSPLandroid/hardware/GeomagneticField;->computeGeocentricCoordinates(FFF)V HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/HardwareBuffer; HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/hardware/HardwareBuffer;-><init>(J)V -HSPLandroid/hardware/HardwareBuffer;->checkClosed(Ljava/lang/String;)V HSPLandroid/hardware/HardwareBuffer;->close()V HSPLandroid/hardware/HardwareBuffer;->finalize()V HSPLandroid/hardware/HardwareBuffer;->getFormat()I @@ -8177,9 +7859,6 @@ HSPLandroid/hardware/ICameraService$Stub$Proxy;->getCameraCharacteristics(Ljava/ HSPLandroid/hardware/ICameraService$Stub$Proxy;->getConcurrentCameraIds()[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination; HSPLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService; HSPLandroid/hardware/ICameraServiceListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/ISensorPrivacyListener$Stub;-><init>()V -HSPLandroid/hardware/ISensorPrivacyManager$Stub$Proxy;->isToggleSensorPrivacyEnabled(II)Z -HSPLandroid/hardware/ISensorPrivacyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ISensorPrivacyManager; HSPLandroid/hardware/Sensor;-><init>()V HSPLandroid/hardware/Sensor;->getHandle()I HSPLandroid/hardware/Sensor;->getMaxLengthValuesArray(Landroid/hardware/Sensor;I)I @@ -8205,10 +7884,6 @@ HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEv HSPLandroid/hardware/SensorManager;->requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V -HSPLandroid/hardware/SensorPrivacyManager$1;-><init>(Landroid/hardware/SensorPrivacyManager;)V -HSPLandroid/hardware/SensorPrivacyManager;-><init>(Landroid/content/Context;Landroid/hardware/ISensorPrivacyManager;)V -HSPLandroid/hardware/SensorPrivacyManager;->getInstance(Landroid/content/Context;)Landroid/hardware/SensorPrivacyManager; -HSPLandroid/hardware/SensorPrivacyManager;->isSensorPrivacyEnabled(I)Z HSPLandroid/hardware/SensorPrivacyManager;->isSensorPrivacyEnabled(II)Z HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;-><init>(Landroid/os/Looper;Landroid/hardware/SystemSensorManager;ILjava/lang/String;)V HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->addSensor(Landroid/hardware/Sensor;II)Z @@ -8254,17 +7929,8 @@ HSPLandroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camer HSPLandroid/hardware/camera2/CameraCharacteristics;->getDeviceStateListener()Landroid/hardware/camera2/CameraManager$DeviceStateListener; HSPLandroid/hardware/camera2/CameraCharacteristics;->overrideProperty(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object; HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;-><init>()V -HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;->onCameraAccessPrioritiesChanged()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$$ExternalSyntheticLambda2;-><init>(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$$ExternalSyntheticLambda2;->run()V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;->run()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$6;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Ljava/lang/String;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$6;->run()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$7;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Ljava/lang/String;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$7;->run()V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->asBinder()Landroid/os/IBinder; HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->cameraIdHasConcurrentStreamsLocked(Ljava/lang/String;)Z HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V @@ -8272,16 +7938,11 @@ HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->extractCameraId HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->get()Landroid/hardware/camera2/CameraManager$CameraManagerGlobal; HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraIdList()[Ljava/lang/String; HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraService()Landroid/hardware/ICameraService; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->isAvailable(I)Z -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->lambda$postSingleTorchUpdate$0(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onCameraAccessPrioritiesChanged()V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChanged(ILjava/lang/String;)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChangedLocked(ILjava/lang/String;)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChanged(ILjava/lang/String;)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChangedLocked(ILjava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleAccessPriorityChangeUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V+]Ljava/util/concurrent/Executor;Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleTorchUpdate(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;I)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/lang/String;I)V HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;-><init>(Landroid/hardware/camera2/CameraManager;Landroid/content/Context;)V HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->handleStateChange(I)V HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->onBaseStateChanged(I)V @@ -8448,7 +8109,6 @@ HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init>(Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback-IA;)V HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->onDisplayEvent(II)V HSPLandroid/hardware/display/DisplayManagerGlobal;->-$$Nest$fgetmDm(Landroid/hardware/display/DisplayManagerGlobal;)Landroid/hardware/display/IDisplayManager; -HSPLandroid/hardware/display/DisplayManagerGlobal;->-$$Nest$mhandleDisplayEvent(Landroid/hardware/display/DisplayManagerGlobal;II)V HSPLandroid/hardware/display/DisplayManagerGlobal;-><init>(Landroid/hardware/display/IDisplayManager;)V HSPLandroid/hardware/display/DisplayManagerGlobal;->calculateEventsMaskLocked()I HSPLandroid/hardware/display/DisplayManagerGlobal;->findDisplayListenerLocked(Landroid/hardware/display/DisplayManager$DisplayListener;)I @@ -8502,14 +8162,10 @@ HSPLandroid/hardware/face/FaceManager;->getSensorPropertiesInternal()Ljava/util/ HSPLandroid/hardware/fingerprint/FingerprintManager;-><init>(Landroid/content/Context;Landroid/hardware/fingerprint/IFingerprintService;)V HSPLandroid/hardware/fingerprint/FingerprintManager;->hasEnrolledFingerprints(I)Z HSPLandroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z -HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->hasEnrolledFingerprintsDeprecated(ILjava/lang/String;Ljava/lang/String;)Z HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isHardwareDetectedDeprecated(Ljava/lang/String;Ljava/lang/String;)Z HSPLandroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService; HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;-><init>()V HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->getMaxTransactionId()I -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->getTransactionName(I)Ljava/lang/String; HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/hardware/input/IInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDevice(I)Landroid/view/InputDevice; @@ -8604,7 +8260,6 @@ HSPLandroid/hardware/security/keymint/KeyParameterValue;->_set(ILjava/lang/Objec HSPLandroid/hardware/security/keymint/KeyParameterValue;->algorithm(I)Landroid/hardware/security/keymint/KeyParameterValue; HSPLandroid/hardware/security/keymint/KeyParameterValue;->blob([B)Landroid/hardware/security/keymint/KeyParameterValue; HSPLandroid/hardware/security/keymint/KeyParameterValue;->blockMode(I)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->boolValue(Z)Landroid/hardware/security/keymint/KeyParameterValue; HSPLandroid/hardware/security/keymint/KeyParameterValue;->getAlgorithm()I HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlob()[B HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlockMode()I @@ -8643,19 +8298,13 @@ HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVendorUuid()Ljava HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVersion()I HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V -HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getPorts()Ljava/util/List; HSPLandroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager; -HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/usb/ParcelableUsbPort; -HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZ)V -HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZLandroid/hardware/usb/ParcelableUsbPort-IA;)V HSPLandroid/hardware/usb/ParcelableUsbPort;->getUsbPort(Landroid/hardware/usb/UsbManager;)Landroid/hardware/usb/UsbPort; HSPLandroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V HSPLandroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap; -HSPLandroid/hardware/usb/UsbManager;->getPorts()Ljava/util/List; HSPLandroid/hardware/usb/UsbPort;->getId()Ljava/lang/String; HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIII)V -HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIIIIZI)V HSPLandroid/hardware/usb/UsbPortStatus;->isConnected()Z HSPLandroid/icu/impl/BMPSet;-><init>([II)V HSPLandroid/icu/impl/BMPSet;->contains(I)Z @@ -8806,8 +8455,6 @@ HSPLandroid/icu/impl/ICUResourceBundle$3;->createInstance(Ljava/lang/String;Ljav HSPLandroid/icu/impl/ICUResourceBundle$4;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;Ljava/lang/String;)V HSPLandroid/icu/impl/ICUResourceBundle$4;->load()Landroid/icu/impl/ICUResourceBundle; HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set; -HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>()V -HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>(Landroid/icu/impl/ICUResourceBundle$Loader-IA;)V HSPLandroid/icu/impl/ICUResourceBundle$WholeBundle;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader;)V HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$mgetNoFallback(Landroid/icu/impl/ICUResourceBundle;)Z HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sfgetDEBUG()Z @@ -9526,16 +9173,7 @@ HSPLandroid/icu/impl/number/Grouper;->getPrimary()S HSPLandroid/icu/impl/number/Grouper;->getSecondary()S HSPLandroid/icu/impl/number/Grouper;->groupAtPosition(ILandroid/icu/impl/number/DecimalQuantity;)Z HSPLandroid/icu/impl/number/Grouper;->withLocaleData(Landroid/icu/util/ULocale;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)Landroid/icu/impl/number/Grouper; -HSPLandroid/icu/impl/number/LongNameHandler$AliasSink;-><init>()V -HSPLandroid/icu/impl/number/LongNameHandler$AliasSink;-><init>(Landroid/icu/impl/number/LongNameHandler$AliasSink-IA;)V -HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;-><init>([Ljava/lang/String;)V HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/number/LongNameHandler;-><init>(Ljava/util/Map;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)V -HSPLandroid/icu/impl/number/LongNameHandler;->forMeasureUnit(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;Landroid/icu/number/NumberFormatter$UnitWidth;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)Landroid/icu/impl/number/LongNameHandler;+]Landroid/icu/util/MeasureUnit;Landroid/icu/util/TimeUnit; -HSPLandroid/icu/impl/number/LongNameHandler;->getGenderForBuiltin(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/impl/number/LongNameHandler;->getIndex(Ljava/lang/String;)I+]Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural; -HSPLandroid/icu/impl/number/LongNameHandler;->getMeasureData(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;Landroid/icu/number/NumberFormatter$UnitWidth;Ljava/lang/String;[Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;,Landroid/icu/impl/ICUResourceBundleImpl$ResourceString;]Landroid/icu/util/MeasureUnit;Landroid/icu/util/TimeUnit;,Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/impl/number/LongNameHandler;->maybeCalculateGender(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;[Ljava/lang/String;)V HSPLandroid/icu/impl/number/LongNameHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; HSPLandroid/icu/impl/number/LongNameHandler;->simpleFormatsToModifiers([Ljava/lang/String;Landroid/icu/text/NumberFormat$Field;)V HSPLandroid/icu/impl/number/MacroProps;-><init>()V @@ -9748,7 +9386,6 @@ HSPLandroid/icu/number/Precision;-><init>()V HSPLandroid/icu/number/Precision;->constructCurrency(Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/number/CurrencyPrecision; HSPLandroid/icu/number/Precision;->constructFraction(II)Landroid/icu/number/FractionPrecision; HSPLandroid/icu/number/Precision;->constructFromCurrency(Landroid/icu/number/CurrencyPrecision;Landroid/icu/util/Currency;)Landroid/icu/number/Precision; -HSPLandroid/icu/number/Precision;->createCopyHelper(Landroid/icu/number/Precision;)V 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 @@ -9914,7 +9551,6 @@ HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getBasePattern() HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getFieldMask()I HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher; -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->toCanonicalString()Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;-><init>()V HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V @@ -9940,7 +9576,6 @@ 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 @@ -9972,10 +9607,8 @@ HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String HSPLandroid/icu/text/DateTimePatternGenerator;->getBestRaw(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher; HSPLandroid/icu/text/DateTimePatternGenerator;->getCLDRFieldAndWidthNumber(Landroid/icu/impl/UResource$Key;)I HSPLandroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalChar(IC)C HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat()Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat(I)Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFrozenInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator; @@ -10024,7 +9657,6 @@ HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V HSPLandroid/icu/text/DecimalFormat;->setParseIntegerOnly(Z)V HSPLandroid/icu/text/DecimalFormat;->setParseStrictMode(Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;)V HSPLandroid/icu/text/DecimalFormat;->setPropertiesFromPattern(Ljava/lang/String;I)V -HSPLandroid/icu/text/DecimalFormat;->setRoundingMode(I)V+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; HSPLandroid/icu/text/DecimalFormat;->toNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter; HSPLandroid/icu/text/DecimalFormat;->toPattern()Ljava/lang/String; HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Landroid/icu/util/ULocale;Ljava/lang/Void;)Landroid/icu/text/DecimalFormatSymbols$CacheData; @@ -10111,13 +9743,6 @@ HSPLandroid/icu/text/Edits;->lastUnit()I HSPLandroid/icu/text/Edits;->reset()V HSPLandroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer; HSPLandroid/icu/text/MeasureFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;Landroid/icu/text/PluralRules;Landroid/icu/text/MeasureFormat$NumericFormatters;)V -HSPLandroid/icu/text/MeasureFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/MeasureFormat;->formatMeasure(Landroid/icu/util/Measure;)Landroid/icu/impl/FormattedStringBuilder;+]Landroid/icu/number/LocalizedNumberFormatter;Landroid/icu/number/LocalizedNumberFormatter;]Landroid/icu/util/Measure;Landroid/icu/util/Measure; -HSPLandroid/icu/text/MeasureFormat;->formatMeasures(Ljava/lang/StringBuilder;Ljava/text/FieldPosition;[Landroid/icu/util/Measure;)Ljava/lang/StringBuilder; -HSPLandroid/icu/text/MeasureFormat;->formatMeasures([Landroid/icu/util/Measure;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/text/MeasureFormat;Landroid/icu/text/MeasureFormat; -HSPLandroid/icu/text/MeasureFormat;->formatMeasuresInternal(Ljava/lang/Appendable;Ljava/text/FieldPosition;[Landroid/icu/util/Measure;)V+]Landroid/icu/text/ListFormatter$FormattedListBuilder;Landroid/icu/text/ListFormatter$FormattedListBuilder;]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;]Landroid/icu/text/ListFormatter;Landroid/icu/text/ListFormatter;]Landroid/icu/text/MeasureFormat;Landroid/icu/text/MeasureFormat; -HSPLandroid/icu/text/MeasureFormat;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;)Landroid/icu/text/MeasureFormat; -HSPLandroid/icu/text/MeasureFormat;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;)Landroid/icu/text/MeasureFormat; HSPLandroid/icu/text/MeasureFormat;->getNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter; HSPLandroid/icu/text/MeasureFormat;->getUnitFormatterFromCache(ILandroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;)Landroid/icu/number/LocalizedNumberFormatter; HSPLandroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2; @@ -10131,7 +9756,6 @@ HSPLandroid/icu/text/NumberFormat;->clone()Ljava/lang/Object; HSPLandroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/NumberFormat;->getInstance(Ljava/util/Locale;)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getInstance(Ljava/util/Locale;I)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getPattern(Landroid/icu/util/ULocale;I)Ljava/lang/String; HSPLandroid/icu/text/NumberFormat;->getPatternForStyle(Landroid/icu/util/ULocale;I)Ljava/lang/String; @@ -10501,7 +10125,6 @@ HSPLandroid/icu/util/CodePointTrie;-><init>([CLandroid/icu/util/CodePointTrie$Da HSPLandroid/icu/util/CodePointTrie;->fastIndex(I)I HSPLandroid/icu/util/CodePointTrie;->fromBinary(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;Ljava/nio/ByteBuffer;)Landroid/icu/util/CodePointTrie; HSPLandroid/icu/util/CodePointTrie;->getRange(ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z -HSPLandroid/icu/util/CodePointTrie;->internalSmallIndex(Landroid/icu/util/CodePointTrie$Type;I)I HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Landroid/icu/util/Currency; HSPLandroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency; @@ -10719,12 +10342,10 @@ HSPLandroid/icu/util/UResourceBundleIterator;-><init>(Landroid/icu/util/UResourc HSPLandroid/icu/util/UResourceBundleIterator;->hasNext()Z HSPLandroid/icu/util/UResourceBundleIterator;->next()Landroid/icu/util/UResourceBundle; HSPLandroid/icu/util/VersionInfo;->getMajor()I -HSPLandroid/inputmethodservice/InputMethodService;->canImeRenderGesturalNavButtons()Z HSPLandroid/location/Country;->getCountryIso()Ljava/lang/String; HSPLandroid/location/CountryDetector;-><init>(Landroid/location/ICountryDetector;)V HSPLandroid/location/CountryDetector;->addCountryListener(Landroid/location/CountryListener;Landroid/os/Looper;)V HSPLandroid/location/CountryDetector;->detectCountry()Landroid/location/Country; -HSPLandroid/location/GeocoderParams;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/util/Locale;)V HSPLandroid/location/GnssStatus;-><init>(I[I[F[F[F[F[F)V HSPLandroid/location/GnssStatus;->getCarrierFrequencyHz(I)F HSPLandroid/location/GnssStatus;->getCn0DbHz(I)F @@ -10771,8 +10392,6 @@ HSPLandroid/location/Location;->hasAltitude()Z HSPLandroid/location/Location;->hasBearing()Z HSPLandroid/location/Location;->hasBearingAccuracy()Z HSPLandroid/location/Location;->hasElapsedRealtimeUncertaintyNanos()Z -HSPLandroid/location/Location;->hasMslAltitude()Z -HSPLandroid/location/Location;->hasMslAltitudeAccuracy()Z HSPLandroid/location/Location;->hasSpeed()Z HSPLandroid/location/Location;->hasSpeedAccuracy()Z HSPLandroid/location/Location;->hasVerticalAccuracy()Z @@ -10882,12 +10501,9 @@ HSPLandroid/media/AudioAttributes;->-$$Nest$fputmUsage(Landroid/media/AudioAttri HSPLandroid/media/AudioAttributes;-><init>()V HSPLandroid/media/AudioAttributes;-><init>(Landroid/media/AudioAttributes-IA;)V HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;)V+]Ljava/util/HashSet;Ljava/util/HashSet;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;Landroid/media/AudioAttributes-IA;)V HSPLandroid/media/AudioAttributes;->areHapticChannelsMuted()Z -HSPLandroid/media/AudioAttributes;->capturePolicyToFlags(II)I HSPLandroid/media/AudioAttributes;->equals(Ljava/lang/Object;)Z HSPLandroid/media/AudioAttributes;->getAllFlags()I -HSPLandroid/media/AudioAttributes;->getCapturePreset()I HSPLandroid/media/AudioAttributes;->getContentType()I HSPLandroid/media/AudioAttributes;->getFlags()I HSPLandroid/media/AudioAttributes;->getUsage()I @@ -10895,14 +10511,8 @@ 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/AudioDeviceAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioDeviceAttributes; -HSPLandroid/media/AudioDeviceAttributes$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/AudioDeviceAttributes;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/media/AudioDeviceAttributes;-><init>(Landroid/os/Parcel;Landroid/media/AudioDeviceAttributes-IA;)V -HSPLandroid/media/AudioDeviceAttributes;->getType()I HSPLandroid/media/AudioDeviceCallback;-><init>()V HSPLandroid/media/AudioDeviceInfo;-><init>(Landroid/media/AudioDevicePort;)V -HSPLandroid/media/AudioDeviceInfo;->convertDeviceTypeToInternalDevice(I)I HSPLandroid/media/AudioDeviceInfo;->convertInternalDeviceToDeviceType(I)I HSPLandroid/media/AudioDeviceInfo;->getId()I HSPLandroid/media/AudioDeviceInfo;->getType()I @@ -10918,16 +10528,12 @@ HSPLandroid/media/AudioFocusRequest$Builder;->setAudioAttributes(Landroid/media/ HSPLandroid/media/AudioFocusRequest$Builder;->setFocusGain(I)Landroid/media/AudioFocusRequest$Builder; HSPLandroid/media/AudioFocusRequest;->getOnAudioFocusChangeListener()Landroid/media/AudioManager$OnAudioFocusChangeListener; HSPLandroid/media/AudioFocusRequest;->isValidFocusGain(I)Z -HSPLandroid/media/AudioFormat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioFormat; -HSPLandroid/media/AudioFormat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/AudioFormat$Builder;-><init>()V HSPLandroid/media/AudioFormat$Builder;->build()Landroid/media/AudioFormat; HSPLandroid/media/AudioFormat$Builder;->setChannelMask(I)Landroid/media/AudioFormat$Builder; HSPLandroid/media/AudioFormat$Builder;->setEncoding(I)Landroid/media/AudioFormat$Builder; HSPLandroid/media/AudioFormat$Builder;->setSampleRate(I)Landroid/media/AudioFormat$Builder; HSPLandroid/media/AudioFormat;-><init>(IIIII)V -HSPLandroid/media/AudioFormat;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/AudioFormat;-><init>(Landroid/os/Parcel;Landroid/media/AudioFormat-IA;)V HSPLandroid/media/AudioFormat;->getBytesPerSample(I)I HSPLandroid/media/AudioFormat;->getChannelCount()I HSPLandroid/media/AudioFormat;->getChannelMask()I @@ -11028,13 +10634,8 @@ HSPLandroid/media/AudioMixPortConfig;-><init>(Landroid/media/AudioMixPort;IIILan HSPLandroid/media/AudioPatch;-><init>(Landroid/media/AudioHandle;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)V HSPLandroid/media/AudioPatch;->sinks()[Landroid/media/AudioPortConfig; HSPLandroid/media/AudioPatch;->sources()[Landroid/media/AudioPortConfig; -HSPLandroid/media/AudioPlaybackConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioPlaybackConfiguration; -HSPLandroid/media/AudioPlaybackConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;-><init>(Landroid/media/AudioPlaybackConfiguration;Landroid/media/IPlayer;)V -HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/media/AudioAttributes$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/os/Parcel;Landroid/media/AudioPlaybackConfiguration-IA;)V HSPLandroid/media/AudioPlaybackConfiguration;->getAudioAttributes()Landroid/media/AudioAttributes; -HSPLandroid/media/AudioPlaybackConfiguration;->getPlayerState()I HSPLandroid/media/AudioPlaybackConfiguration;->isActive()Z HSPLandroid/media/AudioPort$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I HSPLandroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/stream/Stream;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$Head;]Ljava/util/stream/IntStream;Ljava/util/stream/IntPipeline$Head;,Ljava/util/stream/ReferencePipeline$4;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/media/AudioProfile;Landroid/media/AudioProfile;]Ljava/util/Set;Ljava/util/HashSet; @@ -11060,16 +10661,12 @@ HSPLandroid/media/AudioProfile;->getChannelMasks()[I HSPLandroid/media/AudioProfile;->getFormat()I HSPLandroid/media/AudioProfile;->getSampleRates()[I HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V -HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;IILandroid/content/Context;I)V+]Landroid/media/AudioFormat;Landroid/media/AudioFormat;]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;]Landroid/content/AttributionSource$ScopedParcelState;Landroid/content/AttributionSource$ScopedParcelState; HSPLandroid/media/AudioRecord;->audioBuffSizeCheck(I)V HSPLandroid/media/AudioRecord;->audioParamCheck(III)V -PLandroid/media/AudioRecord;->finalize()V HSPLandroid/media/AudioRecord;->getChannelMaskFromLegacyConfig(IZ)I HSPLandroid/media/AudioRecord;->getMinBufferSize(III)I HSPLandroid/media/AudioRecord;->release()V HSPLandroid/media/AudioRecord;->stop()V -HSPLandroid/media/AudioRecordingMonitorImpl$1;-><init>(Landroid/media/AudioRecordingMonitorImpl;)V -HSPLandroid/media/AudioRecordingMonitorImpl;-><init>(Landroid/media/AudioRecordingMonitorClient;)V HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioRoutesInfo; HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/AudioRoutesInfo;-><init>()V @@ -11102,17 +10699,7 @@ HSPLandroid/media/AudioTrack;->startImpl()V HSPLandroid/media/AudioTrack;->stop()V HSPLandroid/media/AudioTrack;->testDisableNativeRoutingCallbacksLocked()V HSPLandroid/media/AudioTrack;->tryToDisableNativeRoutingCallback()V -HSPLandroid/media/CallbackUtil$LazyListenerManager$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/media/CallbackUtil$LazyListenerManager$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HSPLandroid/media/CallbackUtil$LazyListenerManager;-><init>()V -HSPLandroid/media/CallbackUtil$LazyListenerManager;->addListener(Ljava/util/concurrent/Executor;Ljava/lang/Object;Ljava/lang/String;Ljava/util/function/Supplier;)V -HSPLandroid/media/CallbackUtil$LazyListenerManager;->lambda$addListener$0(Landroid/media/CallbackUtil$DispatcherStub;)V -HSPLandroid/media/CallbackUtil$ListenerInfo;-><init>(Ljava/lang/Object;Ljava/util/concurrent/Executor;)V -HSPLandroid/media/CallbackUtil;->addListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Ljava/lang/Object;Ljava/util/ArrayList;Ljava/lang/Object;Ljava/util/function/Supplier;Ljava/util/function/Consumer;)Landroid/util/Pair; -HSPLandroid/media/CallbackUtil;->getListenerInfo(Ljava/lang/Object;Ljava/util/ArrayList;)Landroid/media/CallbackUtil$ListenerInfo; -HSPLandroid/media/CallbackUtil;->hasListener(Ljava/lang/Object;Ljava/util/ArrayList;)Z -HSPLandroid/media/CallbackUtil;->removeListener(Ljava/lang/Object;Ljava/util/ArrayList;)Z -HSPLandroid/media/CallbackUtil;->removeListener(Ljava/lang/String;Ljava/lang/Object;Ljava/util/ArrayList;Ljava/lang/Object;Ljava/util/function/Consumer;)Landroid/util/Pair; HSPLandroid/media/IAudioFocusDispatcher$Stub;-><init>()V HSPLandroid/media/IAudioFocusDispatcher$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/media/IAudioRoutesObserver$Stub;-><init>()V @@ -11137,7 +10724,6 @@ HSPLandroid/media/IAudioService$Stub$Proxy;->isVolumeFixed()Z HSPLandroid/media/IAudioService$Stub$Proxy;->playSoundEffect(II)V HSPLandroid/media/IAudioService$Stub$Proxy;->playerAttributes(ILandroid/media/AudioAttributes;)V HSPLandroid/media/IAudioService$Stub$Proxy;->playerEvent(III)V -HSPLandroid/media/IAudioService$Stub$Proxy;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V HSPLandroid/media/IAudioService$Stub$Proxy;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V HSPLandroid/media/IAudioService$Stub$Proxy;->releasePlayer(I)V HSPLandroid/media/IAudioService$Stub$Proxy;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I @@ -11157,7 +10743,6 @@ HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setSelectedRoute(Landroid/med HSPLandroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService; HSPLandroid/media/IPlaybackConfigDispatcher$Stub;-><init>()V HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/media/IPlayer$Stub;-><init>()V HSPLandroid/media/IPlayer$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer; @@ -11174,21 +10759,10 @@ HSPLandroid/media/MediaCodec$BufferMap;-><init>(Landroid/media/MediaCodec$Buffer HSPLandroid/media/MediaCodec$BufferMap;->clear()V HSPLandroid/media/MediaCodec$BufferMap;->put(ILjava/nio/ByteBuffer;)V HSPLandroid/media/MediaCodec$BufferMap;->remove(I)V -HSPLandroid/media/MediaCodec$Callback;-><init>()V HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;-><init>(II)V HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;->set(II)V HSPLandroid/media/MediaCodec$CryptoInfo;-><init>()V HSPLandroid/media/MediaCodec$EventHandler;-><init>(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V -HSPLandroid/media/MediaCodec$EventHandler;->handleCallback(Landroid/os/Message;)V -HSPLandroid/media/MediaCodec$EventHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmBufferLock(Landroid/media/MediaCodec;)Ljava/lang/Object; -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmBufferMode(Landroid/media/MediaCodec;)I -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmCachedInputBuffers(Landroid/media/MediaCodec;)[Ljava/nio/ByteBuffer; -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmCachedOutputBuffers(Landroid/media/MediaCodec;)[Ljava/nio/ByteBuffer; -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmCallback(Landroid/media/MediaCodec;)Landroid/media/MediaCodec$Callback; -HSPLandroid/media/MediaCodec;->-$$Nest$fputmCallback(Landroid/media/MediaCodec;Landroid/media/MediaCodec$Callback;)V -HSPLandroid/media/MediaCodec;->-$$Nest$mvalidateInputByteBufferLocked(Landroid/media/MediaCodec;[Ljava/nio/ByteBuffer;I)V -HSPLandroid/media/MediaCodec;->-$$Nest$mvalidateOutputByteBufferLocked(Landroid/media/MediaCodec;[Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZ)V HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZII)V HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V @@ -11198,23 +10772,17 @@ HSPLandroid/media/MediaCodec;->dequeueInputBuffer(J)I HSPLandroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I HSPLandroid/media/MediaCodec;->finalize()V HSPLandroid/media/MediaCodec;->freeAllTrackedBuffers()V -HSPLandroid/media/MediaCodec;->getEventHandlerOn(Landroid/os/Handler;Landroid/media/MediaCodec$EventHandler;)Landroid/media/MediaCodec$EventHandler; HSPLandroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer; HSPLandroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer; HSPLandroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat; -HSPLandroid/media/MediaCodec;->invalidateByteBufferLocked([Ljava/nio/ByteBuffer;IZ)V+]Ljava/util/BitSet;Ljava/util/BitSet;]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; HSPLandroid/media/MediaCodec;->lockAndGetContext()J -HSPLandroid/media/MediaCodec;->postEventFromNative(IIILjava/lang/Object;)V+]Landroid/media/MediaCodec$EventHandler;Landroid/media/MediaCodec$EventHandler; HSPLandroid/media/MediaCodec;->queueInputBuffer(IIIJI)V HSPLandroid/media/MediaCodec;->release()V HSPLandroid/media/MediaCodec;->releaseOutputBuffer(IZ)V HSPLandroid/media/MediaCodec;->releaseOutputBufferInternal(IZZJ)V HSPLandroid/media/MediaCodec;->setAndUnlockContext(J)V -HSPLandroid/media/MediaCodec;->setCallback(Landroid/media/MediaCodec$Callback;Landroid/os/Handler;)V HSPLandroid/media/MediaCodec;->start()V HSPLandroid/media/MediaCodec;->stop()V -HSPLandroid/media/MediaCodec;->validateInputByteBufferLocked([Ljava/nio/ByteBuffer;I)V+]Ljava/util/BitSet;Ljava/util/BitSet;]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; -HSPLandroid/media/MediaCodec;->validateOutputByteBufferLocked([Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V+]Ljava/util/BitSet;Ljava/util/BitSet;]Ljava/nio/Buffer;Ljava/nio/DirectByteBuffer;]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLimits([Landroid/util/Range;Landroid/util/Range;)V HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->createDiscreteSampleRates()V @@ -11330,18 +10898,13 @@ HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Landroid/media/MediaPlay HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/media/MediaPlayer$TrackInfo;-><init>(Landroid/os/Parcel;)V HSPLandroid/media/MediaPlayer$TrackInfo;->getTrackType()I -HSPLandroid/media/MediaPlayer;->-$$Nest$fgetmOnMediaTimeDiscontinuityHandler(Landroid/media/MediaPlayer;)Landroid/os/Handler; -HSPLandroid/media/MediaPlayer;->-$$Nest$fgetmOnMediaTimeDiscontinuityListener(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener; -HSPLandroid/media/MediaPlayer;->-$$Nest$mbroadcastRoutingChange(Landroid/media/MediaPlayer;)V HSPLandroid/media/MediaPlayer;-><init>()V HSPLandroid/media/MediaPlayer;-><init>(I)V HSPLandroid/media/MediaPlayer;->attemptDataSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Z -HSPLandroid/media/MediaPlayer;->broadcastRoutingChange()V HSPLandroid/media/MediaPlayer;->cleanDrmObj()V HSPLandroid/media/MediaPlayer;->finalize()V HSPLandroid/media/MediaPlayer;->getInbandTrackInfo()[Landroid/media/MediaPlayer$TrackInfo; HSPLandroid/media/MediaPlayer;->getMediaTimeProvider()Landroid/media/MediaTimeProvider; -HSPLandroid/media/MediaPlayer;->getRoutedDevice()Landroid/media/AudioDeviceInfo; HSPLandroid/media/MediaPlayer;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V HSPLandroid/media/MediaPlayer;->playerSetVolume(ZFF)V HSPLandroid/media/MediaPlayer;->populateInbandTracks()V @@ -11362,8 +10925,6 @@ HSPLandroid/media/MediaPlayer;->setSubtitleAnchor()V HSPLandroid/media/MediaPlayer;->setVolume(FF)V HSPLandroid/media/MediaPlayer;->start()V HSPLandroid/media/MediaPlayer;->stayAwake(Z)V -HSPLandroid/media/MediaPlayer;->testDisableNativeRoutingCallbacksLocked()V -HSPLandroid/media/MediaPlayer;->testEnableNativeRoutingCallbacksLocked()Z HSPLandroid/media/MediaPlayer;->tryToDisableNativeRoutingCallback()V HSPLandroid/media/MediaPlayer;->tryToEnableNativeRoutingCallback()V HSPLandroid/media/MediaRoute2Info$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaRoute2Info; @@ -11429,11 +10990,9 @@ HSPLandroid/media/MediaRouter$SimpleCallback;-><init>()V HSPLandroid/media/MediaRouter$Static$1$1;->run()V HSPLandroid/media/MediaRouter$Static$1;-><init>(Landroid/media/MediaRouter$Static;)V HSPLandroid/media/MediaRouter$Static$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V -HSPLandroid/media/MediaRouter$Static$Client$$ExternalSyntheticLambda1;->run()V HSPLandroid/media/MediaRouter$Static$Client$1;-><init>(Landroid/media/MediaRouter$Static$Client;)V HSPLandroid/media/MediaRouter$Static$Client$1;->run()V HSPLandroid/media/MediaRouter$Static$Client;-><init>(Landroid/media/MediaRouter$Static;)V -HSPLandroid/media/MediaRouter$Static$Client;->lambda$onRestoreRoute$0$android-media-MediaRouter$Static$Client()V HSPLandroid/media/MediaRouter$Static$Client;->onRestoreRoute()V HSPLandroid/media/MediaRouter$Static$Client;->onStateChanged()V HSPLandroid/media/MediaRouter$Static;-><init>(Landroid/content/Context;)V @@ -11478,7 +11037,6 @@ HSPLandroid/media/MediaRouter;->dispatchRouteAdded(Landroid/media/MediaRouter$Ro HSPLandroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;I)V HSPLandroid/media/MediaRouter;->dispatchRouteRemoved(Landroid/media/MediaRouter$RouteInfo;)V HSPLandroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->dispatchRouteUnselected(ILandroid/media/MediaRouter$RouteInfo;)V HSPLandroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V HSPLandroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I HSPLandroid/media/MediaRouter;->getDefaultRoute()Landroid/media/MediaRouter$RouteInfo; @@ -11517,7 +11075,6 @@ HSPLandroid/media/PlayerBase;->getService()Landroid/media/IAudioService; HSPLandroid/media/PlayerBase;->getStartDelayMs()I HSPLandroid/media/PlayerBase;->updatePlayerVolume()V HSPLandroid/media/PlayerBase;->updateState(II)V -HSPLandroid/media/RouteDiscoveryPreference;->getPreferredFeatures()Ljava/util/List; HSPLandroid/media/RoutingSessionInfo$Builder;->build()Landroid/media/RoutingSessionInfo; HSPLandroid/media/RoutingSessionInfo;-><init>(Landroid/media/RoutingSessionInfo$Builder;)V HSPLandroid/media/RoutingSessionInfo;->convertToUniqueRouteIds(Ljava/util/List;)Ljava/util/List; @@ -11527,7 +11084,6 @@ HSPLandroid/media/SoundPool$Builder;->setAudioAttributes(Landroid/media/AudioAtt HSPLandroid/media/SoundPool$Builder;->setMaxStreams(I)Landroid/media/SoundPool$Builder; HSPLandroid/media/SoundPool$EventHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;)V -HSPLandroid/media/SoundPool;->load(Landroid/content/Context;II)I HSPLandroid/media/SoundPool;->postEventFromNative(IIILjava/lang/Object;)V HSPLandroid/media/SoundPool;->setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V HSPLandroid/media/SubtitleController$1;->handleMessage(Landroid/os/Message;)Z @@ -11593,14 +11149,8 @@ HSPLandroid/media/metrics/MediaMetricsManager;-><init>(Landroid/media/metrics/IM HSPLandroid/media/metrics/MediaMetricsManager;->createPlaybackSession()Landroid/media/metrics/PlaybackSession; HSPLandroid/media/metrics/NetworkEvent$1;-><init>()V HSPLandroid/media/metrics/NetworkEvent;-><clinit>()V -HSPLandroid/media/metrics/PlaybackMetrics$1;-><init>()V -HSPLandroid/media/metrics/PlaybackMetrics;-><clinit>()V HSPLandroid/media/metrics/PlaybackSession;-><init>(Ljava/lang/String;Landroid/media/metrics/MediaMetricsManager;)V HSPLandroid/media/metrics/PlaybackSession;->getSessionId()Landroid/media/metrics/LogSessionId; -HSPLandroid/media/metrics/PlaybackStateEvent$1;-><init>()V -HSPLandroid/media/metrics/PlaybackStateEvent;-><clinit>()V -HSPLandroid/media/metrics/TrackChangeEvent$1;-><init>()V -HSPLandroid/media/metrics/TrackChangeEvent;-><clinit>()V HSPLandroid/media/permission/ClearCallingIdentityContext;-><init>()V HSPLandroid/media/permission/ClearCallingIdentityContext;->close()V HSPLandroid/media/permission/ClearCallingIdentityContext;->create()Landroid/media/permission/SafeCloseable; @@ -11613,7 +11163,6 @@ HSPLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;-><init>() HSPLandroid/media/session/ISession$Stub$Proxy;->destroySession()V HSPLandroid/media/session/ISession$Stub$Proxy;->getController()Landroid/media/session/ISessionController; HSPLandroid/media/session/ISession$Stub$Proxy;->setFlags(I)V -HSPLandroid/media/session/ISession$Stub$Proxy;->setMediaButtonReceiver(Landroid/app/PendingIntent;Ljava/lang/String;)V HSPLandroid/media/session/ISession$Stub$Proxy;->setMetadata(Landroid/media/MediaMetadata;JLjava/lang/String;)V HSPLandroid/media/session/ISession$Stub$Proxy;->setPlaybackState(Landroid/media/session/PlaybackState;)V HSPLandroid/media/session/ISessionCallback$Stub;-><init>()V @@ -11639,14 +11188,12 @@ HSPLandroid/media/session/MediaController$Callback;-><init>()V HSPLandroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V HSPLandroid/media/session/MediaController$CallbackStub;->onMetadataChanged(Landroid/media/MediaMetadata;)V HSPLandroid/media/session/MediaController$CallbackStub;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V -HSPLandroid/media/session/MediaController$CallbackStub;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V HSPLandroid/media/session/MediaController$CallbackStub;->onSessionDestroyed()V HSPLandroid/media/session/MediaController$MessageHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaController$PlaybackInfo; HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/session/MediaController$PlaybackInfo;-><init>(Landroid/os/Parcel;)V HSPLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;)V -HSPLandroid/media/session/MediaController;->-$$Nest$mpostMessage(Landroid/media/session/MediaController;ILjava/lang/Object;Landroid/os/Bundle;)V HSPLandroid/media/session/MediaController;-><init>(Landroid/content/Context;Landroid/media/session/MediaSession$Token;)V HSPLandroid/media/session/MediaController;->addCallbackLocked(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V HSPLandroid/media/session/MediaController;->getHandlerForCallbackLocked(Landroid/media/session/MediaController$Callback;)Landroid/media/session/MediaController$MessageHandler; @@ -11662,16 +11209,11 @@ HSPLandroid/media/session/MediaController;->unregisterCallback(Landroid/media/se HSPLandroid/media/session/MediaSession$Callback;-><init>()V HSPLandroid/media/session/MediaSession$CallbackMessageHandler;-><init>(Landroid/media/session/MediaSession;Landroid/os/Looper;Landroid/media/session/MediaSession$Callback;)V HSPLandroid/media/session/MediaSession$CallbackStub;-><init>(Landroid/media/session/MediaSession;)V -HSPLandroid/media/session/MediaSession$QueueItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$QueueItem; -HSPLandroid/media/session/MediaSession$QueueItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/session/MediaSession$QueueItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/session/MediaSession$QueueItem;-><init>(Landroid/os/Parcel;Landroid/media/session/MediaSession$QueueItem-IA;)V HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$Token; HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/session/MediaSession$Token;-><init>(ILandroid/media/session/ISessionController;)V HSPLandroid/media/session/MediaSession$Token;->equals(Ljava/lang/Object;)Z HSPLandroid/media/session/MediaSession$Token;->getBinder()Landroid/media/session/ISessionController; -HSPLandroid/media/session/MediaSession$Token;->hashCode()I HSPLandroid/media/session/MediaSession$Token;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;)V HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V @@ -11720,10 +11262,8 @@ HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landro HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V HSPLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/session/PlaybackState;->getPlaybackSpeed()F HSPLandroid/media/session/PlaybackState;->getPosition()J HSPLandroid/media/session/PlaybackState;->getState()I -HSPLandroid/media/session/PlaybackState;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/media/session/PlaybackState;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/metrics/LogMaker;-><init>(I)V HSPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker; @@ -11749,13 +11289,11 @@ HSPLandroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)La HSPLandroid/net/INetworkScoreCache$Stub;-><init>()V HSPLandroid/net/INetworkScoreCache$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService; -HSPLandroid/net/IVpnManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IVpnManager; HSPLandroid/net/LocalServerSocket;-><init>(Ljava/io/FileDescriptor;)V HSPLandroid/net/LocalServerSocket;->accept()Landroid/net/LocalSocket; HSPLandroid/net/LocalServerSocket;->close()V HSPLandroid/net/LocalServerSocket;->getFileDescriptor()Ljava/io/FileDescriptor; HSPLandroid/net/LocalSocket;-><init>(Landroid/net/LocalSocketImpl;I)V -HSPLandroid/net/LocalSocket;-><init>(Ljava/io/FileDescriptor;)V HSPLandroid/net/LocalSocket;->checkConnected()V HSPLandroid/net/LocalSocket;->close()V HSPLandroid/net/LocalSocket;->createLocalSocketForAccept(Landroid/net/LocalSocketImpl;)Landroid/net/LocalSocket; @@ -11765,7 +11303,6 @@ HSPLandroid/net/LocalSocket;->getOutputStream()Ljava/io/OutputStream; HSPLandroid/net/LocalSocket;->getPeerCredentials()Landroid/net/Credentials; HSPLandroid/net/LocalSocket;->implCreateIfNeeded()V HSPLandroid/net/LocalSocket;->setSoTimeout(I)V -HSPLandroid/net/LocalSocket;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/net/LocalSocketAddress$Namespace;->getId()I HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;)V HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V @@ -11795,7 +11332,6 @@ HSPLandroid/net/LocalSocketImpl;->getPeerCredentials()Landroid/net/Credentials; HSPLandroid/net/LocalSocketImpl;->getSockAddress()Landroid/net/LocalSocketAddress; HSPLandroid/net/LocalSocketImpl;->listen(I)V HSPLandroid/net/LocalSocketImpl;->setOption(ILjava/lang/Object;)V -HSPLandroid/net/LocalSocketImpl;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/net/MatchAllNetworkSpecifier;-><init>()V HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkKey; HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -11807,7 +11343,6 @@ HSPLandroid/net/NetworkKey;->createFromWifiInfo(Landroid/net/wifi/WifiInfo;)Land HSPLandroid/net/NetworkKey;->equals(Ljava/lang/Object;)Z HSPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/net/NetworkPolicyManager$Listener;-><init>()V -HSPLandroid/net/NetworkPolicyManager$Listener;->onBlockedReasonChanged(III)V HSPLandroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V HSPLandroid/net/NetworkPolicyManager$Listener;->onSubscriptionPlansChanged(I[Landroid/telephony/SubscriptionPlan;)V HSPLandroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V @@ -11829,7 +11364,6 @@ HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->build()Landroid/net/Telephon HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->setSubscriptionId(I)Landroid/net/TelephonyNetworkSpecifier$Builder; HSPLandroid/net/TelephonyNetworkSpecifier;-><init>(I)V HSPLandroid/net/TelephonyNetworkSpecifier;->equals(Ljava/lang/Object;)Z -HSPLandroid/net/TelephonyNetworkSpecifier;->getSubscriptionId()I HSPLandroid/net/TelephonyNetworkSpecifier;->hashCode()I HSPLandroid/net/TelephonyNetworkSpecifier;->toString()Ljava/lang/String; HSPLandroid/net/TelephonyNetworkSpecifier;->writeToParcel(Landroid/os/Parcel;I)V @@ -11891,12 +11425,7 @@ HSPLandroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/ HSPLandroid/net/Uri$HierarchicalUri;->toString()Ljava/lang/String; HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V -HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;Landroid/net/Uri$OpaqueUri-IA;)V -HSPLandroid/net/Uri$OpaqueUri;->getAuthority()Ljava/lang/String; HSPLandroid/net/Uri$OpaqueUri;->getEncodedSchemeSpecificPart()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getHost()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getPath()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getPort()I HSPLandroid/net/Uri$OpaqueUri;->getScheme()Ljava/lang/String; HSPLandroid/net/Uri$OpaqueUri;->getSchemeSpecificPart()Ljava/lang/String; HSPLandroid/net/Uri$OpaqueUri;->toString()Ljava/lang/String; @@ -11996,13 +11525,10 @@ HSPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/net/http/X509TrustManagerExtensions;-><init>(Ljavax/net/ssl/X509TrustManager;)V HSPLandroid/net/http/X509TrustManagerExtensions;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; HSPLandroid/net/metrics/IpConnectivityLog;-><init>()V -HSPLandroid/net/vcn/IVcnManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/vcn/IVcnManagementService; HSPLandroid/net/vcn/VcnTransportInfo$1;-><init>()V HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/vcn/VcnTransportInfo; HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/net/vcn/VcnTransportInfo;-><clinit>()V -HSPLandroid/net/vcn/VcnTransportInfo;-><init>(Landroid/net/wifi/WifiInfo;I)V -HSPLandroid/net/vcn/VcnTransportInfo;-><init>(Landroid/net/wifi/WifiInfo;ILandroid/net/vcn/VcnTransportInfo-IA;)V HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcCardEmulationInterface()Landroid/nfc/INfcCardEmulation; HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcFCardEmulationInterface()Landroid/nfc/INfcFCardEmulation; HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcTagInterface()Landroid/nfc/INfcTag; @@ -12032,7 +11558,6 @@ HSPLandroid/opengl/EGLDisplay;-><init>(J)V HSPLandroid/opengl/EGLObjectHandle;->getNativeHandle()J HSPLandroid/opengl/EGLSurface;-><init>(J)V HSPLandroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V -HSPLandroid/opengl/GLUtils;->texImage2D(IILandroid/graphics/Bitmap;I)V HSPLandroid/opengl/Matrix;->setIdentityM([FI)V HSPLandroid/os/AsyncTask$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; HSPLandroid/os/AsyncTask$3;-><init>(Landroid/os/AsyncTask;)V @@ -12047,11 +11572,6 @@ HSPLandroid/os/AsyncTask$SerialExecutor$1;->run()V HSPLandroid/os/AsyncTask$SerialExecutor;->execute(Ljava/lang/Runnable;)V HSPLandroid/os/AsyncTask$SerialExecutor;->scheduleNext()V HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>()V -HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>(Landroid/os/AsyncTask$WorkerRunnable-IA;)V -HSPLandroid/os/AsyncTask;->-$$Nest$fgetmTaskInvoked(Landroid/os/AsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean; -HSPLandroid/os/AsyncTask;->-$$Nest$mfinish(Landroid/os/AsyncTask;Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask;->-$$Nest$mpostResult(Landroid/os/AsyncTask;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/AsyncTask;->-$$Nest$mpostResultIfNotInvoked(Landroid/os/AsyncTask;Ljava/lang/Object;)V HSPLandroid/os/AsyncTask;-><init>()V HSPLandroid/os/AsyncTask;-><init>(Landroid/os/Looper;)V HSPLandroid/os/AsyncTask;->cancel(Z)Z @@ -12087,8 +11607,6 @@ 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;->getClassLoader()Ljava/lang/ClassLoader; -HSPLandroid/os/BaseBundle;->getDouble(Ljava/lang/String;D)D HSPLandroid/os/BaseBundle;->getFloat(Ljava/lang/String;F)F HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;)I HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;I)I @@ -12098,7 +11616,6 @@ HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;)J HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;J)J HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable; -HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/Serializable; HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/os/BaseBundle;->getStringArray(Ljava/lang/String;)[Ljava/lang/String; @@ -12191,7 +11708,7 @@ HSPLandroid/os/Binder;->getInterfaceDescriptor()Ljava/lang/String; HSPLandroid/os/Binder;->getMaxTransactionId()I HSPLandroid/os/Binder;->getSimpleDescriptor()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/os/Binder;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/os/Binder;->getTransactionTraceName(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Binder;megamorphic_types]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; +HSPLandroid/os/Binder;->getTransactionTraceName(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]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;->lambda$static$1(I)I @@ -12199,7 +11716,6 @@ HSPLandroid/os/Binder;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V HSPLandroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/os/Binder;->pingBinder()Z HSPLandroid/os/Binder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface; -HSPLandroid/os/Binder;->setObserver(Lcom/android/internal/os/BinderInternal$Observer;)V HSPLandroid/os/Binder;->setProxyTransactListener(Landroid/os/Binder$ProxyTransactListener;)V HSPLandroid/os/Binder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/os/Binder;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z @@ -12230,7 +11746,6 @@ HSPLandroid/os/Bundle$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/os/Bundle;-><init>()V HSPLandroid/os/Bundle;-><init>(I)V HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;)V -HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;Z)V HSPLandroid/os/Bundle;-><init>(Landroid/os/Parcel;I)V HSPLandroid/os/Bundle;-><init>(Landroid/os/PersistableBundle;)V HSPLandroid/os/Bundle;->clear()V @@ -12241,7 +11756,6 @@ HSPLandroid/os/Bundle;->getBinder(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/Bundle;->getBundle(Ljava/lang/String;)Landroid/os/Bundle; HSPLandroid/os/Bundle;->getByteArray(Ljava/lang/String;)[B HSPLandroid/os/Bundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence; -HSPLandroid/os/Bundle;->getClassLoader()Ljava/lang/ClassLoader; HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;)F HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;F)F HSPLandroid/os/Bundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList; @@ -12249,9 +11763,7 @@ HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable; HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Bundle;Landroid/os/Bundle; HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable; HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;Ljava/lang/Class;)Ljava/util/ArrayList; HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable; -HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/Serializable; HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray; HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList; HSPLandroid/os/Bundle;->hasFileDescriptors()Z @@ -12294,7 +11806,6 @@ HSPLandroid/os/CombinedVibration$Mono$1;-><init>()V HSPLandroid/os/CombinedVibration$Mono;-><clinit>()V HSPLandroid/os/CombinedVibration$Mono;-><init>(Landroid/os/VibrationEffect;)V HSPLandroid/os/CombinedVibration$Mono;->validate()V -HSPLandroid/os/CombinedVibration$Mono;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/CombinedVibration;-><init>()V HSPLandroid/os/ConditionVariable;-><init>()V HSPLandroid/os/ConditionVariable;-><init>(Z)V @@ -12453,9 +11964,6 @@ HSPLandroid/os/GraphicsEnvironment;->setupGpuLayers(Landroid/content/Context;Lan HSPLandroid/os/GraphicsEnvironment;->shouldShowAngleInUseDialogBox(Landroid/content/Context;)Z HSPLandroid/os/GraphicsEnvironment;->shouldUseAngle(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Z HSPLandroid/os/GraphicsEnvironment;->showAngleInUseDialogBox(Landroid/content/Context;)V -HSPLandroid/os/Handler$BlockingRunnable;-><init>(Ljava/lang/Runnable;)V -HSPLandroid/os/Handler$BlockingRunnable;->postAndWait(Landroid/os/Handler;J)Z -HSPLandroid/os/Handler$BlockingRunnable;->run()V HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;)V HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;Landroid/os/Handler$MessengerImpl-IA;)V HSPLandroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V @@ -12465,10 +11973,8 @@ HSPLandroid/os/Handler;-><init>(Landroid/os/Handler$Callback;Z)V HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;)V HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V -HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;ZZ)V HSPLandroid/os/Handler;-><init>(Z)V HSPLandroid/os/Handler;->createAsync(Landroid/os/Looper;)Landroid/os/Handler; -HSPLandroid/os/Handler;->disallowNullArgumentIfShared(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/os/Handler;->dispatchMessage(Landroid/os/Message;)V HSPLandroid/os/Handler;->enqueueMessage(Landroid/os/MessageQueue;Landroid/os/Message;J)Z HSPLandroid/os/Handler;->executeOrSendMessage(Landroid/os/Message;)Z @@ -12499,7 +12005,6 @@ HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V HSPLandroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V HSPLandroid/os/Handler;->removeMessages(I)V HSPLandroid/os/Handler;->removeMessages(ILjava/lang/Object;)V -HSPLandroid/os/Handler;->runWithScissors(Ljava/lang/Runnable;J)Z HSPLandroid/os/Handler;->sendEmptyMessage(I)Z HSPLandroid/os/Handler;->sendEmptyMessageAtTime(IJ)Z HSPLandroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z @@ -12583,7 +12088,6 @@ HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/ HSPLandroid/os/IRemoteCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/os/IServiceManager$Stub$Proxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V HSPLandroid/os/IServiceManager$Stub$Proxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/IServiceManager$Stub$Proxy;->isDeclared(Ljava/lang/String;)Z+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/ISystemConfig$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISystemConfig; HSPLandroid/os/IThermalEventListener$Stub;-><init>()V HSPLandroid/os/IThermalEventListener$Stub;->asBinder()Landroid/os/IBinder; @@ -12602,7 +12106,6 @@ HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileType(I)Ljava/lang/String; HSPLandroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List; HSPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeColorResId(I)I HSPLandroid/os/IUserManager$Stub$Proxy;->getUserHandle(I)I -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserIconBadgeResId(I)I HSPLandroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo; HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List; HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictions(I)Landroid/os/Bundle; @@ -12638,7 +12141,6 @@ 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;Landroid/os/LocaleList;)V HSPLandroid/os/LocaleList;-><init>([Ljava/util/Locale;)V HSPLandroid/os/LocaleList;->computeFirstMatch(Ljava/util/Collection;Z)Ljava/util/Locale; HSPLandroid/os/LocaleList;->computeFirstMatchIndex(Ljava/util/Collection;Z)I @@ -12850,13 +12352,10 @@ HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle; HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle; HSPLandroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor; HSPLandroid/os/Parcel;->readSerializable()Ljava/io/Serializable; -HSPLandroid/os/Parcel;->readSerializable(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; HSPLandroid/os/Parcel;->readSparseArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/util/SparseArray; -HSPLandroid/os/Parcel;->readSparseBooleanArray()Landroid/util/SparseBooleanArray; 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; @@ -13007,7 +12506,6 @@ HSPLandroid/os/PersistableBundle;-><init>()V HSPLandroid/os/PersistableBundle;-><init>(I)V HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;)V -HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;Z)V HSPLandroid/os/PersistableBundle;->deepCopy()Landroid/os/PersistableBundle; HSPLandroid/os/PersistableBundle;->getPersistableBundle(Ljava/lang/String;)Landroid/os/PersistableBundle; HSPLandroid/os/PersistableBundle;->isValidType(Ljava/lang/Object;)Z @@ -13124,14 +12622,10 @@ HSPLandroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager; HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManager;->initServiceCache(Ljava/util/Map;)V -HSPLandroid/os/ServiceManager;->isDeclared(Ljava/lang/String;)Z HSPLandroid/os/ServiceManager;->rawGetService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManager;->waitForDeclaredService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManager;->waitForService(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManagerProxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V HSPLandroid/os/ServiceManagerProxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManagerProxy;->getService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManagerProxy;->isDeclared(Ljava/lang/String;)Z HSPLandroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/SharedMemory; HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -13222,7 +12716,6 @@ HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitUnbufferedIo()Landroid/os HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$ThreadPolicy-IA;)V HSPLandroid/os/StrictMode$ThreadSpanState;-><init>()V -HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$ThreadSpanState-IA;)V HSPLandroid/os/StrictMode$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; @@ -13254,7 +12747,6 @@ HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/Stri HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$VmPolicy-IA;)V HSPLandroid/os/StrictMode;->-$$Nest$sfgetEMPTY_CLASS_LIMIT_MAP()Ljava/util/HashMap; HSPLandroid/os/StrictMode;->-$$Nest$sfgetsExpectedActivityInstanceCount()Ljava/util/HashMap; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThisThreadSpanState()Ljava/lang/ThreadLocal; HSPLandroid/os/StrictMode;->allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy; HSPLandroid/os/StrictMode;->allowThreadDiskReadsMask()I HSPLandroid/os/StrictMode;->allowThreadDiskWrites()Landroid/os/StrictMode$ThreadPolicy; @@ -13322,13 +12814,9 @@ HSPLandroid/os/SystemProperties;->getLong(Ljava/lang/String;J)J HSPLandroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V -HSPLandroid/os/SystemVibrator;->getInfo()Landroid/os/VibratorInfo; HSPLandroid/os/SystemVibrator;->hasVibrator()Z HSPLandroid/os/SystemVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Ljava/lang/String;Landroid/os/VibrationAttributes;)V -HSPLandroid/os/SystemVibratorManager$SingleVibrator;-><init>(Landroid/os/SystemVibratorManager;Landroid/os/VibratorInfo;)V -HSPLandroid/os/SystemVibratorManager$SingleVibrator;->getInfo()Landroid/os/VibratorInfo; HSPLandroid/os/SystemVibratorManager;-><init>(Landroid/content/Context;)V -HSPLandroid/os/SystemVibratorManager;->getVibrator(I)Landroid/os/Vibrator; HSPLandroid/os/SystemVibratorManager;->getVibratorIds()[I HSPLandroid/os/SystemVibratorManager;->vibrate(ILjava/lang/String;Landroid/os/CombinedVibration;Ljava/lang/String;Landroid/os/VibrationAttributes;)V HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V @@ -13356,7 +12844,6 @@ HSPLandroid/os/Trace;->beginAsyncSection(Ljava/lang/String;I)V HSPLandroid/os/Trace;->beginSection(Ljava/lang/String;)V HSPLandroid/os/Trace;->endAsyncSection(Ljava/lang/String;I)V HSPLandroid/os/Trace;->endSection()V -HSPLandroid/os/Trace;->instantForTrack(JLjava/lang/String;Ljava/lang/String;)V HSPLandroid/os/Trace;->isEnabled()Z HSPLandroid/os/Trace;->isTagEnabled(J)Z HSPLandroid/os/Trace;->setAppTracingAllowed(Z)V @@ -13418,11 +12905,9 @@ HSPLandroid/os/UserManager;->getEnabledProfileIds(I)[I HSPLandroid/os/UserManager;->getEnabledProfiles(I)Ljava/util/List; HSPLandroid/os/UserManager;->getMaxSupportedUsers()I HSPLandroid/os/UserManager;->getPrimaryUser()Landroid/content/pm/UserInfo; -HSPLandroid/os/UserManager;->getProcessUserId()I HSPLandroid/os/UserManager;->getProfileIds(IZ)[I HSPLandroid/os/UserManager;->getProfileIdsWithDisabled(I)[I HSPLandroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo; -HSPLandroid/os/UserManager;->getProfileParent(Landroid/os/UserHandle;)Landroid/os/UserHandle; HSPLandroid/os/UserManager;->getProfileType(I)Ljava/lang/String; HSPLandroid/os/UserManager;->getProfiles(I)Ljava/util/List; HSPLandroid/os/UserManager;->getProfiles(Z)Ljava/util/List; @@ -13433,7 +12918,6 @@ HSPLandroid/os/UserManager;->getUserForSerialNumber(J)Landroid/os/UserHandle; HSPLandroid/os/UserManager;->getUserHandle()I HSPLandroid/os/UserManager;->getUserHandle(I)I HSPLandroid/os/UserManager;->getUserHandles(Z)Ljava/util/List; -HSPLandroid/os/UserManager;->getUserIconBadgeResId(I)I HSPLandroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo; HSPLandroid/os/UserManager;->getUserProfiles()Ljava/util/List; HSPLandroid/os/UserManager;->getUserRestrictionSources(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List; @@ -13448,7 +12932,6 @@ HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;)Z HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;I)Z HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->isCredentialSharableWithParent()Z HSPLandroid/os/UserManager;->isDemoUser()Z HSPLandroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z HSPLandroid/os/UserManager;->isHeadlessSystemUserMode()Z @@ -13472,28 +12955,18 @@ HSPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z HSPLandroid/os/UserManager;->supportsMultipleUsers()Z HSPLandroid/os/VibrationAttributes$Builder;-><init>()V HSPLandroid/os/VibrationAttributes$Builder;->build()Landroid/os/VibrationAttributes; -HSPLandroid/os/VibrationAttributes$Builder;->setUsage(I)Landroid/os/VibrationAttributes$Builder; HSPLandroid/os/VibrationAttributes$Builder;->setUsage(Landroid/media/AudioAttributes;)V HSPLandroid/os/VibrationAttributes;-><init>(III)V HSPLandroid/os/VibrationAttributes;-><init>(IIILandroid/os/VibrationAttributes-IA;)V -HSPLandroid/os/VibrationAttributes;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/VibrationEffect$Composed;-><init>(Ljava/util/List;I)V HSPLandroid/os/VibrationEffect$Composed;->validate()V -HSPLandroid/os/VibrationEffect$Composed;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/VibrationEffect;-><init>()V HSPLandroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect; -HSPLandroid/os/VibrationEffect;->createPredefined(I)Landroid/os/VibrationEffect; HSPLandroid/os/VibrationEffect;->createWaveform([JI)Landroid/os/VibrationEffect; HSPLandroid/os/VibrationEffect;->createWaveform([J[II)Landroid/os/VibrationEffect; HSPLandroid/os/VibrationEffect;->get(IZ)Landroid/os/VibrationEffect; -HSPLandroid/os/Vibrator;-><init>()V HSPLandroid/os/Vibrator;-><init>(Landroid/content/Context;)V HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)V -HSPLandroid/os/VibratorInfo$FrequencyProfile;-><init>(FFF[F)V -HSPLandroid/os/VibratorInfo;-><init>(IJLandroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;Landroid/util/SparseIntArray;IIIIFLandroid/os/VibratorInfo$FrequencyProfile;)V -HSPLandroid/os/VibratorInfo;-><init>(ILandroid/os/VibratorInfo;)V -HSPLandroid/os/VibratorInfo;->hasCapability(J)Z HSPLandroid/os/VibratorManager;-><init>(Landroid/content/Context;)V HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource; HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -13609,11 +13082,6 @@ HSPLandroid/os/strictmode/Violation;->initCause(Ljava/lang/Throwable;)Ljava/lang HSPLandroid/os/vibrator/PrebakedSegment;->getDuration()J HSPLandroid/os/vibrator/PrebakedSegment;->isValidEffectStrength(I)Z HSPLandroid/os/vibrator/PrebakedSegment;->validate()V -HSPLandroid/os/vibrator/PrimitiveSegment$1;-><init>()V -HSPLandroid/os/vibrator/PrimitiveSegment;-><clinit>()V -HSPLandroid/os/vibrator/PrimitiveSegment;-><init>(IFI)V -HSPLandroid/os/vibrator/PrimitiveSegment;->getDuration()J -HSPLandroid/os/vibrator/PrimitiveSegment;->validate()V HSPLandroid/os/vibrator/StepSegment;->getDuration()J HSPLandroid/os/vibrator/StepSegment;->validate()V HSPLandroid/os/vibrator/VibrationEffectSegment;-><init>()V @@ -13691,12 +13159,10 @@ HSPLandroid/provider/DeviceConfig$Properties;-><init>(Ljava/lang/String;Ljava/ut HSPLandroid/provider/DeviceConfig$Properties;->getBoolean(Ljava/lang/String;Z)Z HSPLandroid/provider/DeviceConfig$Properties;->getInt(Ljava/lang/String;I)I HSPLandroid/provider/DeviceConfig$Properties;->getKeyset()Ljava/util/Set; -HSPLandroid/provider/DeviceConfig$Properties;->getLong(Ljava/lang/String;J)J HSPLandroid/provider/DeviceConfig$Properties;->getNamespace()Ljava/lang/String; HSPLandroid/provider/DeviceConfig$Properties;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/provider/DeviceConfig;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V HSPLandroid/provider/DeviceConfig;->createNamespaceUri(Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/DeviceConfig;->decrementNamespace(Ljava/lang/String;)V HSPLandroid/provider/DeviceConfig;->enforceReadPermission(Landroid/content/Context;Ljava/lang/String;)V HSPLandroid/provider/DeviceConfig;->getBoolean(Ljava/lang/String;Ljava/lang/String;Z)Z HSPLandroid/provider/DeviceConfig;->getFloat(Ljava/lang/String;Ljava/lang/String;F)F @@ -13708,7 +13174,6 @@ HSPLandroid/provider/DeviceConfig;->getString(Ljava/lang/String;Ljava/lang/Strin HSPLandroid/provider/DeviceConfig;->handleChange(Landroid/net/Uri;)V HSPLandroid/provider/DeviceConfig;->incrementNamespace(Ljava/lang/String;)V HSPLandroid/provider/DeviceConfig;->lambda$handleChange$0(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;Landroid/provider/DeviceConfig$Properties;)V -HSPLandroid/provider/DeviceConfig;->removeOnPropertiesChangedListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V HSPLandroid/provider/FontRequest;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V HSPLandroid/provider/FontsContract$1;->run()V HSPLandroid/provider/FontsContract$FontFamilyResult;->getFonts()[Landroid/provider/FontsContract$FontInfo; @@ -13777,7 +13242,6 @@ HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/Content HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z HSPLandroid/provider/Settings$SettingNotFoundException;-><init>(Ljava/lang/String;)V HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F -HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F+]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)F HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I @@ -13790,7 +13254,6 @@ HSPLandroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;L HSPLandroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;IZ)Z -HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z HSPLandroid/provider/Settings;->-$$Nest$smparseIntSetting(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/provider/Settings;->-$$Nest$smparseIntSettingWithDefault(Ljava/lang/String;I)I HSPLandroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z @@ -13811,8 +13274,6 @@ HSPLandroid/security/KeyChain$KeyChainConnection;->getService()Landroid/security HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection; HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection; HSPLandroid/security/KeyChain;->ensureNotOnMainThread(Landroid/content/Context;)V -HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda1;-><init>(I)V -HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda1;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda3;-><init>(Landroid/system/keystore2/KeyDescriptor;)V HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda3;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda4;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; @@ -13820,11 +13281,9 @@ HSPLandroid/security/KeyStore2;-><init>()V HSPLandroid/security/KeyStore2;->getInstance()Landroid/security/KeyStore2; HSPLandroid/security/KeyStore2;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse; HSPLandroid/security/KeyStore2;->getKeyStoreException(ILjava/lang/String;)Landroid/security/KeyStoreException; -HSPLandroid/security/KeyStore2;->getSecurityLevel(I)Landroid/security/KeyStoreSecurityLevel; HSPLandroid/security/KeyStore2;->getService(Z)Landroid/system/keystore2/IKeystoreService; HSPLandroid/security/KeyStore2;->handleRemoteExceptionWithRetry(Landroid/security/KeyStore2$CheckedRemoteRequest;)Ljava/lang/Object; HSPLandroid/security/KeyStore2;->lambda$getKeyEntry$4(Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/IKeystoreService;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/security/KeyStore2;->lambda$getSecurityLevel$5(ILandroid/system/keystore2/IKeystoreService;)Landroid/security/KeyStoreSecurityLevel; HSPLandroid/security/KeyStore;->getInstance()Landroid/security/KeyStore; HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;)V HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;Ljava/lang/String;)V @@ -13847,11 +13306,8 @@ HSPLandroid/security/KeyStoreOperation;->lambda$abort$3$android-security-KeyStor HSPLandroid/security/KeyStoreOperation;->lambda$finish$2$android-security-KeyStoreOperation([B[B)[B HSPLandroid/security/KeyStoreOperation;->lambda$update$1$android-security-KeyStoreOperation([B)[B HSPLandroid/security/KeyStoreOperation;->update([B)[B -HSPLandroid/security/KeyStoreSecurityLevel$$ExternalSyntheticLambda1;-><init>(Landroid/security/KeyStoreSecurityLevel;Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/KeyDescriptor;Ljava/util/Collection;I[B)V -HSPLandroid/security/KeyStoreSecurityLevel$$ExternalSyntheticLambda1;->execute()Ljava/lang/Object; HSPLandroid/security/KeyStoreSecurityLevel;-><init>(Landroid/system/keystore2/IKeystoreSecurityLevel;)V HSPLandroid/security/KeyStoreSecurityLevel;->createOperation(Landroid/system/keystore2/KeyDescriptor;Ljava/util/Collection;)Landroid/security/KeyStoreOperation; -HSPLandroid/security/KeyStoreSecurityLevel;->handleExceptions(Landroid/security/CheckedRemoteRequest;)Ljava/lang/Object; HSPLandroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy; HSPLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/ExportResult; @@ -13976,8 +13432,6 @@ HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSignatur HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;-><init>()V HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->abortOperation()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer; -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->createMainDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer; HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII)[B HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII[BI)I HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V @@ -13992,7 +13446,6 @@ HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->resetWhilePreservi HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->setKey(Landroid/security/keystore2/AndroidKeyStoreKey;)V HSPLandroid/security/keystore2/AndroidKeyStoreKey;-><init>(Landroid/system/keystore2/KeyDescriptor;J[Landroid/system/keystore2/Authorization;Ljava/lang/String;Landroid/security/KeyStoreSecurityLevel;)V HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getAlgorithm()Ljava/lang/String; -HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getAuthorizations()[Landroid/system/keystore2/Authorization; HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getFormat()Ljava/lang/String; HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getKeyIdDescriptor()Landroid/system/keystore2/KeyDescriptor; HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getSecurityLevel()Landroid/security/KeyStoreSecurityLevel; @@ -14013,8 +13466,6 @@ HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getKeyMetadata(Ljava/lang/St HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getTargetDomain()I HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->isKeyEntry(Ljava/lang/String;)Z HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->makeKeyDescriptor(Ljava/lang/String;)Landroid/system/keystore2/KeyDescriptor; -HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->addUserAuthArgs(Ljava/util/List;Landroid/security/keystore/UserAuthArgs;)V -HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeBool(I)Landroid/hardware/security/keymint/KeyParameter; HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeBytes(I[B)Landroid/hardware/security/keymint/KeyParameter; HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeEnum(II)Landroid/hardware/security/keymint/KeyParameter; HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeInt(II)Landroid/hardware/security/keymint/KeyParameter; @@ -14132,7 +13583,6 @@ HSPLandroid/security/net/config/XmlConfigSource;->parseDomain(Landroid/content/r HSPLandroid/security/net/config/XmlConfigSource;->parseNetworkSecurityConfig(Landroid/content/res/XmlResourceParser;)V HSPLandroid/security/net/config/XmlConfigSource;->parseTrustAnchors(Landroid/content/res/XmlResourceParser;Z)Ljava/util/Collection; HSPLandroid/service/appprediction/IPredictionService$Stub;-><init>()V -HSPLandroid/service/contentcapture/ActivityEvent;-><init>(Landroid/content/ComponentName;I)V HSPLandroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager; HSPLandroid/service/media/IMediaBrowserService$Stub;-><init>()V HSPLandroid/service/media/IMediaBrowserService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z @@ -14197,7 +13647,6 @@ HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->crea 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/lang/Class;Ljava/lang/Class;]Ljava/util/ArrayList;Ljava/util/ArrayList;]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;->-$$Nest$fgetmHandler(Landroid/service/notification/NotificationListenerService;)Landroid/os/Handler; HSPLandroid/service/notification/NotificationListenerService;-><init>()V HSPLandroid/service/notification/NotificationListenerService;->applyUpdateLocked(Landroid/service/notification/NotificationRankingUpdate;)V HSPLandroid/service/notification/NotificationListenerService;->attachBaseContext(Landroid/content/Context;)V @@ -14274,20 +13723,9 @@ HSPLandroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landro HSPLandroid/service/vr/IVrStateCallbacks$Stub;-><init>()V HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;-><init>()V HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/speech/tts/ITextToSpeechManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/speech/tts/ITextToSpeechManager$Stub$Proxy;->createSession(Ljava/lang/String;Landroid/speech/tts/ITextToSpeechSessionCallback;)V -HSPLandroid/speech/tts/ITextToSpeechManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/tts/ITextToSpeechManager; HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getClientDefaultLanguage()[Ljava/lang/String; HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getDefaultVoiceNameFor(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getVoices()Ljava/util/List; -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->isLanguageAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->loadVoice(Landroid/os/IBinder;Ljava/lang/String;)I HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V -HSPLandroid/speech/tts/ITextToSpeechSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/speech/tts/ITextToSpeechSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/tts/ITextToSpeechSession; -HSPLandroid/speech/tts/ITextToSpeechSessionCallback$Stub;-><init>()V -HSPLandroid/speech/tts/ITextToSpeechSessionCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/speech/tts/ITextToSpeechSessionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/speech/tts/TextToSpeech$Connection$1;-><init>(Landroid/speech/tts/TextToSpeech$Connection;)V HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Integer; @@ -14295,25 +13733,15 @@ HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPost HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Object;)V HSPLandroid/speech/tts/TextToSpeech$Connection;-><init>(Landroid/speech/tts/TextToSpeech;)V HSPLandroid/speech/tts/TextToSpeech$Connection;->getCallerIdentity()Landroid/os/IBinder; -HSPLandroid/speech/tts/TextToSpeech$Connection;->isEstablished()Z HSPLandroid/speech/tts/TextToSpeech$Connection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/speech/tts/TextToSpeech$Connection;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech$EngineInfo;-><init>()V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection$1;-><init>(Landroid/speech/tts/TextToSpeech$SystemConnection;)V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection$1;->onConnected(Landroid/speech/tts/ITextToSpeechSession;Landroid/os/IBinder;)V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection;->-$$Nest$fputmSession(Landroid/speech/tts/TextToSpeech$SystemConnection;Landroid/speech/tts/ITextToSpeechSession;)V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection;->connect(Ljava/lang/String;)Z -HSPLandroid/speech/tts/TextToSpeech;->-$$Nest$fgetmStartLock(Landroid/speech/tts/TextToSpeech;)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;)V HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;)V HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;Z)V -HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;ZZ)V HSPLandroid/speech/tts/TextToSpeech;->connectToEngine(Ljava/lang/String;)Z HSPLandroid/speech/tts/TextToSpeech;->dispatchOnInit(I)V -HSPLandroid/speech/tts/TextToSpeech;->getCallerIdentity()Landroid/os/IBinder; HSPLandroid/speech/tts/TextToSpeech;->getDefaultEngine()Ljava/lang/String; HSPLandroid/speech/tts/TextToSpeech;->initTts()I -HSPLandroid/speech/tts/TextToSpeech;->lambda$dispatchOnInit$0$android-speech-tts-TextToSpeech(I)V HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object; HSPLandroid/speech/tts/TtsEngines;-><init>(Landroid/content/Context;)V @@ -14322,14 +13750,6 @@ HSPLandroid/speech/tts/TtsEngines;->getEngineInfo(Landroid/content/pm/ResolveInf HSPLandroid/speech/tts/TtsEngines;->getEngines()Ljava/util/List; HSPLandroid/speech/tts/TtsEngines;->isEngineInstalled(Ljava/lang/String;)Z HSPLandroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceInfo;)Z -HSPLandroid/speech/tts/Voice$1;-><init>()V -HSPLandroid/speech/tts/Voice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/speech/tts/Voice; -HSPLandroid/speech/tts/Voice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/speech/tts/Voice;-><clinit>()V -HSPLandroid/speech/tts/Voice;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/speech/tts/Voice;-><init>(Landroid/os/Parcel;Landroid/speech/tts/Voice-IA;)V -HSPLandroid/speech/tts/Voice;->getLocale()Ljava/util/Locale; -HSPLandroid/speech/tts/Voice;->getName()Ljava/lang/String; HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl()Ljava/util/Optional; HSPLandroid/sysprop/DisplayProperties;->debug_layout()Ljava/util/Optional; HSPLandroid/sysprop/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean; @@ -14397,7 +13817,6 @@ HSPLandroid/system/keystore2/IKeystoreSecurityLevel;-><clinit>()V HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->getSecurityLevel(I)Landroid/system/keystore2/IKeystoreSecurityLevel; HSPLandroid/system/keystore2/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreService; HSPLandroid/system/keystore2/IKeystoreService;-><clinit>()V HSPLandroid/system/keystore2/KeyDescriptor$1;-><init>()V @@ -14428,7 +13847,6 @@ HSPLandroid/system/keystore2/KeyParameters;->readFromParcel(Landroid/os/Parcel;) HSPLandroid/system/keystore2/OperationChallenge$1;-><init>()V HSPLandroid/system/keystore2/OperationChallenge;-><clinit>()V HSPLandroid/telecom/AudioState;-><init>(Landroid/telecom/CallAudioState;)V -HSPLandroid/telecom/Call$Callback;-><init>()V HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/CallAudioState; HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telecom/CallAudioState;-><init>(ZIILandroid/bluetooth/BluetoothDevice;Ljava/util/Collection;)V @@ -14441,9 +13859,6 @@ HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Lan HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telecom/DisconnectCause;->getCode()I HSPLandroid/telecom/DisconnectCause;->getReason()Ljava/lang/String; -HSPLandroid/telecom/InCallService$1;-><init>(Landroid/telecom/InCallService;Landroid/os/Looper;)V -HSPLandroid/telecom/InCallService$2;-><init>(Landroid/telecom/InCallService;)V -HSPLandroid/telecom/InCallService;-><init>()V HSPLandroid/telecom/Log;->buildMessage(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; HSPLandroid/telecom/Log;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V HSPLandroid/telecom/Log;->createSubsession()Landroid/telecom/Logging/Session; @@ -14489,7 +13904,6 @@ HSPLandroid/telecom/Logging/SessionManager;->endParentSessions(Landroid/telecom/ HSPLandroid/telecom/Logging/SessionManager;->endSession()V HSPLandroid/telecom/Logging/SessionManager;->getSessionId()Ljava/lang/String; HSPLandroid/telecom/Logging/SessionManager;->resetStaleSessionTimer()V -HSPLandroid/telecom/Phone$Listener;-><init>()V HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccount; HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telecom/PhoneAccount$Builder;-><init>(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)V @@ -14573,17 +13987,9 @@ HSPLandroid/telephony/CellIdentityLte;-><init>(Landroid/os/Parcel;)V HSPLandroid/telephony/CellIdentityLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte; HSPLandroid/telephony/CellIdentityLte;->equals(Ljava/lang/Object;)Z HSPLandroid/telephony/CellIdentityLte;->getCi()I -HSPLandroid/telephony/CellIdentityLte;->getPci()I -HSPLandroid/telephony/CellIdentityLte;->getTac()I HSPLandroid/telephony/CellIdentityLte;->toString()Ljava/lang/String; HSPLandroid/telephony/CellIdentityLte;->updateGlobalCellId()V HSPLandroid/telephony/CellIdentityLte;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellIdentityNr$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityNr; -HSPLandroid/telephony/CellIdentityNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellIdentityNr;-><init>(Landroid/os/Parcel;)V+]Landroid/telephony/CellIdentityNr;Landroid/telephony/CellIdentityNr;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/CellIdentityNr;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityNr; -HSPLandroid/telephony/CellIdentityNr;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/telephony/CellIdentityNr;->updateGlobalCellId()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/telephony/CellIdentityNr;Landroid/telephony/CellIdentityNr; HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma; HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/CellIdentityWcdma;-><init>(Landroid/os/Parcel;)V @@ -14620,9 +14026,6 @@ HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parc HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;)V HSPLandroid/telephony/CellSignalStrengthNr;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthNr;->getDbm()I -HSPLandroid/telephony/CellSignalStrengthNr;->getLevel()I -HSPLandroid/telephony/CellSignalStrengthNr;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/telephony/CellSignalStrengthNr;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthTdscdma; HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -14693,14 +14096,8 @@ HSPLandroid/telephony/NetworkRegistrationInfo;->registrationStateToString(I)Ljav HSPLandroid/telephony/NetworkRegistrationInfo;->serviceTypeToString(I)Ljava/lang/String; HSPLandroid/telephony/NetworkRegistrationInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/NetworkRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/NrVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NrVopsSupportInfo;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/NrVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/NrVopsSupportInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/NrVopsSupportInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/NrVopsSupportInfo-IA;)V -HSPLandroid/telephony/NrVopsSupportInfo;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/telephony/PhoneNumberUtils;->convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/telephony/PhoneNumberUtils;->formatNumber(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; HSPLandroid/telephony/PhoneNumberUtils;->formatNumberInternal(Ljava/lang/String;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String; HSPLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/telephony/PhoneNumberUtils;->getMinMatch()I @@ -14718,7 +14115,6 @@ HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSynthe HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda27;->run()V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda28;-><init>(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda28;->run()V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda34;->runOrThrow()V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda42;->run()V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda47;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda47;->runOrThrow()V @@ -14728,7 +14124,6 @@ HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActi HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataActivity$16(Landroid/telephony/PhoneStateListener;I)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataConnectionStateChanged$14(Landroid/telephony/PhoneStateListener;II)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onLegacyCallStateChanged$10(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onLegacyCallStateChanged$11$android-telephony-PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$0(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$1$android-telephony-PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$18(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V @@ -14745,20 +14140,7 @@ HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Ljava/util/concurrent/Executor;)V HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/util/concurrent/Executor;)V HSPLandroid/telephony/PhoneStateListener;->onDataConnectionStateChanged(I)V -HSPLandroid/telephony/PhysicalChannelConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/PhysicalChannelConfig; -HSPLandroid/telephony/PhysicalChannelConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/PhysicalChannelConfig;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/PhysicalChannelConfig;-><init>(Landroid/os/Parcel;Landroid/telephony/PhysicalChannelConfig-IA;)V -HSPLandroid/telephony/PhysicalChannelConfig;->getCellBandwidthDownlinkKhz()I -HSPLandroid/telephony/PhysicalChannelConfig;->getConnectionStatus()I -HSPLandroid/telephony/PhysicalChannelConfig;->getNetworkType()I -HSPLandroid/telephony/PreciseDataConnectionState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/PreciseDataConnectionState; -HSPLandroid/telephony/PreciseDataConnectionState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/PreciseDataConnectionState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/PreciseDataConnectionState;-><init>(Landroid/os/Parcel;Landroid/telephony/PreciseDataConnectionState-IA;)V -HSPLandroid/telephony/PreciseDataConnectionState;->toString()Ljava/lang/String; HSPLandroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState; HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/ServiceState;-><init>()V @@ -14876,32 +14258,7 @@ HSPLandroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z HSPLandroid/telephony/SubscriptionManager;->lambda$getActiveSubscriptionInfoList$1$android-telephony-SubscriptionManager(Landroid/telephony/SubscriptionInfo;)Z HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Landroid/telephony/SubscriptionPlan; HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda25;-><init>(Landroid/telephony/TelephonyCallback$ActiveDataSubscriptionIdListener;I)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda25;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda31;-><init>(Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda31;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda34;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda34;->runOrThrow()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda35;-><init>(Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda35;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda38;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda38;->runOrThrow()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda51;-><init>(Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda51;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda59;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda59;->runOrThrow()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda61;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$ActiveDataSubscriptionIdListener;I)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda61;->runOrThrow()V HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;-><init>(Landroid/telephony/TelephonyCallback;Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$34(Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$35$android-telephony-TelephonyCallback$IPhoneStateListenerStub(Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onServiceStateChanged$0(Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onServiceStateChanged$1$android-telephony-TelephonyCallback$IPhoneStateListenerStub(Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$16(Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$17$android-telephony-TelephonyCallback$IPhoneStateListenerStub(Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->onDisplayInfoChanged(Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->onServiceStateChanged(Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V HSPLandroid/telephony/TelephonyCallback;-><init>()V HSPLandroid/telephony/TelephonyCallback;->init(Ljava/util/concurrent/Executor;)V HSPLandroid/telephony/TelephonyDisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/TelephonyDisplayInfo; @@ -14921,24 +14278,15 @@ HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrap HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$2(Landroid/content/Context;)Landroid/telephony/CarrierConfigManager; HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$3(Landroid/content/Context;)Landroid/telephony/euicc/EuiccManager; HSPLandroid/telephony/TelephonyFrameworkInitializer;->setTelephonyServiceManager(Landroid/os/TelephonyServiceManager;)V -HSPLandroid/telephony/TelephonyManager$$ExternalSyntheticLambda11;-><init>(J)V -HSPLandroid/telephony/TelephonyManager$$ExternalSyntheticLambda11;->test(I)Z -HSPLandroid/telephony/TelephonyManager$$ExternalSyntheticLambda12;-><init>()V HSPLandroid/telephony/TelephonyManager$1;-><init>(Landroid/telephony/TelephonyManager;ILjava/lang/String;)V -HSPLandroid/telephony/TelephonyManager$1;->recompute(Landroid/telecom/PhoneAccountHandle;)Ljava/lang/Integer; -HSPLandroid/telephony/TelephonyManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/TelephonyManager;->-$$Nest$fgetmContext(Landroid/telephony/TelephonyManager;)Landroid/content/Context; -HSPLandroid/telephony/TelephonyManager;->-$$Nest$mgetITelephony(Landroid/telephony/TelephonyManager;)Lcom/android/internal/telephony/ITelephony; HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;I)V HSPLandroid/telephony/TelephonyManager;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I -HSPLandroid/telephony/TelephonyManager;->convertNetworkTypeBitmaskToString(J)Ljava/lang/String; HSPLandroid/telephony/TelephonyManager;->createForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/TelephonyManager; HSPLandroid/telephony/TelephonyManager;->createForSubscriptionId(I)Landroid/telephony/TelephonyManager; HSPLandroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager; HSPLandroid/telephony/TelephonyManager;->getActiveModemCount()I HSPLandroid/telephony/TelephonyManager;->getAttributionTag()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getBitMaskForNetworkType(I)J HSPLandroid/telephony/TelephonyManager;->getCallState()I HSPLandroid/telephony/TelephonyManager;->getCardIdForDefaultEuicc()I HSPLandroid/telephony/TelephonyManager;->getCarrierPrivilegeStatus(I)I @@ -15020,12 +14368,10 @@ HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming()Z HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z HSPLandroid/telephony/TelephonyManager;->isSmsCapable()Z HSPLandroid/telephony/TelephonyManager;->isVoiceCapable()Z -HSPLandroid/telephony/TelephonyManager;->lambda$convertNetworkTypeBitmaskToString$11(JI)Z HSPLandroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V HSPLandroid/telephony/TelephonyManager;->mergeAttributionAndRenouncedPermissions(Landroid/content/Context;Landroid/content/Context;)Landroid/content/Context; HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(ILjava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V -HSPLandroid/telephony/TelephonyManager;->unregisterTelephonyCallback(Landroid/telephony/TelephonyCallback;)V HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;-><init>()V HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1;-><init>()V @@ -15043,7 +14389,6 @@ HSPLandroid/telephony/TelephonyRegistryManager;->lambda$listenFromListener$0(Lja HSPLandroid/telephony/TelephonyRegistryManager;->listenFromCallback(ZZILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;[IZ)V HSPLandroid/telephony/TelephonyRegistryManager;->listenFromListener(IZZLjava/lang/String;Ljava/lang/String;Landroid/telephony/PhoneStateListener;IZ)V HSPLandroid/telephony/TelephonyRegistryManager;->registerTelephonyCallback(ZZLjava/util/concurrent/Executor;ILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;Z)V -HSPLandroid/telephony/TelephonyRegistryManager;->unregisterTelephonyCallback(ILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;Z)V HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/UiccAccessRule; HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Landroid/telephony/UiccAccessRule; @@ -15054,9 +14399,6 @@ HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(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 -HSPLandroid/telephony/VopsSupportInfo;-><init>()V -HSPLandroid/telephony/data/ApnSetting$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting; -HSPLandroid/telephony/data/ApnSetting$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/data/ApnSetting$Builder;-><init>()V HSPLandroid/telephony/data/ApnSetting$Builder;->buildWithoutCheck()Landroid/telephony/data/ApnSetting; HSPLandroid/telephony/data/ApnSetting$Builder;->setAlwaysOn(Z)Landroid/telephony/data/ApnSetting$Builder; @@ -15090,7 +14432,6 @@ HSPLandroid/telephony/data/ApnSetting$Builder;->setRoamingProtocol(I)Landroid/te HSPLandroid/telephony/data/ApnSetting$Builder;->setSkip464Xlat(I)Landroid/telephony/data/ApnSetting$Builder; HSPLandroid/telephony/data/ApnSetting$Builder;->setUser(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; HSPLandroid/telephony/data/ApnSetting$Builder;->setWaitTime(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting;->-$$Nest$smreadFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting; HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;)V HSPLandroid/telephony/data/ApnSetting;->UriToString(Landroid/net/Uri;)Ljava/lang/String; HSPLandroid/telephony/data/ApnSetting;->equals(Ljava/lang/Object;)Z @@ -15098,11 +14439,9 @@ HSPLandroid/telephony/data/ApnSetting;->getApnName()Ljava/lang/String; HSPLandroid/telephony/data/ApnSetting;->getApnTypeBitmask()I HSPLandroid/telephony/data/ApnSetting;->getApnTypesStringFromBitmask(I)Ljava/lang/String; HSPLandroid/telephony/data/ApnSetting;->portToString(I)Ljava/lang/String; -HSPLandroid/telephony/data/ApnSetting;->readFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting; HSPLandroid/telephony/data/ApnSetting;->toString()Ljava/lang/String; HSPLandroid/telephony/euicc/EuiccManager;->getIEuiccController()Lcom/android/internal/telephony/euicc/IEuiccController; HSPLandroid/telephony/euicc/EuiccManager;->isEnabled()Z -HSPLandroid/telephony/ims/ImsMmTelManager;->$r8$lambda$8hRjnVioxU_y_77mclIjv6ZujmI()Lcom/android/internal/telephony/ITelephony; HSPLandroid/telephony/ims/ImsMmTelManager;->createForSubscriptionId(I)Landroid/telephony/ims/ImsMmTelManager; HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephony()Lcom/android/internal/telephony/ITelephony; HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephonyInterface()Lcom/android/internal/telephony/ITelephony; @@ -15252,7 +14591,6 @@ HSPLandroid/text/Hyphenator;->init()V HSPLandroid/text/InputFilter$LengthFilter;-><init>(I)V HSPLandroid/text/InputFilter$LengthFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; HSPLandroid/text/InputFilter$LengthFilter;->getMax()I -HSPLandroid/text/Layout$$ExternalSyntheticLambda0;->accept(FFFFI)V HSPLandroid/text/Layout$Alignment;->values()[Landroid/text/Layout$Alignment; HSPLandroid/text/Layout$Directions;->getRunCount()I HSPLandroid/text/Layout$Directions;->getRunLength(I)I @@ -15324,7 +14662,6 @@ 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;->lambda$getSelectionPath$0(Landroid/graphics/Path;FFFFI)V+]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/text/Layout;->measurePara(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)F HSPLandroid/text/Layout;->primaryIsTrailingPrevious(I)Z HSPLandroid/text/Layout;->replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V @@ -15431,7 +14768,6 @@ HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;Z)[Ljava/l HSPLandroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I HSPLandroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z -HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/Editable; HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder; HSPLandroid/text/SpannableStringBuilder;->invalidateIndex(I)V HSPLandroid/text/SpannableStringBuilder;->isInvalidParagraph(II)Z @@ -15610,8 +14946,6 @@ HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/Object; HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/String; HSPLandroid/text/TextUtils$SimpleStringSplitter;->setString(Ljava/lang/String;)V HSPLandroid/text/TextUtils$StringWithRemovedChars;->toString()Ljava/lang/String; -HSPLandroid/text/TextUtils$TruncateAt;->valueOf(Ljava/lang/String;)Landroid/text/TextUtils$TruncateAt; -HSPLandroid/text/TextUtils$TruncateAt;->values()[Landroid/text/TextUtils$TruncateAt; HSPLandroid/text/TextUtils;->concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V HSPLandroid/text/TextUtils;->couldAffectRtl(C)Z @@ -15696,7 +15030,6 @@ HSPLandroid/text/format/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar; 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/Formatter;->localeFromContext(Landroid/content/Context;)Ljava/util/Locale; 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; @@ -15720,7 +15053,6 @@ HSPLandroid/text/method/ArrowKeyMovementMethod;->onTakeFocus(Landroid/widget/Tex HSPLandroid/text/method/ArrowKeyMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z HSPLandroid/text/method/BaseKeyListener;-><init>()V HSPLandroid/text/method/BaseKeyListener;->makeTextContentType(Landroid/text/method/TextKeyListener$Capitalize;Z)I -HSPLandroid/text/method/BaseKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z HSPLandroid/text/method/BaseMovementMethod;-><init>()V HSPLandroid/text/method/BaseMovementMethod;->getMovementMetaState(Landroid/text/Spannable;Landroid/view/KeyEvent;)I HSPLandroid/text/method/BaseMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z @@ -15747,7 +15079,6 @@ HSPLandroid/text/method/ReplacementTransformationMethod;-><init>()V HSPLandroid/text/method/ReplacementTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence; HSPLandroid/text/method/ReplacementTransformationMethod;->onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V HSPLandroid/text/method/ScrollingMovementMethod;-><init>()V -HSPLandroid/text/method/ScrollingMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z HSPLandroid/text/method/SingleLineTransformationMethod;-><init>()V HSPLandroid/text/method/SingleLineTransformationMethod;->getInstance()Landroid/text/method/SingleLineTransformationMethod; HSPLandroid/text/method/SingleLineTransformationMethod;->getOriginal()[C @@ -15833,12 +15164,7 @@ HSPLandroid/text/util/Linkify;->addLinks(Landroid/text/Spannable;ILandroid/conte HSPLandroid/text/util/Linkify;->containsUnsupportedCharacters(Ljava/lang/String;)Z HSPLandroid/text/util/Linkify;->gatherLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Ljava/util/regex/Pattern;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V HSPLandroid/text/util/Linkify;->pruneOverlaps(Ljava/util/ArrayList;)V -HSPLandroid/transition/ChangeBounds;-><init>()V HSPLandroid/transition/ChangeBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/ChangeBounds;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/ChangeBounds;->captureStartValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/ChangeBounds;->captureValues(Landroid/transition/TransitionValues;)V+]Landroid/view/View;missing_types]Ljava/util/Map;Landroid/util/ArrayMap; -HSPLandroid/transition/ChangeBounds;->getTransitionProperties()[Ljava/lang/String; HSPLandroid/transition/ChangeBounds;->setResizeClip(Z)V HSPLandroid/transition/ChangeClipBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/ChangeImageTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V @@ -15855,7 +15181,6 @@ HSPLandroid/transition/Scene;->enter()V HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/transition/Transition$EpicenterCallback;-><init>()V HSPLandroid/transition/Transition;-><init>()V HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/Transition;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; @@ -15871,13 +15196,10 @@ HSPLandroid/transition/Transition;->clone()Landroid/transition/Transition; HSPLandroid/transition/Transition;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V HSPLandroid/transition/Transition;->end()V HSPLandroid/transition/Transition;->getDuration()J -HSPLandroid/transition/Transition;->getEpicenter()Landroid/graphics/Rect; HSPLandroid/transition/Transition;->getInterpolator()Landroid/animation/TimeInterpolator; HSPLandroid/transition/Transition;->getName()Ljava/lang/String; HSPLandroid/transition/Transition;->getStartDelay()J -HSPLandroid/transition/Transition;->isTransitionRequired(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Z+]Landroid/transition/Transition;Landroid/transition/ChangeBounds; HSPLandroid/transition/Transition;->isValidTarget(Landroid/view/View;)Z -HSPLandroid/transition/Transition;->isValueChanged(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;Ljava/lang/String;)Z+]Ljava/lang/Object;missing_types]Ljava/util/Map;Landroid/util/ArrayMap; HSPLandroid/transition/Transition;->matchIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseArray;Landroid/util/SparseArray;)V HSPLandroid/transition/Transition;->matchInstances(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V HSPLandroid/transition/Transition;->matchItemIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V @@ -15905,11 +15227,9 @@ HSPLandroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ HSPLandroid/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/transition/Transition;)V HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionEnd(Landroid/transition/Transition;)V HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionStart(Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionSet;-><init>()V HSPLandroid/transition/TransitionSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/Transition; HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/TransitionSet; HSPLandroid/transition/TransitionSet;->addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet; HSPLandroid/transition/TransitionSet;->addTransitionInternal(Landroid/transition/Transition;)V @@ -15932,7 +15252,6 @@ HSPLandroid/transition/Visibility$DisappearListener;->onAnimationStart(Landroid/ HSPLandroid/transition/Visibility$DisappearListener;->onTransitionEnd(Landroid/transition/Transition;)V HSPLandroid/transition/Visibility;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/Visibility;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/Visibility;->captureStartValues(Landroid/transition/TransitionValues;)V HSPLandroid/transition/Visibility;->captureValues(Landroid/transition/TransitionValues;)V HSPLandroid/transition/Visibility;->createAnimator(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator; HSPLandroid/transition/Visibility;->getMode()I @@ -15965,7 +15284,6 @@ 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;->forEach(Ljava/util/function/BiConsumer;)V HSPLandroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V HSPLandroid/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections; @@ -16009,7 +15327,6 @@ HSPLandroid/util/ArraySet;->clear()V HSPLandroid/util/ArraySet;->contains(Ljava/lang/Object;)Z HSPLandroid/util/ArraySet;->ensureCapacity(I)V HSPLandroid/util/ArraySet;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/ArraySet;->forEach(Ljava/util/function/Consumer;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/function/Consumer;megamorphic_types HSPLandroid/util/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V HSPLandroid/util/ArraySet;->getCollection()Landroid/util/MapCollections; HSPLandroid/util/ArraySet;->hashCode()I @@ -16051,7 +15368,6 @@ HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String; HSPLandroid/util/CloseGuard;-><init>()V HSPLandroid/util/CloseGuard;->close()V HSPLandroid/util/CloseGuard;->open(Ljava/lang/String;)V -PLandroid/util/CloseGuard;->warnIfOpen()V HSPLandroid/util/ContainerHelpers;->binarySearch([III)I HSPLandroid/util/ContainerHelpers;->binarySearch([JIJ)I HSPLandroid/util/DebugUtils;->constNameWithoutPrefix(Ljava/lang/String;Ljava/lang/reflect/Field;)Ljava/lang/String; @@ -16060,7 +15376,6 @@ HSPLandroid/util/DebugUtils;->getFieldValue(Ljava/lang/reflect/Field;)J HSPLandroid/util/DisplayMetrics;-><init>()V HSPLandroid/util/DisplayMetrics;->setTo(Landroid/util/DisplayMetrics;)V HSPLandroid/util/DisplayMetrics;->setToDefaults()V -HSPLandroid/util/DisplayUtils;->getDisplayUniqueIdConfigIndex(Landroid/content/res/Resources;Ljava/lang/String;)I+]Landroid/content/res/Resources;Landroid/content/res/Resources; HSPLandroid/util/EventLog$Event;-><init>([B)V HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object; HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object; @@ -16156,11 +15471,9 @@ HSPLandroid/util/JsonWriter;->value(Z)Landroid/util/JsonWriter; HSPLandroid/util/KeyValueListParser$IntValue;->getValue()I HSPLandroid/util/KeyValueListParser;-><init>(C)V HSPLandroid/util/KeyValueListParser;->getBoolean(Ljava/lang/String;Z)Z -HSPLandroid/util/KeyValueListParser;->getFloat(Ljava/lang/String;F)F HSPLandroid/util/KeyValueListParser;->getInt(Ljava/lang/String;I)I HSPLandroid/util/KeyValueListParser;->getLong(Ljava/lang/String;J)J HSPLandroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V -HSPLandroid/util/LauncherIcons;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)Landroid/graphics/drawable/Drawable; HSPLandroid/util/LocalLog;-><init>(I)V HSPLandroid/util/LocalLog;-><init>(IZ)V HSPLandroid/util/LocalLog;->append(Ljava/lang/String;)V @@ -16244,7 +15557,6 @@ HSPLandroid/util/MapCollections$EntrySet;->size()I HSPLandroid/util/MapCollections$KeySet;-><init>(Landroid/util/MapCollections;)V HSPLandroid/util/MapCollections$KeySet;->contains(Ljava/lang/Object;)Z HSPLandroid/util/MapCollections$KeySet;->containsAll(Ljava/util/Collection;)Z -HSPLandroid/util/MapCollections$KeySet;->equals(Ljava/lang/Object;)Z HSPLandroid/util/MapCollections$KeySet;->iterator()Ljava/util/Iterator; HSPLandroid/util/MapCollections$KeySet;->size()I HSPLandroid/util/MapCollections$KeySet;->toArray()[Ljava/lang/Object; @@ -16259,7 +15571,6 @@ HSPLandroid/util/MapCollections$ValuesCollection;->iterator()Ljava/util/Iterator HSPLandroid/util/MapCollections$ValuesCollection;->size()I HSPLandroid/util/MapCollections$ValuesCollection;->toArray()[Ljava/lang/Object; HSPLandroid/util/MapCollections;-><init>()V -HSPLandroid/util/MapCollections;->equalsSetHelper(Ljava/util/Set;Ljava/lang/Object;)Z HSPLandroid/util/MapCollections;->getEntrySet()Ljava/util/Set; HSPLandroid/util/MapCollections;->getKeySet()Ljava/util/Set; HSPLandroid/util/MapCollections;->getValues()Ljava/util/Collection; @@ -16285,7 +15596,6 @@ HSPLandroid/util/MemoryIntArray;->size()I HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MergedConfiguration; HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/util/MergedConfiguration;-><init>()V -HSPLandroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V HSPLandroid/util/MergedConfiguration;-><init>(Landroid/os/Parcel;)V HSPLandroid/util/MergedConfiguration;-><init>(Landroid/util/MergedConfiguration;)V HSPLandroid/util/MergedConfiguration;->equals(Ljava/lang/Object;)Z @@ -16338,9 +15648,6 @@ HSPLandroid/util/Range;->intersect(Ljava/lang/Comparable;Ljava/lang/Comparable;) HSPLandroid/util/Rational;-><init>(II)V HSPLandroid/util/Rational;->compareTo(Landroid/util/Rational;)I HSPLandroid/util/Rational;->compareTo(Ljava/lang/Object;)I -HSPLandroid/util/Rational;->floatValue()F -HSPLandroid/util/Rational;->getDenominator()I -HSPLandroid/util/Rational;->getNumerator()I HSPLandroid/util/Singleton;-><init>()V HSPLandroid/util/Singleton;->get()Ljava/lang/Object; HSPLandroid/util/Size;-><init>(II)V @@ -16382,7 +15689,6 @@ HSPLandroid/util/SparseBooleanArray;->append(IZ)V HSPLandroid/util/SparseBooleanArray;->clear()V HSPLandroid/util/SparseBooleanArray;->clone()Landroid/util/SparseBooleanArray; HSPLandroid/util/SparseBooleanArray;->delete(I)V -HSPLandroid/util/SparseBooleanArray;->equals(Ljava/lang/Object;)Z HSPLandroid/util/SparseBooleanArray;->get(I)Z HSPLandroid/util/SparseBooleanArray;->get(IZ)Z HSPLandroid/util/SparseBooleanArray;->indexOfKey(I)I @@ -16475,7 +15781,6 @@ HSPLandroid/util/proto/EncodedBuffer;->getRawFixed32At(I)I HSPLandroid/util/proto/EncodedBuffer;->getRawVarint32Size(I)I HSPLandroid/util/proto/EncodedBuffer;->getReadPos()I HSPLandroid/util/proto/EncodedBuffer;->getReadableSize()I -HPLandroid/util/proto/EncodedBuffer;->getSize()I HSPLandroid/util/proto/EncodedBuffer;->getWritePos()I HSPLandroid/util/proto/EncodedBuffer;->readRawByte()B HSPLandroid/util/proto/EncodedBuffer;->readRawFixed32()I @@ -16517,8 +15822,6 @@ HSPLandroid/util/proto/ProtoOutputStream;->editEncodedSize(I)I HSPLandroid/util/proto/ProtoOutputStream;->end(J)V HSPLandroid/util/proto/ProtoOutputStream;->endObjectImpl(JZ)V HSPLandroid/util/proto/ProtoOutputStream;->flush()V -HPLandroid/util/proto/ProtoOutputStream;->getBytes()[B -HPLandroid/util/proto/ProtoOutputStream;->getRawSize()I HSPLandroid/util/proto/ProtoOutputStream;->getTagSize(I)I HSPLandroid/util/proto/ProtoOutputStream;->readRawTag()I HSPLandroid/util/proto/ProtoOutputStream;->start(J)J @@ -16526,10 +15829,8 @@ HSPLandroid/util/proto/ProtoOutputStream;->startObjectImpl(IZ)J HSPLandroid/util/proto/ProtoOutputStream;->write(JI)V HSPLandroid/util/proto/ProtoOutputStream;->write(JJ)V HSPLandroid/util/proto/ProtoOutputStream;->write(JLjava/lang/String;)V -HPLandroid/util/proto/ProtoOutputStream;->writeEnumImpl(II)V+]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream; HSPLandroid/util/proto/ProtoOutputStream;->writeInt32Impl(II)V HSPLandroid/util/proto/ProtoOutputStream;->writeKnownLengthHeader(II)V -HPLandroid/util/proto/ProtoOutputStream;->writeRepeatedInt32Impl(II)V+]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream; HSPLandroid/util/proto/ProtoOutputStream;->writeStringImpl(ILjava/lang/String;)V HSPLandroid/util/proto/ProtoOutputStream;->writeTag(II)V HSPLandroid/util/proto/ProtoOutputStream;->writeUnsignedVarintFromSignedInt(I)V @@ -16544,13 +15845,11 @@ HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lan HSPLandroid/view/AbsSavedState;-><init>(Landroid/os/Parcelable;)V HSPLandroid/view/AbsSavedState;->getSuperState()Landroid/os/Parcelable; HSPLandroid/view/AbsSavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/ActionMode$Callback2;-><init>()V HSPLandroid/view/Choreographer$1;->initialValue()Landroid/view/Choreographer; HSPLandroid/view/Choreographer$1;->initialValue()Ljava/lang/Object; HSPLandroid/view/Choreographer$2;->initialValue()Landroid/view/Choreographer; HSPLandroid/view/Choreographer$2;->initialValue()Ljava/lang/Object; HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;)V -HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;Landroid/view/Choreographer$CallbackQueue-IA;)V HSPLandroid/view/Choreographer$CallbackQueue;->addCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)V HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landroid/view/Choreographer$CallbackRecord; HSPLandroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V @@ -16573,7 +15872,6 @@ HSPLandroid/view/Choreographer$FrameTimeline;-><init>(JJJ)V HSPLandroid/view/Choreographer$FrameTimeline;->getDeadlineNanos()J HSPLandroid/view/Choreographer;->-$$Nest$sfgetVSYNC_CALLBACK_TOKEN()Ljava/lang/Object; HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;I)V -HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;ILandroid/view/Choreographer-IA;)V HSPLandroid/view/Choreographer;->doCallbacks(ILandroid/view/Choreographer$FrameData;J)V HSPLandroid/view/Choreographer;->doFrame(JILandroid/view/DisplayEventReceiver$VsyncEventData;)V HSPLandroid/view/Choreographer;->doScheduleCallback(I)V @@ -16601,11 +15899,9 @@ HSPLandroid/view/Choreographer;->removeFrameCallback(Landroid/view/Choreographer HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V HSPLandroid/view/Choreographer;->scheduleVsyncLocked()V HSPLandroid/view/Choreographer;->setFPSDivisor(I)V -HSPLandroid/view/Choreographer;->traceMessage(Ljava/lang/String;)V HSPLandroid/view/ContextThemeWrapper;-><init>()V HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V -HSPLandroid/view/ContextThemeWrapper;->applyOverrideConfiguration(Landroid/content/res/Configuration;)V HSPLandroid/view/ContextThemeWrapper;->attachBaseContext(Landroid/content/Context;)V HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetManager; HSPLandroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/content/res/Configuration; @@ -16663,7 +15959,6 @@ HSPLandroid/view/Display;->getState()I HSPLandroid/view/Display;->getSupportedColorModes()[I HSPLandroid/view/Display;->getSupportedModes()[Landroid/view/Display$Mode; HSPLandroid/view/Display;->getSupportedWideColorGamut()[Landroid/graphics/ColorSpace; -HSPLandroid/view/Display;->getUniqueId()Ljava/lang/String; HSPLandroid/view/Display;->getWidth()I HSPLandroid/view/Display;->hasAccess(IIII)Z HSPLandroid/view/Display;->isValid()Z @@ -16712,15 +16007,12 @@ HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;[Landroid/graphics/Rect;Landroid/view/DisplayCutout$CutoutPathParserInfo;ZLandroid/view/DisplayCutout-IA;)V HSPLandroid/view/DisplayCutout;->atLeastZero(I)I HSPLandroid/view/DisplayCutout;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayCutout;->getBoundingRects()Ljava/util/List; HSPLandroid/view/DisplayCutout;->getBoundingRectsAll()[Landroid/graphics/Rect; HSPLandroid/view/DisplayCutout;->getCopyOrRef(Landroid/graphics/Rect;Z)Landroid/graphics/Rect; HSPLandroid/view/DisplayCutout;->getSafeInsetBottom()I HSPLandroid/view/DisplayCutout;->getSafeInsetLeft()I HSPLandroid/view/DisplayCutout;->getSafeInsetRight()I HSPLandroid/view/DisplayCutout;->getSafeInsetTop()I -HSPLandroid/view/DisplayCutout;->getSafeInsets()Landroid/graphics/Rect; -HSPLandroid/view/DisplayCutout;->getWaterfallInsets()Landroid/graphics/Insets; HSPLandroid/view/DisplayCutout;->inset(IIII)Landroid/view/DisplayCutout; HSPLandroid/view/DisplayCutout;->insetInsets(IIIILandroid/graphics/Rect;)Landroid/graphics/Rect; HSPLandroid/view/DisplayCutout;->isBoundsEmpty()Z @@ -16749,8 +16041,6 @@ HSPLandroid/view/DisplayInfo;->getLogicalMetrics(Landroid/util/DisplayMetrics;La 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;->getMode()Landroid/view/Display$Mode; -HSPLandroid/view/DisplayInfo;->getNaturalHeight()I -HSPLandroid/view/DisplayInfo;->getNaturalWidth()I HSPLandroid/view/DisplayInfo;->getRefreshRate()F HSPLandroid/view/DisplayInfo;->hasAccess(I)Z HSPLandroid/view/DisplayInfo;->isWideColorGamut()Z @@ -16842,11 +16132,9 @@ HSPLandroid/view/IRemoteAnimationRunner$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/view/ISystemGestureExclusionListener$Stub;-><init>()V HSPLandroid/view/IWindow$Stub;-><init>()V HSPLandroid/view/IWindow$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/IWindow$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLandroid/view/IWindow$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/view/IWindowManager$Stub$Proxy;->attachWindowContextToDisplayArea(Landroid/os/IBinder;IILandroid/os/Bundle;)Landroid/content/res/Configuration; -HSPLandroid/view/IWindowManager$Stub$Proxy;->detachWindowContextFromWindowContainer(Landroid/os/IBinder;)V HSPLandroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F HSPLandroid/view/IWindowManager$Stub$Proxy;->getWindowInsets(Landroid/view/WindowManager$LayoutParams;ILandroid/view/InsetsState;)Z HSPLandroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z @@ -16885,7 +16173,6 @@ HSPLandroid/view/ImeFocusController;->onTraversal(ZLandroid/view/WindowManager$L HSPLandroid/view/ImeFocusController;->onViewDetachedFromWindow(Landroid/view/View;)V HSPLandroid/view/ImeFocusController;->onViewFocusChanged(Landroid/view/View;Z)V HSPLandroid/view/ImeFocusController;->onWindowDismissed()V -HSPLandroid/view/ImeFocusController;->updateImeFocusable(Landroid/view/WindowManager$LayoutParams;Z)Z HSPLandroid/view/ImeInsetsSourceConsumer;-><init>(Landroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V HSPLandroid/view/ImeInsetsSourceConsumer;->getImm()Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/ImeInsetsSourceConsumer;->hide()V @@ -16972,7 +16259,6 @@ HSPLandroid/view/InsetsAnimationControlImpl;->notifyControlRevoked(I)V HSPLandroid/view/InsetsAnimationControlImpl;->releaseLeashes()V HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FF)V HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FFZ)V -HSPLandroid/view/InsetsAnimationControlImpl;->setReadyDispatched(Z)V HSPLandroid/view/InsetsAnimationControlImpl;->updateLeashesForSide(IIILjava/util/ArrayList;Landroid/view/InsetsState;F)V HSPLandroid/view/InsetsAnimationControlImpl;->updateSurfacePosition(Landroid/util/SparseArray;)V HSPLandroid/view/InsetsAnimationControlRunner;->controlsInternalType(I)Z @@ -17006,15 +16292,11 @@ HSPLandroid/view/InsetsAnimationThreadControlRunner;->lambda$new$0$android-view- HSPLandroid/view/InsetsAnimationThreadControlRunner;->notifyControlRevoked(I)V HSPLandroid/view/InsetsAnimationThreadControlRunner;->updateSurfacePosition(Landroid/util/SparseArray;)V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda10;-><init>(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda10;->run()V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda1;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda3;-><init>(Landroid/view/InsetsController;Landroid/view/InsetsAnimationControlRunner;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;Landroid/view/WindowInsetsAnimationControlListener;)V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda3;->run()V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda4;-><init>()V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda4;->get()Ljava/lang/Object; HSPLandroid/view/InsetsController$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda1;->getInterpolation(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda3;->getInterpolation(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda4;->getInterpolation(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;->initialValue()Landroid/animation/AnimationHandler; @@ -17027,7 +16309,6 @@ HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getInsetsIn HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$2(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$3(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$4(F)F -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getInsetsInterpolator$1$android-view-InsetsController$InternalAnimationControlListener(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$onReady$0$android-view-InsetsController$InternalAnimationControlListener(Landroid/view/animation/Interpolator;Landroid/view/WindowInsetsAnimationController;Landroid/graphics/Insets;Landroid/graphics/Insets;Landroid/view/animation/Interpolator;Landroid/animation/ValueAnimator;)V HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onAnimationFinish()V HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onCancelled(Landroid/view/WindowInsetsAnimationController;)V @@ -17041,7 +16322,6 @@ HSPLandroid/view/InsetsController;->abortPendingImeControlRequest()V HSPLandroid/view/InsetsController;->applyAnimation(IZZ)V HSPLandroid/view/InsetsController;->applyAnimation(IZZZ)V HSPLandroid/view/InsetsController;->applyLocalVisibilityOverride()V -HSPLandroid/view/InsetsController;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V HSPLandroid/view/InsetsController;->calculateControllableTypes()I HSPLandroid/view/InsetsController;->calculateInsets(ZZIIIII)Landroid/view/WindowInsets; HSPLandroid/view/InsetsController;->calculateVisibleInsets(IIII)Landroid/graphics/Insets; @@ -17065,8 +16345,6 @@ HSPLandroid/view/InsetsController;->hideDirectly(IZIZ)V HSPLandroid/view/InsetsController;->invokeControllableInsetsChangedListeners()I HSPLandroid/view/InsetsController;->isRequestedVisible(I)Z HSPLandroid/view/InsetsController;->lambda$new$2(Landroid/view/InsetsController;Ljava/lang/Integer;)Landroid/view/InsetsSourceConsumer; -HSPLandroid/view/InsetsController;->lambda$new$3$android-view-InsetsController()V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationControlImpl;,Landroid/view/InsetsResizeAnimationRunner;]Landroid/view/WindowInsets;Landroid/view/WindowInsets;]Landroid/view/InsetsController$Host;Landroid/view/ViewRootInsetsControllerHost;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/view/InternalInsetsAnimationController;Landroid/view/InsetsAnimationControlImpl;,Landroid/view/InsetsResizeAnimationRunner;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/InsetsController;->lambda$startAnimation$7$android-view-InsetsController(Landroid/view/InsetsAnimationControlRunner;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;Landroid/view/WindowInsetsAnimationControlListener;)V HSPLandroid/view/InsetsController;->lambda$static$1(FLandroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets; HSPLandroid/view/InsetsController;->notifyControlRevoked(Landroid/view/InsetsSourceConsumer;)V HSPLandroid/view/InsetsController;->notifyFinished(Landroid/view/InsetsAnimationControlRunner;Z)V @@ -17077,22 +16355,16 @@ HSPLandroid/view/InsetsController;->onRequestedVisibilityChanged(Landroid/view/I HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z HSPLandroid/view/InsetsController;->onWindowFocusGained(Z)V HSPLandroid/view/InsetsController;->onWindowFocusLost()V -HSPLandroid/view/InsetsController;->releaseSurfaceControlFromRt(Landroid/view/SurfaceControl;)V HSPLandroid/view/InsetsController;->reportPerceptible(IZ)V -HSPLandroid/view/InsetsController;->scheduleApplyChangeInsets(Landroid/view/InsetsAnimationControlRunner;)V+]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationControlImpl;]Landroid/view/InsetsController$Host;Landroid/view/ViewRootInsetsControllerHost;]Ljava/lang/Runnable;Landroid/view/InsetsController$$ExternalSyntheticLambda10; -HSPLandroid/view/InsetsController;->setSystemBarsAppearance(II)V HSPLandroid/view/InsetsController;->show(I)V HSPLandroid/view/InsetsController;->show(IZ)V HSPLandroid/view/InsetsController;->showDirectly(IZ)V -HSPLandroid/view/InsetsController;->startAnimation(Landroid/view/InsetsAnimationControlRunner;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)V HSPLandroid/view/InsetsController;->startResizingAnimationIfNeeded(Landroid/view/InsetsState;)V HSPLandroid/view/InsetsController;->updateCompatSysUiVisibility(IZZ)V HSPLandroid/view/InsetsController;->updateDisabledUserAnimationTypes(I)V HSPLandroid/view/InsetsController;->updateRequestedVisibilities()V HSPLandroid/view/InsetsController;->updateState(Landroid/view/InsetsState;)V HSPLandroid/view/InsetsFlags;-><init>()V -HSPLandroid/view/InsetsFrameProvider$1;-><init>()V -HSPLandroid/view/InsetsFrameProvider;-><clinit>()V HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSource; HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/InsetsSource;-><init>(I)V @@ -17320,7 +16592,6 @@ HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFII)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFIIII)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->obtain(JJIFFI)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->obtainNoHistory(Landroid/view/MotionEvent;)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->offsetLocation(FF)V HSPLandroid/view/MotionEvent;->recycle()V HSPLandroid/view/MotionEvent;->setAction(I)V @@ -17378,16 +16649,9 @@ HSPLandroid/view/RoundedCorners;-><clinit>()V HSPLandroid/view/RoundedCorners;-><init>(Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;)V HSPLandroid/view/RoundedCorners;-><init>([Landroid/view/RoundedCorner;)V HSPLandroid/view/RoundedCorners;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/RoundedCorners;->getRoundedCornerBottomRadius(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadius(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadiusAdjustment(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadiusBottomAdjustment(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadiusTopAdjustment(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerTopRadius(Landroid/content/res/Resources;Ljava/lang/String;)I HSPLandroid/view/RoundedCorners;->inset(IIII)Landroid/view/RoundedCorners; HSPLandroid/view/RoundedCorners;->insetRoundedCorner(IIIIIIII)Landroid/view/RoundedCorner; HSPLandroid/view/RoundedCorners;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener;-><init>()V HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;)V HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;Landroid/os/Handler;)V HSPLandroid/view/ScaleGestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z @@ -17417,7 +16681,6 @@ HSPLandroid/view/Surface;->updateNativeObject(J)V HSPLandroid/view/Surface;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl; HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/SurfaceControl$Builder;-><init>()V HSPLandroid/view/SurfaceControl$Builder;-><init>(Landroid/view/SurfaceSession;)V HSPLandroid/view/SurfaceControl$Builder;->build()Landroid/view/SurfaceControl; HSPLandroid/view/SurfaceControl$Builder;->setBLASTLayer()Landroid/view/SurfaceControl$Builder; @@ -17480,23 +16743,15 @@ HSPLandroid/view/SurfaceControl;->readFromParcel(Landroid/os/Parcel;)V HSPLandroid/view/SurfaceControl;->release()V HSPLandroid/view/SurfaceControl;->rotationToBufferTransform(I)I HSPLandroid/view/SurfaceControl;->setTransformHint(I)V -HSPLandroid/view/SurfaceControl;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/SurfaceSession;-><init>()V HSPLandroid/view/SurfaceSession;->finalize()V HSPLandroid/view/SurfaceSession;->kill()V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda0;-><init>(Landroid/view/SurfaceView;[Landroid/view/SurfaceHolder$Callback;Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda0;->onReadyToSync(Landroid/window/SurfaceSyncGroup$SyncBufferCallback;)V HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda1;-><init>(Landroid/view/SurfaceView;)V HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda1;->onScrollChanged()V HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda2;->onPreDraw()Z -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda3;-><init>(Landroid/view/SurfaceView;Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda3;->run()V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda7;-><init>(Landroid/view/SurfaceView;)V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda7;->run()V HSPLandroid/view/SurfaceView$1;-><init>(Landroid/view/SurfaceView;)V HSPLandroid/view/SurfaceView$1;->addCallback(Landroid/view/SurfaceHolder$Callback;)V HSPLandroid/view/SurfaceView$1;->getSurface()Landroid/view/Surface; -HSPLandroid/view/SurfaceView$1;->setFormat(I)V HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;-><init>(Landroid/view/SurfaceView;II)V HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionChanged(JIIII)V HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionLost(J)V @@ -17518,10 +16773,6 @@ HSPLandroid/view/SurfaceView;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/view/SurfaceView;->gatherTransparentRegion(Landroid/graphics/Region;)Z HSPLandroid/view/SurfaceView;->getHolder()Landroid/view/SurfaceHolder; HSPLandroid/view/SurfaceView;->getSurfaceCallbacks()[Landroid/view/SurfaceHolder$Callback; -HSPLandroid/view/SurfaceView;->handleSyncNoBuffer([Landroid/view/SurfaceHolder$Callback;)V -HSPLandroid/view/SurfaceView;->isAboveParent()Z -HSPLandroid/view/SurfaceView;->lambda$handleSyncNoBuffer$3$android-view-SurfaceView(Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/SurfaceView;->lambda$handleSyncNoBuffer$4$android-view-SurfaceView([Landroid/view/SurfaceHolder$Callback;Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup$SyncBufferCallback;)V HSPLandroid/view/SurfaceView;->lambda$new$0$android-view-SurfaceView()Z HSPLandroid/view/SurfaceView;->notifySurfaceDestroyed()V HSPLandroid/view/SurfaceView;->onAttachedToWindow()V @@ -17531,7 +16782,6 @@ HSPLandroid/view/SurfaceView;->onMeasure(II)V HSPLandroid/view/SurfaceView;->onSetSurfacePositionAndScale(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;IIFF)V HSPLandroid/view/SurfaceView;->onWindowVisibilityChanged(I)V HSPLandroid/view/SurfaceView;->performDrawFinished()V -HSPLandroid/view/SurfaceView;->redrawNeededAsync([Landroid/view/SurfaceHolder$Callback;Ljava/lang/Runnable;)V HSPLandroid/view/SurfaceView;->releaseSurfaces(Z)V HSPLandroid/view/SurfaceView;->replacePositionUpdateListener(II)V HSPLandroid/view/SurfaceView;->setFrame(IIII)Z @@ -17546,20 +16796,13 @@ 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/SyncRtSurfaceTransactionApplier$$ExternalSyntheticLambda0;-><init>(Landroid/view/SyncRtSurfaceTransactionApplier;Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier$$ExternalSyntheticLambda0;->onFrameDraw(J)V HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;-><init>(Landroid/view/SurfaceControl;)V HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->build()Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withAlpha(F)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withMatrix(Landroid/graphics/Matrix;)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withVisibility(Z)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;-><init>(Landroid/view/SurfaceControl;IFLandroid/graphics/Matrix;Landroid/graphics/Rect;IFIZLandroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;-><init>(Landroid/view/View;)V HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;[F)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;[Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyTransaction(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->lambda$scheduleApply$0$android-view-SyncRtSurfaceTransactionApplier(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->scheduleApply([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/SyncRtSurfaceTransactionApplier;Landroid/view/SyncRtSurfaceTransactionApplier; HSPLandroid/view/TextureView;-><init>(Landroid/content/Context;)V HSPLandroid/view/TextureView;->applyUpdate()V HSPLandroid/view/TextureView;->destroyHardwareLayer()V @@ -17621,7 +16864,6 @@ HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView; HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V -HSPLandroid/view/TouchDelegate;->onTouchEvent(Landroid/view/MotionEvent;)Z HSPLandroid/view/VelocityTracker;-><init>(I)V HSPLandroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V HSPLandroid/view/VelocityTracker;->clear()V @@ -17673,9 +16915,6 @@ HSPLandroid/view/View$5;->setValue(Ljava/lang/Object;F)V HSPLandroid/view/View$AccessibilityDelegate;-><init>()V HSPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider; HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V -PLandroid/view/View$AttachInfo$InvalidateInfo;-><init>()V -HPLandroid/view/View$AttachInfo$InvalidateInfo;->obtain()Landroid/view/View$AttachInfo$InvalidateInfo;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; -PLandroid/view/View$AttachInfo$InvalidateInfo;->recycle()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; @@ -17755,7 +16994,6 @@ HSPLandroid/view/View;->clearFocus()V HSPLandroid/view/View;->clearFocusInternal(Landroid/view/View;ZZ)V HSPLandroid/view/View;->clearParentsWantFocus()V HSPLandroid/view/View;->clearTranslationState()V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->clearViewTranslationCallback()V HSPLandroid/view/View;->clearViewTranslationResponse()V HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List; HSPLandroid/view/View;->collectUnrestrictedPreferKeepClearRects()Ljava/util/List; @@ -17807,9 +17045,6 @@ HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z HSPLandroid/view/View;->dispatchVisibilityChanged(Landroid/view/View;I)V HSPLandroid/view/View;->dispatchWindowFocusChanged(Z)V HSPLandroid/view/View;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/View;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/View;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds; HSPLandroid/view/View;->dispatchWindowSystemUiVisiblityChanged(I)V HSPLandroid/view/View;->dispatchWindowVisibilityChanged(I)V HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types @@ -17835,7 +17070,6 @@ HSPLandroid/view/View;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/vie HSPLandroid/view/View;->fitSystemWindows(Landroid/graphics/Rect;)Z HSPLandroid/view/View;->fitSystemWindowsInt(Landroid/graphics/Rect;)Z HSPLandroid/view/View;->focusSearch(I)Landroid/view/View; -HSPLandroid/view/View;->forceHasOverlappingRendering(Z)V HSPLandroid/view/View;->forceLayout()V HSPLandroid/view/View;->gatherTransparentRegion(Landroid/graphics/Region;)Z HSPLandroid/view/View;->generateViewId()I @@ -17858,7 +17092,6 @@ HSPLandroid/view/View;->getBottom()I HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;)V HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V HSPLandroid/view/View;->getClipBounds()Landroid/graphics/Rect; -HSPLandroid/view/View;->getClipBounds(Landroid/graphics/Rect;)Z HSPLandroid/view/View;->getClipToOutline()Z HSPLandroid/view/View;->getContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession; HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence; @@ -17941,7 +17174,6 @@ HSPLandroid/view/View;->getScaleY()F HSPLandroid/view/View;->getScrollX()I HSPLandroid/view/View;->getScrollY()I HSPLandroid/view/View;->getSolidColor()I -HSPLandroid/view/View;->getStateListAnimator()Landroid/animation/StateListAnimator; HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types HSPLandroid/view/View;->getSuggestedMinimumHeight()I HSPLandroid/view/View;->getSuggestedMinimumWidth()I @@ -18162,11 +17394,8 @@ HSPLandroid/view/View;->pointInView(FFF)Z HSPLandroid/view/View;->post(Ljava/lang/Runnable;)Z HSPLandroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z HSPLandroid/view/View;->postInvalidate()V -PLandroid/view/View;->postInvalidate(IIII)V HSPLandroid/view/View;->postInvalidateDelayed(J)V -PLandroid/view/View;->postInvalidateDelayed(JIIII)V HSPLandroid/view/View;->postInvalidateOnAnimation()V -HPLandroid/view/View;->postInvalidateOnAnimation(IIII)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 @@ -18204,7 +17433,6 @@ HSPLandroid/view/View;->resetResolvedTextAlignment()V HSPLandroid/view/View;->resetResolvedTextDirection()V HSPLandroid/view/View;->resetRtlProperties()V HSPLandroid/view/View;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/View;->resetSubtreeAutofillIds()V HSPLandroid/view/View;->resolveDrawables()V HSPLandroid/view/View;->resolveLayoutDirection()Z HSPLandroid/view/View;->resolveLayoutParams()V @@ -18250,7 +17478,6 @@ 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;->setDefaultFocusHighlight(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/View;->setDefaultFocusHighlightEnabled(Z)V HSPLandroid/view/View;->setDetached(Z)V HSPLandroid/view/View;->setDisplayListProperties(Landroid/graphics/RenderNode;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; @@ -18262,7 +17489,6 @@ HSPLandroid/view/View;->setFlags(II)V+]Landroid/view/View;megamorphic_types]Land HSPLandroid/view/View;->setFocusable(I)V HSPLandroid/view/View;->setFocusable(Z)V HSPLandroid/view/View;->setFocusableInTouchMode(Z)V -HSPLandroid/view/View;->setForceDarkAllowed(Z)V HSPLandroid/view/View;->setForeground(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/View;->setForegroundGravity(I)V HSPLandroid/view/View;->setFrame(IIII)Z+]Landroid/view/View;megamorphic_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; @@ -18348,7 +17574,6 @@ HSPLandroid/view/View;->setTranslationZ(F)V HSPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V HSPLandroid/view/View;->setVisibility(I)V HSPLandroid/view/View;->setWillNotDraw(Z)V -HSPLandroid/view/View;->setWindowInsetsAnimationCallback(Landroid/view/WindowInsetsAnimation$Callback;)V HSPLandroid/view/View;->setX(F)V HSPLandroid/view/View;->setY(F)V HSPLandroid/view/View;->shouldDrawRoundScrollbar()Z @@ -18360,8 +17585,6 @@ 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;->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;->transformMatrixToLocal(Landroid/graphics/Matrix;)V HSPLandroid/view/View;->unFocus(Landroid/view/View;)V HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V @@ -18515,9 +17738,6 @@ HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets;+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds;+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V HSPLandroid/view/ViewGroup;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z @@ -18589,10 +17809,8 @@ HSPLandroid/view/ViewGroup;->measureChildWithMargins(Landroid/view/View;IIII)V+] HSPLandroid/view/ViewGroup;->measureChildren(II)V HSPLandroid/view/ViewGroup;->newDispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V -HSPLandroid/view/ViewGroup;->offsetChildrenTopAndBottom(I)V+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/view/ViewGroup;missing_types 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;->offsetRectIntoDescendantCoords(Landroid/view/View;Landroid/graphics/Rect;)V HSPLandroid/view/ViewGroup;->onAttachedToWindow()V HSPLandroid/view/ViewGroup;->onChildVisibilityChanged(Landroid/view/View;II)V HSPLandroid/view/ViewGroup;->onCreateDrawableState(I)[I @@ -18633,7 +17851,6 @@ HSPLandroid/view/ViewGroup;->resetResolvedPadding()V HSPLandroid/view/ViewGroup;->resetResolvedTextAlignment()V HSPLandroid/view/ViewGroup;->resetResolvedTextDirection()V HSPLandroid/view/ViewGroup;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/ViewGroup;->resetSubtreeAutofillIds()V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->resetTouchState()V HSPLandroid/view/ViewGroup;->resolveDrawables()V HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z @@ -18655,7 +17872,6 @@ HSPLandroid/view/ViewGroup;->setLayoutTransition(Landroid/animation/LayoutTransi HSPLandroid/view/ViewGroup;->setMotionEventSplittingEnabled(Z)V HSPLandroid/view/ViewGroup;->setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V HSPLandroid/view/ViewGroup;->setTouchscreenBlocksFocus(Z)V -HSPLandroid/view/ViewGroup;->setWindowInsetsAnimationCallback(Landroid/view/WindowInsetsAnimation$Callback;)V HSPLandroid/view/ViewGroup;->shouldBlockFocusForTouchscreen()Z HSPLandroid/view/ViewGroup;->shouldDelayChildPressedState()Z HSPLandroid/view/ViewGroup;->startViewTransition(Landroid/view/View;)V @@ -18676,7 +17892,6 @@ HSPLandroid/view/ViewOverlay$OverlayViewGroup;->dispatchDraw(Landroid/graphics/C HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(IIII)V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Landroid/graphics/Rect;)V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Z)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentIfNeeded()V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->isEmpty()Z HSPLandroid/view/ViewOverlay$OverlayViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V @@ -18784,7 +17999,6 @@ HSPLandroid/view/ViewRootImpl$InputStage;->shouldDropInputEvent(Landroid/view/Vi HSPLandroid/view/ViewRootImpl$InputStage;->traceEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;J)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>(Landroid/view/ViewRootImpl;)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V -HPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addViewRect(Landroid/view/View$AttachInfo$InvalidateInfo;)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V @@ -18821,7 +18035,6 @@ HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;-><init>(Landroid/view/ViewR HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->maybeUpdatePointerIcon(Landroid/view/MotionEvent;)V HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->performFocusNavigation(Landroid/view/KeyEvent;)Z HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/HandwritingInitiator;Landroid/view/HandwritingInitiator; HSPLandroid/view/ViewRootImpl$ViewPreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V @@ -18854,7 +18067,7 @@ HSPLandroid/view/ViewRootImpl;->-$$Nest$mdispatchResized(Landroid/view/ViewRootI HSPLandroid/view/ViewRootImpl;->-$$Nest$mprofileRendering(Landroid/view/ViewRootImpl;Z)V HSPLandroid/view/ViewRootImpl;->-$$Nest$mreadyToSync(Landroid/view/ViewRootImpl;Landroid/window/SurfaceSyncGroup$SyncBufferCallback;)V HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;)V -HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;Landroid/view/WindowLayout;)V+]Landroid/view/WindowLeaked;Landroid/view/WindowLeaked;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/media/AudioManager;Landroid/media/AudioManager;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;Landroid/view/WindowLayout;)V+]Landroid/view/WindowLeaked;Landroid/view/WindowLeaked;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/media/AudioManager;Landroid/media/AudioManager;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/content/Context;missing_types HSPLandroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V HSPLandroid/view/ViewRootImpl;->addFrameCommitCallbackIfNeeded()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; HSPLandroid/view/ViewRootImpl;->addSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V @@ -18887,8 +18100,6 @@ HSPLandroid/view/ViewRootImpl;->dispatchDispatchSystemUiVisibilityChanged(Landro 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 -PLandroid/view/ViewRootImpl;->dispatchInvalidateRectDelayed(Landroid/view/View$AttachInfo$InvalidateInfo;J)V -PLandroid/view/ViewRootImpl;->dispatchInvalidateRectOnAnimation(Landroid/view/View$AttachInfo$InvalidateInfo;)V HSPLandroid/view/ViewRootImpl;->dispatchMoved(II)V HSPLandroid/view/ViewRootImpl;->dispatchResized(Landroid/window/ClientWindowFrames;ZLandroid/util/MergedConfiguration;Landroid/view/InsetsState;ZZIII)V HSPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)Z @@ -18987,7 +18198,7 @@ HSPLandroid/view/ViewRootImpl;->onPreDraw(Landroid/graphics/RecordingCanvas;)V HSPLandroid/view/ViewRootImpl;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z HSPLandroid/view/ViewRootImpl;->performConfigurationChange(Landroid/util/MergedConfiguration;ZI)V HSPLandroid/view/ViewRootImpl;->performContentCaptureInitialReport()V -HSPLandroid/view/ViewRootImpl;->performDraw()Z+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup$1;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;->performDraw()Z+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup$1; HSPLandroid/view/ViewRootImpl;->performHapticFeedback(IZ)Z HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V HSPLandroid/view/ViewRootImpl;->performMeasure(II)V @@ -19036,7 +18247,6 @@ HSPLandroid/view/ViewRootImpl;->setWindowStopped(Z)V HSPLandroid/view/ViewRootImpl;->shouldDispatchCutout()Z HSPLandroid/view/ViewRootImpl;->shouldUseDisplaySize(Landroid/view/WindowManager$LayoutParams;)Z HSPLandroid/view/ViewRootImpl;->systemGestureExclusionChanged()V -HSPLandroid/view/ViewRootImpl;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; HSPLandroid/view/ViewRootImpl;->unscheduleConsumeBatchedInput()V HSPLandroid/view/ViewRootImpl;->unscheduleTraversals()V HSPLandroid/view/ViewRootImpl;->updateBlastSurfaceIfNeeded()V @@ -19054,19 +18264,9 @@ HSPLandroid/view/ViewRootImpl;->updateOpacity(Landroid/view/WindowManager$Layout HSPLandroid/view/ViewRootImpl;->updateSystemGestureExclusionRectsForView(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl;->useBLAST()Z HSPLandroid/view/ViewRootImpl;->windowFocusChanged(Z)V -HSPLandroid/view/ViewRootInsetsControllerHost$$ExternalSyntheticLambda0;-><init>(Landroid/view/SurfaceControl;)V -HSPLandroid/view/ViewRootInsetsControllerHost$$ExternalSyntheticLambda0;->onFrameDraw(J)V -HSPLandroid/view/ViewRootInsetsControllerHost$1;-><init>(Landroid/view/ViewRootInsetsControllerHost;Ljava/lang/Runnable;)V -HSPLandroid/view/ViewRootInsetsControllerHost$1;->onPreDraw()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->-$$Nest$fgetmViewRoot(Landroid/view/ViewRootInsetsControllerHost;)Landroid/view/ViewRootImpl; HSPLandroid/view/ViewRootInsetsControllerHost;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->addOnPreDrawRunnable(Ljava/lang/Runnable;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/SyncRtSurfaceTransactionApplier;Landroid/view/SyncRtSurfaceTransactionApplier; HSPLandroid/view/ViewRootInsetsControllerHost;->dipToPx(I)I HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets;+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds; HSPLandroid/view/ViewRootInsetsControllerHost;->getHandler()Landroid/os/Handler; HSPLandroid/view/ViewRootInsetsControllerHost;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/ViewRootInsetsControllerHost;->getSystemBarsAppearance()I @@ -19075,12 +18275,7 @@ HSPLandroid/view/ViewRootInsetsControllerHost;->getTranslator()Landroid/content/ HSPLandroid/view/ViewRootInsetsControllerHost;->getWindowToken()Landroid/os/IBinder; HSPLandroid/view/ViewRootInsetsControllerHost;->hasAnimationCallbacks()Z HSPLandroid/view/ViewRootInsetsControllerHost;->isSystemBarsAppearanceControlled()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->isVisibleToUser()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->lambda$releaseSurfaceControlFromRt$0(Landroid/view/SurfaceControl;J)V HSPLandroid/view/ViewRootInsetsControllerHost;->notifyInsetsChanged()V -HSPLandroid/view/ViewRootInsetsControllerHost;->postInsetsAnimationCallback(Ljava/lang/Runnable;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->releaseSurfaceControlFromRt(Landroid/view/SurfaceControl;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->setSystemBarsAppearance(II)V HSPLandroid/view/ViewRootInsetsControllerHost;->updateCompatSysUiVisibility(IZZ)V HSPLandroid/view/ViewRootInsetsControllerHost;->updateRequestedVisibilities(Landroid/view/InsetsVisibilities;)V HSPLandroid/view/ViewRootRectTracker$ViewInfo;-><init>(Landroid/view/ViewRootRectTracker;Landroid/view/View;)V @@ -19199,20 +18394,16 @@ HSPLandroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/v HSPLandroid/view/WindowInsets$Builder;-><init>()V HSPLandroid/view/WindowInsets$Builder;-><init>(Landroid/view/WindowInsets;)V HSPLandroid/view/WindowInsets$Builder;->build()Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets$Builder;->setInsets(ILandroid/graphics/Insets;)Landroid/view/WindowInsets$Builder; HSPLandroid/view/WindowInsets$Builder;->setSystemWindowInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder; HSPLandroid/view/WindowInsets$Side;->all()I HSPLandroid/view/WindowInsets$Type;->all()I HSPLandroid/view/WindowInsets$Type;->displayCutout()I HSPLandroid/view/WindowInsets$Type;->ime()I HSPLandroid/view/WindowInsets$Type;->indexOf(I)I -HSPLandroid/view/WindowInsets$Type;->mandatorySystemGestures()I HSPLandroid/view/WindowInsets$Type;->navigationBars()I HSPLandroid/view/WindowInsets$Type;->statusBars()I HSPLandroid/view/WindowInsets$Type;->systemBars()I -HSPLandroid/view/WindowInsets$Type;->systemGestures()I HSPLandroid/view/WindowInsets$Type;->toString(I)Ljava/lang/String; -HSPLandroid/view/WindowInsets;->-$$Nest$smsetInsets([Landroid/graphics/Insets;ILandroid/graphics/Insets;)V HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZZLandroid/view/DisplayCutout;Landroid/view/RoundedCorners;Landroid/view/PrivacyIndicatorBounds;IZ)V HSPLandroid/view/WindowInsets;->assignCompatInsets([Landroid/graphics/Insets;Landroid/graphics/Rect;)V HSPLandroid/view/WindowInsets;->consumeDisplayCutout()Landroid/view/WindowInsets; @@ -19244,19 +18435,16 @@ HSPLandroid/view/WindowInsets;->insetInsets([Landroid/graphics/Insets;IIII)[Land HSPLandroid/view/WindowInsets;->insetUnchecked(IIII)Landroid/view/WindowInsets; HSPLandroid/view/WindowInsets;->isConsumed()Z HSPLandroid/view/WindowInsets;->isRound()Z -HSPLandroid/view/WindowInsets;->isVisible(I)Z HSPLandroid/view/WindowInsets;->replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->setInsets([Landroid/graphics/Insets;ILandroid/graphics/Insets;)V HSPLandroid/view/WindowInsets;->shouldAlwaysConsumeSystemBars()Z HSPLandroid/view/WindowInsetsAnimation$Bounds;-><init>(Landroid/graphics/Insets;Landroid/graphics/Insets;)V HSPLandroid/view/WindowInsetsAnimation$Callback;-><init>(I)V -HSPLandroid/view/WindowInsetsAnimation$Callback;->getDispatchMode()I HSPLandroid/view/WindowInsetsAnimation;-><init>(ILandroid/view/animation/Interpolator;J)V HSPLandroid/view/WindowInsetsAnimation;->getTypeMask()I HSPLandroid/view/WindowInsetsAnimation;->setAlpha(F)V HSPLandroid/view/WindowLayout;-><clinit>()V HSPLandroid/view/WindowLayout;-><init>()V -HSPLandroid/view/WindowLayout;->computeFrames(Landroid/view/WindowManager$LayoutParams;Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/graphics/Rect;IIILandroid/view/InsetsVisibilities;FLandroid/window/ClientWindowFrames;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout; +HSPLandroid/view/WindowLayout;->computeFrames(Landroid/view/WindowManager$LayoutParams;Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/graphics/Rect;IIILandroid/view/InsetsVisibilities;FLandroid/window/ClientWindowFrames;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/view/WindowLayout;->computeSurfaceSize(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;IILandroid/graphics/Rect;ZLandroid/graphics/Point;)V HSPLandroid/view/WindowLeaked;-><init>(Ljava/lang/String;)V HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/WindowManager$LayoutParams; @@ -19265,7 +18453,6 @@ 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;->forRotation(I)Landroid/view/WindowManager$LayoutParams; HSPLandroid/view/WindowManager$LayoutParams;->getColorMode()I HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsSides()I HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsTypes()I @@ -19320,7 +18507,6 @@ HSPLandroid/view/WindowManagerImpl;->removeViewImmediate(Landroid/view/View;)V HSPLandroid/view/WindowManagerImpl;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V HSPLandroid/view/WindowMetrics;-><init>(Landroid/graphics/Rect;Landroid/view/WindowInsets;)V HSPLandroid/view/WindowMetrics;->getBounds()Landroid/graphics/Rect; -HSPLandroid/view/WindowMetrics;->getWindowInsets()Landroid/view/WindowInsets; HSPLandroid/view/accessibility/AccessibilityManager$1;-><init>(Landroid/view/accessibility/AccessibilityManager;)V HSPLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChanged(J)V HSPLandroid/view/accessibility/AccessibilityManager$1;->setFocusAppearance(II)V @@ -19568,8 +18754,6 @@ HSPLandroid/view/autofill/AutofillId;->resetSessionId()V HSPLandroid/view/autofill/AutofillId;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId; HSPLandroid/view/autofill/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;I)V -PLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda2;->run()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; @@ -19592,8 +18776,6 @@ HSPLandroid/view/autofill/AutofillManager;->hasFillDialogUiFeature()Z HSPLandroid/view/autofill/AutofillManager;->isActiveLocked()Z HSPLandroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z HSPLandroid/view/autofill/AutofillManager;->isEnabled()Z -HSPLandroid/view/autofill/AutofillManager;->lambda$onVisibleForAutofill$2$android-view-autofill-AutofillManager()V -PLandroid/view/autofill/AutofillManager;->lambda$tryAddServiceClientIfNeededLocked$3(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;I)V HSPLandroid/view/autofill/AutofillManager;->notifyValueChanged(Landroid/view/View;)V HSPLandroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;I)V HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofill(Landroid/view/View;)V @@ -19613,7 +18795,6 @@ HSPLandroid/view/autofill/AutofillManager;->resetSessionLocked(Z)V HSPLandroid/view/autofill/AutofillManager;->setSessionFinished(ILjava/util/List;)V HSPLandroid/view/autofill/AutofillManager;->setState(I)V HSPLandroid/view/autofill/AutofillManager;->shouldIgnoreViewEnteredLocked(Landroid/view/autofill/AutofillId;I)Z -HSPLandroid/view/autofill/AutofillManager;->shouldShowAutofillDialog(Landroid/view/View;Landroid/view/autofill/AutofillId;)Z HSPLandroid/view/autofill/AutofillManager;->startAutofillIfNeededLocked(Landroid/view/View;)Z HSPLandroid/view/autofill/AutofillManager;->startSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;I)V HSPLandroid/view/autofill/AutofillManager;->tryAddServiceClientIfNeededLocked()Z @@ -19638,15 +18819,6 @@ HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateSession(ILandroid/ HSPLandroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager; HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->-$$Nest$fgetmExtras(Landroid/view/contentcapture/ContentCaptureContext$Builder;)Landroid/os/Bundle; -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->-$$Nest$fgetmId(Landroid/view/contentcapture/ContentCaptureContext$Builder;)Landroid/content/LocusId; -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;-><init>(Landroid/content/LocusId;)V -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->setExtras(Landroid/os/Bundle;)Landroid/view/contentcapture/ContentCaptureContext$Builder; -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->throwIfDestroyed()V -HSPLandroid/view/contentcapture/ContentCaptureContext;-><init>(Landroid/view/contentcapture/ContentCaptureContext$Builder;)V -HSPLandroid/view/contentcapture/ContentCaptureContext;-><init>(Landroid/view/contentcapture/ContentCaptureContext$Builder;Landroid/view/contentcapture/ContentCaptureContext-IA;)V -HSPLandroid/view/contentcapture/ContentCaptureContext;->fromServer()Z -HSPLandroid/view/contentcapture/ContentCaptureContext;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(II)V HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(IIJ)V HSPLandroid/view/contentcapture/ContentCaptureEvent;->addAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent; @@ -19658,7 +18830,6 @@ HSPLandroid/view/contentcapture/ContentCaptureEvent;->getType()I HSPLandroid/view/contentcapture/ContentCaptureEvent;->mergeEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V HSPLandroid/view/contentcapture/ContentCaptureEvent;->setAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setBounds(Landroid/graphics/Rect;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setClientContext(Landroid/view/contentcapture/ContentCaptureContext;)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setComposingIndex(II)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setInsets(Landroid/graphics/Insets;)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setSelectionIndex(II)Landroid/view/contentcapture/ContentCaptureEvent; @@ -19684,7 +18855,6 @@ HSPLandroid/view/contentcapture/ContentCaptureSession;->isContentCaptureEnabled( HSPLandroid/view/contentcapture/ContentCaptureSession;->newViewStructure(Landroid/view/View;)Landroid/view/ViewStructure; HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewAppeared(Landroid/view/ViewStructure;)V HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V -HSPLandroid/view/contentcapture/DataShareRequest;->getPackageName()Ljava/lang/String; HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->sendEvents(Landroid/content/pm/ParceledListSlice;ILandroid/content/ContentCaptureOptions;)V @@ -19782,8 +18952,6 @@ HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextIdEntry(Ljav HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextLines([I[I)V HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextStyle(FIII)V HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setVisibility(I)V -HSPLandroid/view/contentcapture/ViewNode;->-$$Nest$fgetmFlags(Landroid/view/contentcapture/ViewNode;)J -HSPLandroid/view/contentcapture/ViewNode;->-$$Nest$fputmFlags(Landroid/view/contentcapture/ViewNode;J)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 @@ -19801,7 +18969,6 @@ HSPLandroid/view/inputmethod/BaseInputConnection;->finishComposingText()Z HSPLandroid/view/inputmethod/BaseInputConnection;->getEditable()Landroid/text/Editable; HSPLandroid/view/inputmethod/BaseInputConnection;->getHandler()Landroid/os/Handler; HSPLandroid/view/inputmethod/BaseInputConnection;->getSelectedText(I)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/BaseInputConnection;->getSurroundingText(III)Landroid/view/inputmethod/SurroundingText; HSPLandroid/view/inputmethod/BaseInputConnection;->getTextAfterCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/BaseInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/BaseInputConnection;->removeComposingSpans(Landroid/text/Spannable;)V @@ -19812,21 +18979,13 @@ HSPLandroid/view/inputmethod/BaseInputConnection;->sendKeyEvent(Landroid/view/Ke HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingRegion(II)Z HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingSpans(Landroid/text/Spannable;II)V HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingText(Ljava/lang/CharSequence;I)Z -PLandroid/view/inputmethod/CorrectionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/CorrectionInfo; -PLandroid/view/inputmethod/CorrectionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -PLandroid/view/inputmethod/CorrectionInfo;-><init>(Landroid/os/Parcel;)V -PLandroid/view/inputmethod/CorrectionInfo;-><init>(Landroid/os/Parcel;Landroid/view/inputmethod/CorrectionInfo-IA;)V -HSPLandroid/view/inputmethod/CorrectionInfo;->getNewText()Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/CorrectionInfo;->getOffset()I HSPLandroid/view/inputmethod/CursorAnchorInfo$Builder;-><init>()V HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/EditorInfo; HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/inputmethod/EditorInfo;-><init>()V HSPLandroid/view/inputmethod/EditorInfo;->createCopyInternal()Landroid/view/inputmethod/EditorInfo; -HSPLandroid/view/inputmethod/EditorInfo;->kindofEquals(Landroid/view/inputmethod/EditorInfo;)Z HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingSubText(Ljava/lang/CharSequence;I)V HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingText(Ljava/lang/CharSequence;)V -HSPLandroid/view/inputmethod/EditorInfo;->setSupportedHandwritingGestures(Ljava/util/List;)V HSPLandroid/view/inputmethod/EditorInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/inputmethod/ExtractedTextRequest;-><init>()V HSPLandroid/view/inputmethod/IInputMethodManagerInvoker;-><init>(Lcom/android/internal/view/IInputMethodManager;)V @@ -19844,14 +19003,11 @@ HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInput()V HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInputInternal()V HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelection(IIIIII)V HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelectionInternal(IIIIII)V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->viewClicked(Z)V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->viewClickedInternal(Z)V HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InlineSuggestionsRequest; HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/inputmethod/InlineSuggestionsRequest;-><init>(Landroid/os/Parcel;)V HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->onConstructed()V HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/inputmethod/InputConnection;->takeSnapshot()Landroid/view/inputmethod/TextSnapshot; HSPLandroid/view/inputmethod/InputConnectionWrapper;-><init>(Landroid/view/inputmethod/InputConnection;Z)V HSPLandroid/view/inputmethod/InputConnectionWrapper;->beginBatchEdit()Z HSPLandroid/view/inputmethod/InputConnectionWrapper;->closeConnection()V @@ -19861,7 +19017,6 @@ HSPLandroid/view/inputmethod/InputConnectionWrapper;->endBatchEdit()Z HSPLandroid/view/inputmethod/InputConnectionWrapper;->finishComposingText()Z HSPLandroid/view/inputmethod/InputConnectionWrapper;->getHandler()Landroid/os/Handler; HSPLandroid/view/inputmethod/InputConnectionWrapper;->getSelectedText(I)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/InputConnectionWrapper;->getSurroundingText(III)Landroid/view/inputmethod/SurroundingText; HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextAfterCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextBeforeCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/InputConnectionWrapper;->reportFullscreenMode(Z)Z @@ -19880,19 +19035,12 @@ HSPLandroid/view/inputmethod/InputMethodManager$2;-><init>(Landroid/view/inputme HSPLandroid/view/inputmethod/InputMethodManager$2;->onBindMethod(Lcom/android/internal/inputmethod/InputBindResult;)V HSPLandroid/view/inputmethod/InputMethodManager$2;->onUnbindMethod(II)V HSPLandroid/view/inputmethod/InputMethodManager$2;->reportFullscreenMode(Z)V -HSPLandroid/view/inputmethod/InputMethodManager$2;->scheduleStartInputIfNecessary(Z)V HSPLandroid/view/inputmethod/InputMethodManager$2;->setActive(ZZZ)V HSPLandroid/view/inputmethod/InputMethodManager$BindState;-><init>(Lcom/android/internal/inputmethod/InputBindResult;)V HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl$$ExternalSyntheticLambda0;-><init>()V HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->closeCurrentIme()V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishComposingText()V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishInput()V HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishInputAndReportToIme()V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->hasActiveConnection(Landroid/view/View;)Z HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->isCurrentRootView(Landroid/view/ViewRootImpl;)Z -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->setCurrentRootView(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->startInput(ILandroid/view/View;III)Z HSPLandroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0;-><init>(Landroid/view/ImeFocusController;Z)V HSPLandroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0;->run()V HSPLandroid/view/inputmethod/InputMethodManager$H;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/os/Looper;)V @@ -19900,7 +19048,6 @@ HSPLandroid/view/inputmethod/InputMethodManager$H;->handleMessage(Landroid/os/Me HSPLandroid/view/inputmethod/InputMethodManager$H;->lambda$handleMessage$0(Landroid/view/ImeFocusController;Z)V HSPLandroid/view/inputmethod/InputMethodManager$ImeInputEventSender;->onInputEventFinished(IZ)V HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;->run()V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmDelegate(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/inputmethod/InputMethodManager$DelegateImpl; HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmFullscreenMode(Landroid/view/inputmethod/InputMethodManager;)Z HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmImeInsetsConsumer(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/ImeInsetsSourceConsumer; HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmRestartOnNextWindowFocus(Landroid/view/inputmethod/InputMethodManager;)Z @@ -20024,14 +19171,12 @@ HSPLandroid/view/textclassifier/TextClassificationContext;->getPackageName()Ljav HSPLandroid/view/textclassifier/TextClassificationContext;->getWidgetType()Ljava/lang/String; HSPLandroid/view/textclassifier/TextClassificationContext;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V HSPLandroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V -PLandroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V HSPLandroid/view/textclassifier/TextClassificationManager;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants; HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants; HSPLandroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier(I)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier()Landroid/view/textclassifier/TextClassifier; -PLandroid/view/textclassifier/TextClassificationManager;->lambda$new$0$android-view-textclassifier-TextClassificationManager(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationSession;-><init>(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassifier;)V HSPLandroid/view/textclassifier/TextClassificationSession;->checkDestroyedAndRun(Ljava/util/function/Supplier;)Ljava/lang/Object; HSPLandroid/view/textclassifier/TextClassificationSession;->isDestroyed()Z @@ -20048,22 +19193,10 @@ HSPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel; HSPLandroid/view/textclassifier/TextClassifierEvent;->getEventContext()Landroid/view/textclassifier/TextClassificationContext; HSPLandroid/view/textclassifier/TextClassifierEvent;->getParcelToken()I HSPLandroid/view/textclassifier/TextClassifierEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextLinks$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks; -HSPLandroid/view/textclassifier/TextLinks$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextLinks$Request$Builder;-><init>(Ljava/lang/CharSequence;)V -HSPLandroid/view/textclassifier/TextLinks$Request$Builder;->build()Landroid/view/textclassifier/TextLinks$Request; HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/time/ZonedDateTime;Landroid/os/Bundle;)V -HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/time/ZonedDateTime;Landroid/os/Bundle;Landroid/view/textclassifier/TextLinks$Request-IA;)V HSPLandroid/view/textclassifier/TextLinks$Request;->getText()Ljava/lang/CharSequence; HSPLandroid/view/textclassifier/TextLinks$Request;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V HSPLandroid/view/textclassifier/TextLinks$Request;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextLinks$TextLink$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$TextLink; -HSPLandroid/view/textclassifier/TextLinks$TextLink$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextLinks$TextLink;->-$$Nest$smreadFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$TextLink; -HSPLandroid/view/textclassifier/TextLinks$TextLink;-><init>(IILandroid/view/textclassifier/EntityConfidence;Landroid/os/Bundle;Landroid/text/style/URLSpan;)V+]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;]Landroid/view/textclassifier/EntityConfidence;Landroid/view/textclassifier/EntityConfidence; -HSPLandroid/view/textclassifier/TextLinks$TextLink;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$TextLink; -HSPLandroid/view/textclassifier/TextLinks;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/TextLinks;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextLinks-IA;)V HSPLandroid/view/textclassifier/TextLinks;->getLinks()Ljava/util/Collection; HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SentenceSuggestionsInfo; HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -20076,29 +19209,17 @@ HSPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/os/Parcel;)V HSPLandroid/view/textservice/SpellCheckerInfo;->getId()Ljava/lang/String; HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype; HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeCount()I -HSPLandroid/view/textservice/SpellCheckerSession$$ExternalSyntheticLambda0;-><init>(Landroid/view/textservice/SpellCheckerSession;[Landroid/view/textservice/SentenceSuggestionsInfo;)V -HSPLandroid/view/textservice/SpellCheckerSession$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;-><init>(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;)V HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;-><init>(Landroid/view/textservice/SpellCheckerSession;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->getSpellCheckerSession()Landroid/view/textservice/SpellCheckerSession; HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processCloseLocked()V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processOrEnqueueTask(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;)V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processTask(Lcom/android/internal/textservice/ISpellCheckerSession;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;Z)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->getExtras()Landroid/os/Bundle; -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->getLocale()Ljava/util/Locale; -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->getSupportedAttributes()I -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->shouldReferToSpellCheckerLanguageSettings()Z -HSPLandroid/view/textservice/SpellCheckerSession;-><init>(Landroid/view/textservice/SpellCheckerInfo;Landroid/view/textservice/TextServicesManager;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Ljava/util/concurrent/Executor;)V HSPLandroid/view/textservice/SpellCheckerSession;->close()V HSPLandroid/view/textservice/SpellCheckerSession;->finalize()V HSPLandroid/view/textservice/SpellCheckerSession;->getSentenceSuggestions([Landroid/view/textservice/TextInfo;I)V HSPLandroid/view/textservice/SpellCheckerSession;->getSpellCheckerSessionListener()Lcom/android/internal/textservice/ISpellCheckerSessionListener; HSPLandroid/view/textservice/SpellCheckerSession;->getTextServicesSessionListener()Lcom/android/internal/textservice/ITextServicesSessionListener; -HSPLandroid/view/textservice/SpellCheckerSession;->handleOnGetSentenceSuggestionsMultiple([Landroid/view/textservice/SentenceSuggestionsInfo;)V -HSPLandroid/view/textservice/SpellCheckerSession;->lambda$handleOnGetSentenceSuggestionsMultiple$1$android-view-textservice-SpellCheckerSession([Landroid/view/textservice/SentenceSuggestionsInfo;)V HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerSubtype; HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V @@ -20112,7 +19233,6 @@ HSPLandroid/view/textservice/TextServicesManager;->finishSpellCheckerService(Lco HSPLandroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype; HSPLandroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z HSPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession; -HSPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;Ljava/util/concurrent/Executor;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;)Landroid/view/textservice/SpellCheckerSession; HSPLandroid/view/textservice/TextServicesManager;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/webkit/ConsoleMessage;->message()Ljava/lang/String; HSPLandroid/webkit/CookieManager;-><init>()V @@ -20168,7 +19288,6 @@ HSPLandroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings; HSPLandroid/webkit/WebView;->loadDataWithBaseURL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V HSPLandroid/webkit/WebView;->onAttachedToWindow()V -HSPLandroid/webkit/WebView;->onCheckIsTextEditor()Z HSPLandroid/webkit/WebView;->onDetachedFromWindowInternal()V HSPLandroid/webkit/WebView;->onDraw(Landroid/graphics/Canvas;)V HSPLandroid/webkit/WebView;->onMeasure(II)V @@ -20219,10 +19338,8 @@ HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parc HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/widget/AbsListView$3;->run()V HSPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V -PLandroid/widget/AbsListView$CheckForTap;->run()V HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>()V HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>(Landroid/widget/AbsListView$DeviceConfigChangeListener-IA;)V -PLandroid/widget/AbsListView$DeviceConfigChangeListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V HSPLandroid/widget/AbsListView$PerformClick;->run()V HSPLandroid/widget/AbsListView$RecycleBin;->addScrapView(Landroid/view/View;I)V HSPLandroid/widget/AbsListView$RecycleBin;->clear()V @@ -20249,7 +19366,6 @@ HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I+]Landroid/view/V HSPLandroid/widget/AbsListView;->computeVerticalScrollRange()I HSPLandroid/widget/AbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/widget/AbsListView;->dispatchSetPressed(Z)V -HSPLandroid/widget/AbsListView;->doesTouchStopStretch()Z HSPLandroid/widget/AbsListView;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect;]Landroid/widget/AbsListView;Landroid/widget/ExpandableListView;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/widget/AbsListView;->drawableStateChanged()V HSPLandroid/widget/AbsListView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; @@ -20287,11 +19403,9 @@ HSPLandroid/widget/AbsListView;->performItemClick(Landroid/view/View;IJ)Z HSPLandroid/widget/AbsListView;->pointToPosition(II)I HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;)V HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;ZFF)V -HSPLandroid/widget/AbsListView;->releaseGlow(II)I+]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect; HSPLandroid/widget/AbsListView;->reportScrollStateChange(I)V HSPLandroid/widget/AbsListView;->requestLayout()V HSPLandroid/widget/AbsListView;->resetList()V -HSPLandroid/widget/AbsListView;->scrollIfNeeded(IILandroid/view/MotionEvent;)V+]Landroid/view/VelocityTracker;Landroid/view/VelocityTracker;]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect;]Landroid/view/View;missing_types]Landroid/widget/AbsListView;missing_types]Landroid/view/ViewParent;Landroid/widget/FrameLayout;,Landroid/widget/LinearLayout; HSPLandroid/widget/AbsListView;->setChoiceMode(I)V HSPLandroid/widget/AbsListView;->setFastScrollAlwaysVisible(Z)V HSPLandroid/widget/AbsListView;->setFastScrollEnabled(Z)V @@ -20311,7 +19425,6 @@ HSPLandroid/widget/AbsListView;->setupDeviceConfigProperties()V HSPLandroid/widget/AbsListView;->shouldShowSelector()Z HSPLandroid/widget/AbsListView;->startScrollIfNeeded(IILandroid/view/MotionEvent;)Z HSPLandroid/widget/AbsListView;->touchModeDrawsInPressedState()Z -HSPLandroid/widget/AbsListView;->trackMotionScroll(II)Z+]Landroid/view/View;missing_types]Landroid/widget/AbsListView$RecycleBin;Landroid/widget/AbsListView$RecycleBin;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/widget/AbsListView;missing_types HSPLandroid/widget/AbsListView;->updateScrollIndicators()V HSPLandroid/widget/AbsListView;->updateSelectorState()V HSPLandroid/widget/AbsListView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z @@ -20425,7 +19538,6 @@ HSPLandroid/widget/CompoundButton;->setButtonDrawable(Landroid/graphics/drawable HSPLandroid/widget/CompoundButton;->setChecked(Z)V HSPLandroid/widget/CompoundButton;->setDefaultStateDescription()V HSPLandroid/widget/CompoundButton;->setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V -HSPLandroid/widget/CompoundButton;->setStateDescription(Ljava/lang/CharSequence;)V HSPLandroid/widget/CompoundButton;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;)V HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V @@ -20464,15 +19576,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 -PLandroid/widget/Editor$CorrectionHighlighter;-><init>(Landroid/widget/Editor;)V -HPLandroid/widget/Editor$CorrectionHighlighter;->draw(Landroid/graphics/Canvas;I)V+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -PLandroid/widget/Editor$CorrectionHighlighter;->highlight(Landroid/view/inputmethod/CorrectionInfo;)V -HPLandroid/widget/Editor$CorrectionHighlighter;->invalidate(Z)V+]Landroid/graphics/Path;Landroid/graphics/Path; -PLandroid/widget/Editor$CorrectionHighlighter;->stopAnimation()V -HPLandroid/widget/Editor$CorrectionHighlighter;->updatePaint()Z+]Landroid/graphics/Paint;Landroid/graphics/Paint; -HPLandroid/widget/Editor$CorrectionHighlighter;->updatePath()Z+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/text/Layout;Landroid/text/DynamicLayout;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder; HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V -PLandroid/widget/Editor$EditOperation;->-$$Nest$fputmFrozen(Landroid/widget/Editor$EditOperation;Z)V 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 @@ -20482,10 +19586,7 @@ HSPLandroid/widget/Editor$EditOperation;->mergeReplaceWith(Landroid/widget/Edito HSPLandroid/widget/Editor$EditOperation;->mergeWith(Landroid/widget/Editor$EditOperation;)Z HSPLandroid/widget/Editor$EditOperation;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/widget/Editor$HandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)V -HPLandroid/widget/Editor$HandleView;->dismissMagnifier()V HSPLandroid/widget/Editor$HandleView;->getHorizontal(Landroid/text/Layout;I)F -HPLandroid/widget/Editor$HandleView;->getHorizontalOffset()I -HPLandroid/widget/Editor$HandleView;->getPreferredWidth()I HSPLandroid/widget/Editor$HandleView;->hide()V HSPLandroid/widget/Editor$HandleView;->invalidate()V HSPLandroid/widget/Editor$HandleView;->isAtRtlRun(Landroid/text/Layout;I)Z @@ -20544,17 +19645,11 @@ HSPLandroid/widget/Editor$UndoInputFilter;->beginBatchEdit()V HSPLandroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z HSPLandroid/widget/Editor$UndoInputFilter;->endBatchEdit()V HSPLandroid/widget/Editor$UndoInputFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; -PLandroid/widget/Editor$UndoInputFilter;->freezeLastEdit()V -PLandroid/widget/Editor$UndoInputFilter;->getLastEdit()Landroid/widget/Editor$EditOperation; HSPLandroid/widget/Editor$UndoInputFilter;->handleEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;IIZ)V HSPLandroid/widget/Editor$UndoInputFilter;->recordEdit(Landroid/widget/Editor$EditOperation;I)V HSPLandroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Parcel;)V HSPLandroid/widget/Editor$UndoInputFilter;->saveInstanceState(Landroid/os/Parcel;)V -HPLandroid/widget/Editor;->-$$Nest$fgetmMagnifierAnimator(Landroid/widget/Editor;)Landroid/widget/Editor$MagnifierMotionAnimator; HSPLandroid/widget/Editor;->-$$Nest$fgetmTextView(Landroid/widget/Editor;)Landroid/widget/TextView; -PLandroid/widget/Editor;->-$$Nest$fgetmUndoManager(Landroid/widget/Editor;)Landroid/content/UndoManager; -PLandroid/widget/Editor;->-$$Nest$fgetmUndoOwner(Landroid/widget/Editor;)Landroid/content/UndoOwner; -PLandroid/widget/Editor;->-$$Nest$fputmCorrectionHighlighter(Landroid/widget/Editor;Landroid/widget/Editor$CorrectionHighlighter;)V 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 @@ -20596,7 +19691,6 @@ HSPLandroid/widget/Editor;->loadHandleDrawables(Z)V HSPLandroid/widget/Editor;->makeBlink()V HSPLandroid/widget/Editor;->maybeFireScheduledRestartInputForSetText()V HSPLandroid/widget/Editor;->onAttachedToWindow()V -PLandroid/widget/Editor;->onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V HSPLandroid/widget/Editor;->onDetachedFromWindow()V HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V HSPLandroid/widget/Editor;->onFocusChanged(ZI)V @@ -20717,12 +19811,6 @@ HSPLandroid/widget/GridLayout;->setRowCount(I)V HSPLandroid/widget/GridLayout;->setRowOrderPreserved(Z)V HSPLandroid/widget/GridLayout;->setUseDefaultMargins(Z)V HSPLandroid/widget/GridLayout;->validateLayoutParams()V -HSPLandroid/widget/HeaderViewListAdapter;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V -HSPLandroid/widget/HeaderViewListAdapter;->areAllListInfosSelectable(Ljava/util/ArrayList;)Z -HSPLandroid/widget/HeaderViewListAdapter;->getCount()I -HSPLandroid/widget/HeaderViewListAdapter;->getFootersCount()I -HSPLandroid/widget/HeaderViewListAdapter;->getHeadersCount()I -HSPLandroid/widget/HeaderViewListAdapter;->hasStableIds()Z HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/HorizontalScrollView$SavedState; HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/widget/HorizontalScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V @@ -20868,7 +19956,6 @@ HSPLandroid/widget/ListPopupWindow;->setPromptPosition(I)V HSPLandroid/widget/ListPopupWindow;->setPromptView(Landroid/view/View;)V HSPLandroid/widget/ListPopupWindow;->setSoftInputMode(I)V HSPLandroid/widget/ListPopupWindow;->setWidth(I)V -HSPLandroid/widget/ListView$FixedViewInfo;-><init>(Landroid/widget/ListView;)V HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V @@ -20903,11 +19990,8 @@ HSPLandroid/widget/ListView;->resetList()V HSPLandroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V HSPLandroid/widget/ListView;->setCacheColorHint(I)V HSPLandroid/widget/ListView;->setDivider(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ListView;->setDividerHeight(I)V HSPLandroid/widget/ListView;->setSelection(I)V HSPLandroid/widget/ListView;->setupChild(Landroid/view/View;IIZIZZ)V -HSPLandroid/widget/ListView;->trackMotionScroll(II)Z -HSPLandroid/widget/ListView;->wrapHeaderListAdapterInternal(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)Landroid/widget/HeaderViewListAdapter; HSPLandroid/widget/OverScroller$SplineOverScroller;-><init>(Landroid/content/Context;)V HSPLandroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V HSPLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z @@ -20936,34 +20020,15 @@ HSPLandroid/widget/OverScroller;->getFinalX()I HSPLandroid/widget/OverScroller;->getFinalY()I HSPLandroid/widget/OverScroller;->isFinished()Z HSPLandroid/widget/OverScroller;->springBack(IIIIII)Z -HSPLandroid/widget/OverScroller;->startScroll(IIII)V HSPLandroid/widget/OverScroller;->startScroll(IIIII)V -HSPLandroid/widget/PopupWindow$3;->onTransitionEnd(Landroid/transition/Transition;)V HSPLandroid/widget/PopupWindow$PopupBackgroundView;->onCreateDrawableState(I)[I -HSPLandroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda1;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition$TransitionListener;Landroid/transition/Transition;Landroid/view/View;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda1;->run()V -HSPLandroid/widget/PopupWindow$PopupDecorView$1$1;-><init>(Landroid/widget/PopupWindow$PopupDecorView$1;Landroid/graphics/Rect;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$1$1;->onGetEpicenter(Landroid/transition/Transition;)Landroid/graphics/Rect; -HSPLandroid/widget/PopupWindow$PopupDecorView$1;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$1;->onGlobalLayout()V -HSPLandroid/widget/PopupWindow$PopupDecorView$2;-><init>(Landroid/widget/PopupWindow$PopupDecorView;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$2;->onTransitionEnd(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$3;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/graphics/Rect;)V -HSPLandroid/widget/PopupWindow$PopupDecorView;->-$$Nest$fgetmCleanupAfterExit(Landroid/widget/PopupWindow$PopupDecorView;)Ljava/lang/Runnable; -HSPLandroid/widget/PopupWindow$PopupDecorView;->-$$Nest$mstartEnterTransition(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition;)V HSPLandroid/widget/PopupWindow$PopupDecorView;->cancelTransitions()V HSPLandroid/widget/PopupWindow$PopupDecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/PopupWindow$PopupDecorView;->lambda$startExitTransition$0$android-widget-PopupWindow$PopupDecorView(Landroid/transition/Transition$TransitionListener;Landroid/transition/Transition;Landroid/view/View;)V HSPLandroid/widget/PopupWindow$PopupDecorView;->onAttachedToWindow()V HSPLandroid/widget/PopupWindow$PopupDecorView;->onDetachedFromWindow()V -HSPLandroid/widget/PopupWindow$PopupDecorView;->requestEnterTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView;->startEnterTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView;->startExitTransition(Landroid/transition/Transition;Landroid/view/View;Landroid/graphics/Rect;Landroid/transition/Transition$TransitionListener;)V -HSPLandroid/widget/PopupWindow;->-$$Nest$mdismissImmediate(Landroid/widget/PopupWindow;Landroid/view/View;Landroid/view/ViewGroup;Landroid/view/View;)V HSPLandroid/widget/PopupWindow;->-$$Nest$munregisterBackCallback(Landroid/widget/PopupWindow;Landroid/window/OnBackInvokedDispatcher;)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;II)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;IIZ)V HSPLandroid/widget/PopupWindow;->attachToAnchor(Landroid/view/View;III)V @@ -20973,7 +20038,6 @@ HSPLandroid/widget/PopupWindow;->createDecorView(Landroid/view/View;)Landroid/wi HSPLandroid/widget/PopupWindow;->createPopupLayoutParams(Landroid/os/IBinder;)Landroid/view/WindowManager$LayoutParams; HSPLandroid/widget/PopupWindow;->detachFromAnchor()V HSPLandroid/widget/PopupWindow;->dismiss()V -HSPLandroid/widget/PopupWindow;->dismissImmediate(Landroid/view/View;Landroid/view/ViewGroup;Landroid/view/View;)V HSPLandroid/widget/PopupWindow;->findDropDownPosition(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z HSPLandroid/widget/PopupWindow;->getAnchor()Landroid/view/View; HSPLandroid/widget/PopupWindow;->getAppRootView(Landroid/view/View;)Landroid/view/View; @@ -20981,29 +20045,21 @@ HSPLandroid/widget/PopupWindow;->getBackground()Landroid/graphics/drawable/Drawa HSPLandroid/widget/PopupWindow;->getContentView()Landroid/view/View; HSPLandroid/widget/PopupWindow;->getDecorViewLayoutParams()Landroid/view/WindowManager$LayoutParams; HSPLandroid/widget/PopupWindow;->getHeight()I -HSPLandroid/widget/PopupWindow;->getInputMethodMode()I -HSPLandroid/widget/PopupWindow;->getMaxAvailableHeight(Landroid/view/View;IZ)I HSPLandroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition; -HSPLandroid/widget/PopupWindow;->getTransitionEpicenter()Landroid/graphics/Rect; HSPLandroid/widget/PopupWindow;->getWidth()I HSPLandroid/widget/PopupWindow;->hasContentView()Z -HSPLandroid/widget/PopupWindow;->hasDecorView()Z HSPLandroid/widget/PopupWindow;->invokePopup(Landroid/view/WindowManager$LayoutParams;)V HSPLandroid/widget/PopupWindow;->isShowing()Z HSPLandroid/widget/PopupWindow;->isSplitTouchEnabled()Z HSPLandroid/widget/PopupWindow;->preparePopup(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/widget/PopupWindow;->setAnimationStyle(I)V HSPLandroid/widget/PopupWindow;->setAttachedInDecor(Z)V HSPLandroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/PopupWindow;->setClippingEnabled(Z)V HSPLandroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V HSPLandroid/widget/PopupWindow;->setEnterTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow;->setEpicenterBounds(Landroid/graphics/Rect;)V HSPLandroid/widget/PopupWindow;->setExitTransition(Landroid/transition/Transition;)V HSPLandroid/widget/PopupWindow;->setFocusable(Z)V HSPLandroid/widget/PopupWindow;->setHeight(I)V HSPLandroid/widget/PopupWindow;->setInputMethodMode(I)V -HSPLandroid/widget/PopupWindow;->setIsClippedToScreen(Z)V HSPLandroid/widget/PopupWindow;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V HSPLandroid/widget/PopupWindow;->setOutsideTouchable(Z)V HSPLandroid/widget/PopupWindow;->setSoftInputMode(I)V @@ -21021,8 +20077,6 @@ HSPLandroid/widget/PopupWindow;->update(IIIIZ)V HSPLandroid/widget/PopupWindow;->update(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V HSPLandroid/widget/PopupWindow;->updateAboveAnchor(Z)V HSPLandroid/widget/ProgressBar$2;-><init>(Landroid/widget/ProgressBar;Ljava/lang/String;)V -HSPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>()V -HSPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>(Landroid/widget/ProgressBar$ProgressTintInfo-IA;)V HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/ProgressBar$SavedState; HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/widget/ProgressBar$SavedState;->writeToParcel(Landroid/os/Parcel;I)V @@ -21033,7 +20087,6 @@ HSPLandroid/widget/ProgressBar;->applyIndeterminateTint()V HSPLandroid/widget/ProgressBar;->applyPrimaryProgressTint()V HSPLandroid/widget/ProgressBar;->applyProgressBackgroundTint()V HSPLandroid/widget/ProgressBar;->applyProgressTints()V -HSPLandroid/widget/ProgressBar;->applySecondaryProgressTint()V HSPLandroid/widget/ProgressBar;->doRefreshProgress(IIZZZ)V HSPLandroid/widget/ProgressBar;->drawTrack(Landroid/graphics/Canvas;)V HSPLandroid/widget/ProgressBar;->drawableHotspotChanged(FF)V @@ -21072,7 +20125,6 @@ HSPLandroid/widget/ProgressBar;->setMin(I)V HSPLandroid/widget/ProgressBar;->setProgress(I)V HSPLandroid/widget/ProgressBar;->setProgressDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/widget/ProgressBar;->setProgressInternal(IZZ)Z -HSPLandroid/widget/ProgressBar;->setProgressTintList(Landroid/content/res/ColorStateList;)V HSPLandroid/widget/ProgressBar;->setSecondaryProgress(I)V HSPLandroid/widget/ProgressBar;->setVisualProgress(IF)V HSPLandroid/widget/ProgressBar;->startAnimation()V @@ -21136,7 +20188,6 @@ HSPLandroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;L HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z HSPLandroid/widget/RelativeLayout;->queryCompatibilityModes(Landroid/content/Context;)V HSPLandroid/widget/RelativeLayout;->requestLayout()V -HSPLandroid/widget/RelativeLayout;->setGravity(I)V HSPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z HSPLandroid/widget/RelativeLayout;->sortChildren()V HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/RemoteViews; @@ -21176,18 +20227,11 @@ HSPLandroid/widget/RemoteViews$SetOnClickResponse;->getActionTag()I HSPLandroid/widget/RemoteViews$SetOnClickResponse;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/widget/RemoteViews$TextViewSizeAction;->getActionTag()I HSPLandroid/widget/RemoteViews$TextViewSizeAction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;Landroid/content/pm/ApplicationInfo;I)V+]Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;->setHierarchyRootData(Landroid/widget/RemoteViews$HierarchyRootData;)V -HSPLandroid/widget/RemoteViews;->-$$Nest$fgetmApplyFlags(Landroid/widget/RemoteViews;)I -HSPLandroid/widget/RemoteViews;->-$$Nest$mconfigureAsChild(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews$HierarchyRootData;)V -HSPLandroid/widget/RemoteViews;->-$$Nest$mgetHierarchyRootData(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews$HierarchyRootData; HSPLandroid/widget/RemoteViews;->-$$Nest$smgetPackageUserKey(Landroid/content/pm/ApplicationInfo;)Landroid/util/Pair; HSPLandroid/widget/RemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$HierarchyRootData;Landroid/content/pm/ApplicationInfo;I)V -HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$HierarchyRootData;Landroid/content/pm/ApplicationInfo;ILandroid/widget/RemoteViews-IA;)V HSPLandroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V HSPLandroid/widget/RemoteViews;->addAction(Landroid/widget/RemoteViews$Action;)V -HSPLandroid/widget/RemoteViews;->addFlags(I)V HSPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View; HSPLandroid/widget/RemoteViews;->configureAsChild(Landroid/widget/RemoteViews$HierarchyRootData;)V HSPLandroid/widget/RemoteViews;->configureDescendantsAsChildren()V @@ -21267,7 +20311,6 @@ HSPLandroid/widget/ScrollView;->shouldDisplayEdgeEffects()Z HSPLandroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->getInterpolation(F)F HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->viscousFluid(F)F -HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;)V HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V HSPLandroid/widget/Scroller;->abortAnimation()V @@ -21298,33 +20341,21 @@ HSPLandroid/widget/Space;->draw(Landroid/graphics/Canvas;)V HSPLandroid/widget/Space;->getDefaultSize2(II)I HSPLandroid/widget/Space;->onMeasure(II)V HSPLandroid/widget/SpellChecker$1;->run()V -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->following(I)I+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper; -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->isBoundary(I)Z+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper; -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->preceding(I)I+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper; -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->setCharSequence(Ljava/lang/CharSequence;II)V+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder; HSPLandroid/widget/SpellChecker$SpellParser;->isFinished()Z HSPLandroid/widget/SpellChecker$SpellParser;->parse()V -HSPLandroid/widget/SpellChecker$SpellParser;->parse(IIZ)V+]Landroid/widget/SpellChecker$SpellParser;Landroid/widget/SpellChecker$SpellParser; -HSPLandroid/widget/SpellChecker$SpellParser;->setRangeSpan(Landroid/text/Editable;II)V HSPLandroid/widget/SpellChecker$SpellParser;->stop()V -HSPLandroid/widget/SpellChecker;->-$$Nest$fgetmTextView(Landroid/widget/SpellChecker;)Landroid/widget/TextView; HSPLandroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V HSPLandroid/widget/SpellChecker;->closeSession()V -HSPLandroid/widget/SpellChecker;->detectSentenceBoundary(Ljava/lang/CharSequence;II)Landroid/util/Range;+]Landroid/widget/SpellChecker$SentenceIteratorWrapper;Landroid/widget/SpellChecker$SentenceIteratorWrapper;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder; -HSPLandroid/widget/SpellChecker;->findSeparator(Ljava/lang/CharSequence;II)I -HSPLandroid/widget/SpellChecker;->isSeparator(I)Z HSPLandroid/widget/SpellChecker;->isSessionActive()Z HSPLandroid/widget/SpellChecker;->nextSpellCheckSpanIndex()I HSPLandroid/widget/SpellChecker;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V HSPLandroid/widget/SpellChecker;->onGetSuggestionsInternal(Landroid/view/textservice/SuggestionsInfo;II)Landroid/text/style/SpellCheckSpan; HSPLandroid/widget/SpellChecker;->onSpellCheckSpanRemoved(Landroid/text/style/SpellCheckSpan;)V -HSPLandroid/widget/SpellChecker;->removeErrorSuggestionSpan(Landroid/text/Editable;IILandroid/widget/SpellChecker$RemoveReason;)Z HSPLandroid/widget/SpellChecker;->resetSession()V HSPLandroid/widget/SpellChecker;->setLocale(Ljava/util/Locale;)V HSPLandroid/widget/SpellChecker;->spellCheck()V HSPLandroid/widget/SpellChecker;->spellCheck(II)V HSPLandroid/widget/SpellChecker;->spellCheck(IIZ)V -HSPLandroid/widget/SpellChecker;->spellCheck(Z)V+]Landroid/view/textservice/SpellCheckerSession;Landroid/view/textservice/SpellCheckerSession;]Landroid/text/style/SpellCheckSpan;Landroid/text/style/SpellCheckSpan;]Landroid/text/Editable;Landroid/text/SpannableStringBuilder; HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IIILandroid/content/res/Resources$Theme;)V HSPLandroid/widget/Spinner;->onDetachedFromWindow()V @@ -21442,7 +20473,6 @@ HSPLandroid/widget/TextView;->getLineSpacingMultiplier()F HSPLandroid/widget/TextView;->getMaxEms()I HSPLandroid/widget/TextView;->getMaxLines()I HSPLandroid/widget/TextView;->getMinEms()I -HSPLandroid/widget/TextView;->getMinHeight()I HSPLandroid/widget/TextView;->getMinWidth()I HSPLandroid/widget/TextView;->getOffsetAtCoordinate(IF)I HSPLandroid/widget/TextView;->getOffsetForPosition(FF)I @@ -21507,7 +20537,6 @@ HSPLandroid/widget/TextView;->nullLayouts()V HSPLandroid/widget/TextView;->onAttachedToWindow()V HSPLandroid/widget/TextView;->onBeginBatchEdit()V HSPLandroid/widget/TextView;->onCheckIsTextEditor()Z -PLandroid/widget/TextView;->onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V HSPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Configuration;)V HSPLandroid/widget/TextView;->onCreateDrawableState(I)[I HSPLandroid/widget/TextView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection; @@ -21655,11 +20684,7 @@ HSPLandroid/widget/TextViewOnReceiveContentListener;->clearInputConnectionInfo() HSPLandroid/widget/TextViewOnReceiveContentListener;->getFallbackMimeTypesForAutofill(Landroid/widget/TextView;)[Ljava/lang/String; HSPLandroid/widget/TextViewOnReceiveContentListener;->isUsageOfImeCommitContentEnabled(Landroid/view/View;)Z HSPLandroid/widget/TextViewOnReceiveContentListener;->setInputConnectionInfo(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V -PLandroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda0;->run()V -HSPLandroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda1;->run()V HSPLandroid/widget/Toast$CallbackBinder;->getCallbacks()Ljava/util/List; -PLandroid/widget/Toast$CallbackBinder;->lambda$onToastHidden$1$android-widget-Toast$CallbackBinder()V -HSPLandroid/widget/Toast$CallbackBinder;->lambda$onToastShown$0$android-widget-Toast$CallbackBinder()V HSPLandroid/widget/Toast$CallbackBinder;->onToastHidden()V HSPLandroid/widget/Toast$CallbackBinder;->onToastShown()V HSPLandroid/widget/Toast$TN;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Binder;Ljava/util/List;Landroid/os/Looper;)V @@ -21762,26 +20787,19 @@ HSPLandroid/window/ProxyOnBackInvokedDispatcher;->unregisterOnBackInvokedCallbac HSPLandroid/window/SizeConfigurationBuckets$1;-><init>()V HSPLandroid/window/SizeConfigurationBuckets;-><clinit>()V HSPLandroid/window/SizeConfigurationBuckets;-><init>([Landroid/content/res/Configuration;)V -HSPLandroid/window/SizeConfigurationBuckets;->areNonSizeLayoutFieldsUnchanged(II)Z -HSPLandroid/window/SizeConfigurationBuckets;->filterDiff(ILandroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/window/SizeConfigurationBuckets;)I HSPLandroid/window/SizeConfigurationBuckets;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0;-><init>(Landroid/window/SurfaceSyncGroup;Ljava/util/function/Consumer;)V HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLandroid/window/SurfaceSyncGroup$1;-><init>(Landroid/window/SurfaceSyncGroup;)V HSPLandroid/window/SurfaceSyncGroup$1;->onBufferReady(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/window/SurfaceSyncGroup$SyncTarget;->onSyncComplete()V HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmLock(Landroid/window/SurfaceSyncGroup;)Ljava/lang/Object; HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmPendingSyncs(Landroid/window/SurfaceSyncGroup;)Ljava/util/Set; HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmTransaction(Landroid/window/SurfaceSyncGroup;)Landroid/view/SurfaceControl$Transaction; HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$mcheckIfSyncIsComplete(Landroid/window/SurfaceSyncGroup;)V HSPLandroid/window/SurfaceSyncGroup;-><clinit>()V -HSPLandroid/window/SurfaceSyncGroup;-><init>()V HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/util/function/Consumer;)V+]Ljava/util/function/Supplier;Landroid/view/InsetsController$$ExternalSyntheticLambda4; HSPLandroid/window/SurfaceSyncGroup;->addToSync(Landroid/window/SurfaceSyncGroup$SyncTarget;)Z -HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V -HSPLandroid/window/SurfaceSyncGroup;->lambda$new$0(Landroid/view/SurfaceControl$Transaction;)V +HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V+]Landroid/window/SurfaceSyncGroup$SyncTarget;Landroid/view/ViewRootImpl$9;,Landroid/view/SurfaceView$$ExternalSyntheticLambda0;]Ljava/util/function/Consumer;Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/ArraySet; HSPLandroid/window/SurfaceSyncGroup;->lambda$new$1$android-window-SurfaceSyncGroup(Ljava/util/function/Consumer;Landroid/view/SurfaceControl$Transaction;)V HSPLandroid/window/SurfaceSyncGroup;->markSyncReady()V HSPLandroid/window/TaskAppearedInfo;-><init>(Landroid/app/ActivityManager$RunningTaskInfo;Landroid/view/SurfaceControl;)V @@ -21790,7 +20808,6 @@ HSPLandroid/window/TaskSnapshot;->getColorSpace()Landroid/graphics/ColorSpace; HSPLandroid/window/TaskSnapshot;->getContentInsets()Landroid/graphics/Rect; HSPLandroid/window/TaskSnapshot;->getHardwareBuffer()Landroid/hardware/HardwareBuffer; HSPLandroid/window/TaskSnapshot;->getId()J -HSPLandroid/window/TaskSnapshot;->getLetterboxInsets()Landroid/graphics/Rect; HSPLandroid/window/TaskSnapshot;->getOrientation()I HSPLandroid/window/TaskSnapshot;->getRotation()I HSPLandroid/window/TaskSnapshot;->getTaskSize()Landroid/graphics/Point; @@ -21801,7 +20818,6 @@ HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel; HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/window/WindowContainerToken;-><init>(Landroid/os/Parcel;)V HSPLandroid/window/WindowContainerToken;->asBinder()Landroid/os/IBinder; -HSPLandroid/window/WindowContainerToken;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/window/WindowContext;-><init>(Landroid/content/Context;ILandroid/os/Bundle;)V HSPLandroid/window/WindowContext;->attachToDisplayArea()V HSPLandroid/window/WindowContext;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V @@ -21809,7 +20825,6 @@ HSPLandroid/window/WindowContext;->getSystemService(Ljava/lang/String;)Ljava/lan HSPLandroid/window/WindowContext;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V HSPLandroid/window/WindowContextController;-><init>(Landroid/window/WindowTokenClient;)V HSPLandroid/window/WindowContextController;->attachToDisplayArea(IILandroid/os/Bundle;)V -HSPLandroid/window/WindowContextController;->detachIfNeeded()V HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;-><init>(Z)V HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->checkApplicationCallbackRegistration(ILandroid/window/OnBackInvokedCallback;)Z HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0;-><init>(Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;)V @@ -21848,7 +20863,6 @@ HSPLandroid/window/WindowTokenClient;-><clinit>()V HSPLandroid/window/WindowTokenClient;-><init>()V HSPLandroid/window/WindowTokenClient;->attachContext(Landroid/content/Context;)V HSPLandroid/window/WindowTokenClient;->attachToDisplayArea(IILandroid/os/Bundle;)Z -HSPLandroid/window/WindowTokenClient;->detachFromWindowContainerIfNeeded()V HSPLandroid/window/WindowTokenClient;->getWindowManagerService()Landroid/view/IWindowManager; HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;I)V HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;IZ)V @@ -21916,7 +20930,6 @@ HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;-><init>()V HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getCountryCode()I HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getFixedLine()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getGeneralDesc()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getId()Ljava/lang/String; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getInternationalPrefix()Ljava/lang/String; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getIntlNumberFormatList()Ljava/util/List; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getLeadingDigits()Ljava/lang/String; @@ -21982,7 +20995,6 @@ HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCode(I)Lco HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCodeSource(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setNationalNumber(J)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setRawInput(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/internal/GeoEntityUtility;->isGeoEntity(Ljava/lang/String;)Z HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->match(Ljava/lang/CharSequence;Ljava/util/regex/Pattern;Z)Z HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z @@ -21990,21 +21002,6 @@ HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->get(Ljava/lang/ HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/i18n/phonenumbers/internal/RegexCache;-><init>(I)V HSPLcom/android/i18n/phonenumbers/internal/RegexCache;->getPatternForRegex(Ljava/lang/String;)Ljava/util/regex/Pattern; -HSPLcom/android/i18n/phonenumbers/metadata/init/ClassPathResourceMetadataLoader;->loadMetadata(Ljava/lang/String;)Ljava/io/InputStream; -HSPLcom/android/i18n/phonenumbers/metadata/init/MetadataParser;->close(Ljava/io/InputStream;)V -HSPLcom/android/i18n/phonenumbers/metadata/init/MetadataParser;->parse(Ljava/io/InputStream;)Ljava/util/Collection; -HSPLcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;->bootstrapMetadata(Ljava/lang/String;)V -HSPLcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;->getOrBootstrap(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/metadata/source/MetadataContainer;+]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap; -HSPLcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;->read(Ljava/lang/String;)Ljava/util/Collection; -HSPLcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;->accept(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)V -HSPLcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;->getMetadataBy(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$1;->getKeyOf(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Ljava/lang/Object; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$1;->getKeyOf(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;->accept(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)V -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;->getKeyProvider()Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$KeyProvider; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;->getMetadataBy(Ljava/lang/Object;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentHashMap; -HSPLcom/android/i18n/phonenumbers/metadata/source/MetadataSourceImpl;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Lcom/android/i18n/phonenumbers/metadata/source/PhoneMetadataFileNameProvider;Lcom/android/i18n/phonenumbers/metadata/source/MultiFileModeFileNameProvider;]Lcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;Lcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;]Lcom/android/i18n/phonenumbers/metadata/source/MetadataBootstrappingGuard;Lcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard; -HSPLcom/android/i18n/phonenumbers/metadata/source/MultiFileModeFileNameProvider;->getFor(Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern; HSPLcom/android/i18n/system/AppSpecializationHooks;->handleCompatChangesBeforeBindingApplication()V HSPLcom/android/i18n/system/ZygoteHooks;->handleCompatChangesBeforeBindingApplication()V HSPLcom/android/i18n/system/ZygoteHooks;->onEndPreload()V @@ -22175,7 +21172,6 @@ HSPLcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V HSPLcom/android/internal/app/IAppOpsCallback$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperationRaw(IILjava/lang/String;Ljava/lang/String;)I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->extractAsyncOps(Ljava/lang/String;)Ljava/util/List; HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getPackagesForOps([I)Ljava/util/List; @@ -22232,11 +21228,7 @@ HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLcom/android/internal/graphics/ColorUtils;->HSLToColor([F)I HSPLcom/android/internal/graphics/ColorUtils;->RGBToHSL(III[F)V -HSPLcom/android/internal/graphics/ColorUtils;->RGBToXYZ(III[D)V -HSPLcom/android/internal/graphics/ColorUtils;->calculateLuminance(I)D HSPLcom/android/internal/graphics/ColorUtils;->colorToHSL(I[F)V -HSPLcom/android/internal/graphics/ColorUtils;->colorToXYZ(I[D)V -HSPLcom/android/internal/graphics/ColorUtils;->getTempDouble3Array()[D+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;-><init>()V HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->getFrameTime()J HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V @@ -22245,16 +21237,9 @@ HSPLcom/android/internal/graphics/cam/Cam;->fromInt(I)Lcom/android/internal/grap HSPLcom/android/internal/graphics/cam/Cam;->fromIntInFrame(ILcom/android/internal/graphics/cam/Frame;)Lcom/android/internal/graphics/cam/Cam; HSPLcom/android/internal/graphics/cam/Cam;->getChroma()F HSPLcom/android/internal/graphics/cam/Cam;->getHue()F -HSPLcom/android/internal/graphics/cam/Cam;->getInt(FFFLcom/android/internal/graphics/cam/Frame;)I HSPLcom/android/internal/graphics/cam/CamUtils;-><clinit>()V -HSPLcom/android/internal/graphics/cam/CamUtils;->argbFromLinrgbComponents(DDD)I -HSPLcom/android/internal/graphics/cam/CamUtils;->argbFromRgb(III)I -HSPLcom/android/internal/graphics/cam/CamUtils;->clampInt(III)I -HSPLcom/android/internal/graphics/cam/CamUtils;->delinearized(D)I HSPLcom/android/internal/graphics/cam/CamUtils;->linearized(I)F -HSPLcom/android/internal/graphics/cam/CamUtils;->signum(D)I HSPLcom/android/internal/graphics/cam/CamUtils;->xyzFromInt(I)[F -HSPLcom/android/internal/graphics/cam/CamUtils;->yFromLstar(D)D HSPLcom/android/internal/graphics/cam/Frame;-><clinit>()V HSPLcom/android/internal/graphics/cam/Frame;-><init>(FFFFFF[FFFF)V HSPLcom/android/internal/graphics/cam/Frame;->getAw()F @@ -22268,11 +21253,6 @@ HSPLcom/android/internal/graphics/cam/Frame;->getNcb()F HSPLcom/android/internal/graphics/cam/Frame;->getRgbD()[F HSPLcom/android/internal/graphics/cam/Frame;->getZ()F HSPLcom/android/internal/graphics/cam/Frame;->make([FFFFZ)Lcom/android/internal/graphics/cam/Frame; -HSPLcom/android/internal/graphics/cam/HctSolver;-><clinit>()V -HSPLcom/android/internal/graphics/cam/HctSolver;->findResultByJ(DDD)I+]Lcom/android/internal/graphics/cam/Frame;Lcom/android/internal/graphics/cam/Frame; -HSPLcom/android/internal/graphics/cam/HctSolver;->inverseChromaticAdaptation(D)D -HSPLcom/android/internal/graphics/cam/HctSolver;->sanitizeDegreesDouble(D)D -HSPLcom/android/internal/graphics/cam/HctSolver;->solveToInt(DDD)I HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;Landroid/content/res/Resources;)V HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->addDrawable(Landroid/graphics/drawable/Drawable;)I HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->canApplyTheme()Z @@ -22309,20 +21289,17 @@ HSPLcom/android/internal/infra/IAndroidFuture$Stub;->onTransact(ILandroid/os/Par HSPLcom/android/internal/inputmethod/EditableInputConnection;-><init>(Landroid/widget/TextView;)V HSPLcom/android/internal/inputmethod/EditableInputConnection;->beginBatchEdit()Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->closeConnection()V -PLcom/android/internal/inputmethod/EditableInputConnection;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->commitText(Ljava/lang/CharSequence;I)Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->endBatchEdit()Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->endComposingRegionEditInternal()V HSPLcom/android/internal/inputmethod/EditableInputConnection;->getEditable()Landroid/text/Editable; HSPLcom/android/internal/inputmethod/EditableInputConnection;->setImeConsumesInput(Z)Z HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->finishInput()V HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->viewClicked(Z)V HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/inputmethod/IInputMethodSession; HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;-><init>()V HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;->asBinder()Landroid/os/IBinder; @@ -22374,7 +21351,7 @@ HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onComple 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+]Ljava/util/concurrent/Executor;Landroid/os/HandlerExecutor;]Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Landroid/location/LocationManager$LocationListenerTransport$1;]Ljava/util/function/Supplier;Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2; +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;]Ljava/util/function/Supplier;Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2; 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; @@ -22413,31 +21390,17 @@ HSPLcom/android/internal/os/BackgroundThread;-><init>()V HSPLcom/android/internal/os/BackgroundThread;->ensureThreadLocked()V HSPLcom/android/internal/os/BackgroundThread;->getExecutor()Ljava/util/concurrent/Executor; HSPLcom/android/internal/os/BackgroundThread;->getHandler()Landroid/os/Handler; -HSPLcom/android/internal/os/BinderCallsStats$1;-><init>(Lcom/android/internal/os/BinderCallsStats;)V -HSPLcom/android/internal/os/BinderCallsStats$Injector;-><init>()V -HSPLcom/android/internal/os/BinderCallsStats$Injector;->getHandler()Landroid/os/Handler; -HSPLcom/android/internal/os/BinderCallsStats$Injector;->getLatencyObserver(I)Lcom/android/internal/os/BinderLatencyObserver; -HSPLcom/android/internal/os/BinderCallsStats$Injector;->getRandomGenerator()Ljava/util/Random; HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;-><init>(Landroid/content/Context;Lcom/android/internal/os/BinderCallsStats;)V HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->configureLatencyObserver(Landroid/util/KeyValueListParser;Lcom/android/internal/os/BinderLatencyObserver;)V HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->onChange()V -HSPLcom/android/internal/os/BinderCallsStats;-><init>(Lcom/android/internal/os/BinderCallsStats$Injector;I)V HSPLcom/android/internal/os/BinderCallsStats;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V HSPLcom/android/internal/os/BinderCallsStats;->callStarted(Landroid/os/Binder;II)Lcom/android/internal/os/BinderInternal$CallSession; HSPLcom/android/internal/os/BinderCallsStats;->canCollect()Z+]Lcom/android/internal/os/CachedDeviceState$Readonly;Lcom/android/internal/os/CachedDeviceState$Readonly; HSPLcom/android/internal/os/BinderCallsStats;->getElapsedRealtimeMicro()J -HSPLcom/android/internal/os/BinderCallsStats;->getLatencyObserver()Lcom/android/internal/os/BinderLatencyObserver; HSPLcom/android/internal/os/BinderCallsStats;->getNativeTid()I HSPLcom/android/internal/os/BinderCallsStats;->noteBinderThreadNativeIds()V HSPLcom/android/internal/os/BinderCallsStats;->noteNativeThreadId()V+]Landroid/util/IntArray;Landroid/util/IntArray;]Lcom/android/internal/os/BinderCallsStats;Lcom/android/internal/os/BinderCallsStats; -HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V+]Lcom/android/internal/os/BinderCallsStats$UidEntry;Lcom/android/internal/os/BinderCallsStats$UidEntry;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/internal/os/BinderCallsStats;Lcom/android/internal/os/BinderCallsStats;]Lcom/android/internal/os/BinderLatencyObserver;Lcom/android/internal/os/BinderLatencyObserver; -HSPLcom/android/internal/os/BinderCallsStats;->reset()V -HSPLcom/android/internal/os/BinderCallsStats;->setAddDebugEntries(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setCollectLatencyData(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setDetailedTracking(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setIgnoreBatteryStatus(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setTrackDirectCallerUid(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setTrackScreenInteractive(Z)V +HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V+]Lcom/android/internal/os/BinderLatencyObserver;Lcom/android/internal/os/BinderLatencyObserver;]Lcom/android/internal/os/BinderCallsStats$UidEntry;Lcom/android/internal/os/BinderCallsStats$UidEntry;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/internal/os/BinderCallsStats;Lcom/android/internal/os/BinderCallsStats; HSPLcom/android/internal/os/BinderCallsStats;->shouldRecordDetailedData()Z+]Ljava/util/Random;Ljava/util/Random; HSPLcom/android/internal/os/BinderDeathDispatcher;->linkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)I HSPLcom/android/internal/os/BinderInternal$GcWatcher;-><init>()V @@ -22448,7 +21411,6 @@ HSPLcom/android/internal/os/BinderInternal;->forceGc(Ljava/lang/String;)V HSPLcom/android/internal/os/BinderLatencyBuckets;-><init>(IIF)V HSPLcom/android/internal/os/BinderLatencyBuckets;->sampleToBucket(I)I HSPLcom/android/internal/os/BinderLatencyObserver$1;-><init>(Lcom/android/internal/os/BinderLatencyObserver;)V -HPLcom/android/internal/os/BinderLatencyObserver$1;->run()V HSPLcom/android/internal/os/BinderLatencyObserver$Injector;-><init>()V HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getHandler()Landroid/os/Handler; HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getRandomGenerator()Ljava/util/Random; @@ -22458,15 +21420,9 @@ HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->equals(Ljava/lan HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getBinderClass()Ljava/lang/Class; HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getTransactionCode()I HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->hashCode()I+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Class;Ljava/lang/Class; -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$fgetmLatencyHistograms(Lcom/android/internal/os/BinderLatencyObserver;)Landroid/util/ArrayMap; -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$fgetmLock(Lcom/android/internal/os/BinderLatencyObserver;)Ljava/lang/Object; -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$mfillApiStatsProto(Lcom/android/internal/os/BinderLatencyObserver;Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Ljava/lang/String;[I)V -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$mnoteLatencyDelayed(Lcom/android/internal/os/BinderLatencyObserver;)V HSPLcom/android/internal/os/BinderLatencyObserver;-><init>(Lcom/android/internal/os/BinderLatencyObserver$Injector;I)V HSPLcom/android/internal/os/BinderLatencyObserver;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/internal/os/BinderLatencyBuckets;Lcom/android/internal/os/BinderLatencyBuckets;]Lcom/android/internal/os/BinderLatencyObserver;Lcom/android/internal/os/BinderLatencyObserver; -HPLcom/android/internal/os/BinderLatencyObserver;->fillApiStatsProto(Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Ljava/lang/String;[I)V+]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream;]Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;]Ljava/lang/Class;Ljava/lang/Class; HSPLcom/android/internal/os/BinderLatencyObserver;->getElapsedRealtimeMicro()J -PLcom/android/internal/os/BinderLatencyObserver;->getMaxAtomSizeBytes()I HSPLcom/android/internal/os/BinderLatencyObserver;->noteLatencyDelayed()V HSPLcom/android/internal/os/BinderLatencyObserver;->reset()V HSPLcom/android/internal/os/BinderLatencyObserver;->setHistogramBucketsParams(IIF)V @@ -22475,10 +21431,6 @@ HSPLcom/android/internal/os/BinderLatencyObserver;->setSamplingInterval(I)V HSPLcom/android/internal/os/BinderLatencyObserver;->setShardingModulo(I)V HSPLcom/android/internal/os/BinderLatencyObserver;->shouldCollect(Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;)Z+]Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims; HSPLcom/android/internal/os/BinderLatencyObserver;->shouldKeepSample()Z+]Ljava/util/Random;Ljava/util/Random; -PLcom/android/internal/os/BinderLatencyObserver;->writeAtomToStatsd(Landroid/util/proto/ProtoOutputStream;)V -PLcom/android/internal/os/BinderTransactionNameResolver;-><init>()V -HPLcom/android/internal/os/BinderTransactionNameResolver;->getMethodName(Ljava/lang/Class;I)Ljava/lang/String; -PLcom/android/internal/os/BinderTransactionNameResolver;->noDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/os/CachedDeviceState$Readonly;->isCharging()Z HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;IZLjava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; @@ -22498,7 +21450,6 @@ HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundl HSPLcom/android/internal/os/IResultReceiver$Stub;-><init>()V HSPLcom/android/internal/os/IResultReceiver$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/os/IResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IResultReceiver; -HSPLcom/android/internal/os/IResultReceiver$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/os/IResultReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->nextLine()Ljava/nio/CharBuffer; HSPLcom/android/internal/os/KernelCpuProcStringReader;->asLongs(Ljava/nio/CharBuffer;[J)I @@ -22747,7 +21698,6 @@ HSPLcom/android/internal/policy/PhoneWindow;->generateDecor(I)Lcom/android/inter HSPLcom/android/internal/policy/PhoneWindow;->generateLayout(Lcom/android/internal/policy/DecorView;)Landroid/view/ViewGroup; HSPLcom/android/internal/policy/PhoneWindow;->getCurrentFocus()Landroid/view/View; HSPLcom/android/internal/policy/PhoneWindow;->getDecorView()Landroid/view/View; -HSPLcom/android/internal/policy/PhoneWindow;->getInsetsController()Landroid/view/WindowInsetsController; HSPLcom/android/internal/policy/PhoneWindow;->getLayoutInflater()Landroid/view/LayoutInflater; HSPLcom/android/internal/policy/PhoneWindow;->getNavigationBarColor()I HSPLcom/android/internal/policy/PhoneWindow;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher; @@ -22791,7 +21741,6 @@ HSPLcom/android/internal/policy/PhoneWindow;->setTitleColor(I)V HSPLcom/android/internal/policy/PhoneWindow;->setVolumeControlStream(I)V HSPLcom/android/internal/policy/PhoneWindow;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z HSPLcom/android/internal/policy/PhoneWindow;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLcom/android/internal/policy/ScreenDecorationsUtils;->getWindowCornerRadius(Landroid/content/Context;)F HSPLcom/android/internal/policy/ScreenDecorationsUtils;->supportsRoundedCornersOnWindows(Landroid/content/res/Resources;)Z HSPLcom/android/internal/protolog/BaseProtoLogImpl;-><init>(Ljava/io/File;Ljava/lang/String;ILcom/android/internal/protolog/ProtoLogViewerConfigReader;)V HSPLcom/android/internal/protolog/BaseProtoLogImpl;->addLogGroupEnum([Lcom/android/internal/protolog/common/IProtoLogGroup;)V @@ -22805,12 +21754,9 @@ HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid HSPLcom/android/internal/statusbar/NotificationVisibility;->recycle()V HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallCapablePhoneAccounts(ZLjava/lang/String;Ljava/lang/String;)Landroid/content/pm/ParceledListSlice; HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallStateUsingPackage(Ljava/lang/String;Ljava/lang/String;)I HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCurrentTtyMode(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultDialerPackage(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Landroid/telecom/PhoneAccount; HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInCall(Ljava/lang/String;Ljava/lang/String;)Z HSPLcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService; HSPLcom/android/internal/telecom/IVideoProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IVideoProvider; @@ -22827,13 +21773,10 @@ HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getConfigFo HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ICarrierConfigLoader; HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;-><init>()V HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;-><init>()V HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getMaxTransactionId()I -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->asBinder()Landroid/os/IBinder; @@ -22875,7 +21818,6 @@ HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisp HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMeidForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(I)Ljava/lang/String; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getServiceStateForSubscriber(IZZLjava/lang/String;Ljava/lang/String;)Landroid/telephony/ServiceState; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSignalStrength(I)Landroid/telephony/SignalStrength; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrierId(I)I HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionSpecificCarrierId(I)I @@ -22895,7 +21837,6 @@ HSPLcom/android/internal/telephony/SmsApplication;->getApplicationForPackage(Lja HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName; HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplicationAsUser(Landroid/content/Context;ZI)Landroid/content/ComponentName; HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsPackage(Landroid/content/Context;I)Ljava/lang/String; -HSPLcom/android/internal/telephony/SmsApplication;->getIncomingUserId(Landroid/content/Context;)I HSPLcom/android/internal/telephony/SmsApplication;->tryFixExclusiveSmsAppops(Landroid/content/Context;Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Z)Z HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadDeviceIdentifiers(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadPhoneState(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z @@ -22907,11 +21848,9 @@ HSPLcom/android/internal/telephony/TelephonyPermissions;->reportAccessDeniedToRe HSPLcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String; HSPLcom/android/internal/telephony/util/HandlerExecutor;-><init>(Landroid/os/Handler;)V HSPLcom/android/internal/telephony/util/HandlerExecutor;->execute(Ljava/lang/Runnable;)V -HSPLcom/android/internal/telephony/util/TelephonyUtils;->dataStateToString(I)Ljava/lang/String; HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onClose()V HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V -HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;-><init>()V HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V @@ -22919,28 +21858,9 @@ HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurren HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype; HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getSpellCheckerService(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;I)V HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCheckerEnabled(I)Z -HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;-><init>()V 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$1;-><init>(Landroid/view/View;Landroid/graphics/Rect;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$1;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$State;-><init>()V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$State;-><init>(IIF)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;-><init>()V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;-><init>(Lcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator-IA;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;->evaluate(FLcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;)Lcom/android/internal/transition/EpicenterTranslateClipReveal$State; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;-><init>(C)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;->set(Landroid/view/View;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;->set(Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureStartValues(Landroid/transition/TransitionValues;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureValues(Landroid/transition/TransitionValues;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->createRectAnimator(Landroid/view/View;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;FLcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;FLandroid/transition/TransitionValues;Landroid/animation/TimeInterpolator;Landroid/animation/TimeInterpolator;Landroid/animation/TimeInterpolator;)Landroid/animation/Animator; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->getBestRect(Landroid/transition/TransitionValues;)Landroid/graphics/Rect; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->getEpicenterOrCenter(Landroid/graphics/Rect;)Landroid/graphics/Rect; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->onAppear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator; HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;J)V HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;JLjava/lang/String;J)V HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;JLjava/lang/String;J)V @@ -22989,7 +21909,6 @@ HSPLcom/android/internal/util/AsyncChannel;->sendMessage(Landroid/os/Message;)V HSPLcom/android/internal/util/BitUtils;->packBits([I)J HSPLcom/android/internal/util/BitUtils;->unpackBits(J)[I HSPLcom/android/internal/util/CollectionUtils;->add(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List; -HSPLcom/android/internal/util/CollectionUtils;->emptyIfNull(Ljava/util/List;)Ljava/util/List; HSPLcom/android/internal/util/CollectionUtils;->emptyIfNull(Ljava/util/Set;)Ljava/util/Set; HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/List;)Ljava/lang/Object; HSPLcom/android/internal/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z @@ -23044,7 +21963,6 @@ HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIJII)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(IILjava/lang/String;IZ)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V -PLcom/android/internal/util/FrameworkStatsLog;->write(I[BFIIIF)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; @@ -23060,11 +21978,6 @@ HSPLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String HSPLcom/android/internal/util/IntPair;->first(J)I HSPLcom/android/internal/util/IntPair;->of(II)J HSPLcom/android/internal/util/IntPair;->second(J)I -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/internal/util/LatencyTracker;)V -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda1;->run()V -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda2;-><init>(Lcom/android/internal/util/LatencyTracker;)V -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V -HSPLcom/android/internal/util/LatencyTracker;->$r8$lambda$DRnZbV-_f67FVGSzCjRFLX6dnUQ(Lcom/android/internal/util/LatencyTracker;Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/internal/util/LatencyTracker;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker; HSPLcom/android/internal/util/LatencyTracker;->getNameOfAction(I)Ljava/lang/String; HSPLcom/android/internal/util/LatencyTracker;->isEnabled()Z @@ -23097,7 +22010,6 @@ HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;->unparcel(Landroi HSPLcom/android/internal/util/Parcelling$Cache;->get(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling; HSPLcom/android/internal/util/Parcelling$Cache;->getOrCreate(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling; HSPLcom/android/internal/util/Parcelling$Cache;->put(Lcom/android/internal/util/Parcelling;)Lcom/android/internal/util/Parcelling; -HSPLcom/android/internal/util/PerfettoTrigger;->trigger(Ljava/lang/String;)V HSPLcom/android/internal/util/Preconditions;->checkArgument(Z)V HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/String;[Ljava/lang/Object;)V @@ -23299,10 +22211,6 @@ HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getCredentialType(I)I HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; HSPLcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings; HSPLcom/android/internal/widget/LockPatternUtils$1;-><init>(Lcom/android/internal/widget/LockPatternUtils;)V -HSPLcom/android/internal/widget/LockPatternUtils$1;->apply(Ljava/lang/Integer;)Ljava/lang/Integer; -HSPLcom/android/internal/widget/LockPatternUtils$1;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/internal/widget/LockPatternUtils$1;->shouldBypassCache(Ljava/lang/Integer;)Z -HSPLcom/android/internal/widget/LockPatternUtils$1;->shouldBypassCache(Ljava/lang/Object;)Z HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onIsNonStrongBiometricAllowedChanged(ZI)V HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onStrongAuthRequiredChanged(II)V HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;->handleMessage(Landroid/os/Message;)V @@ -23321,7 +22229,6 @@ HSPLcom/android/internal/widget/LockPatternUtils;->getKeyguardStoredPasswordQual HSPLcom/android/internal/widget/LockPatternUtils;->getLockSettings()Lcom/android/internal/widget/ILockSettings; HSPLcom/android/internal/widget/LockPatternUtils;->getPowerButtonInstantlyLocks(I)Z HSPLcom/android/internal/widget/LockPatternUtils;->getString(Ljava/lang/String;I)Ljava/lang/String; -HSPLcom/android/internal/widget/LockPatternUtils;->getUserManager(I)Landroid/os/UserManager;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/content/Context;Landroid/app/ContextImpl; HSPLcom/android/internal/widget/LockPatternUtils;->hasSeparateChallenge(I)Z HSPLcom/android/internal/widget/LockPatternUtils;->isManagedProfile(I)Z HSPLcom/android/internal/widget/LockPatternUtils;->isOwnerInfoEnabled(I)Z @@ -23337,7 +22244,6 @@ HSPLcom/android/net/module/util/MacAddressUtils;->isMacAddress([B)Z HSPLcom/android/net/module/util/MacAddressUtils;->longAddrFromByteAddr([B)J HSPLcom/android/net/module/util/NetUtils;->maskRawAddress([BI)V HSPLcom/android/net/module/util/NetworkCapabilitiesUtils;-><clinit>()V -HSPLcom/android/net/module/util/NetworkCapabilitiesUtils;->unpackBits(J)[I HSPLcom/android/server/LocalServices;->getService(Ljava/lang/Class;)Ljava/lang/Object; HSPLcom/android/server/SystemConfig;->addFeature(Ljava/lang/String;I)V HSPLcom/android/server/SystemConfig;->getInstance()Lcom/android/server/SystemConfig; @@ -23358,7 +22264,6 @@ HSPLcom/google/android/gles_jni/EGLContextImpl;->equals(Ljava/lang/Object;)Z HSPLcom/google/android/gles_jni/EGLDisplayImpl;->equals(Ljava/lang/Object;)Z HSPLcom/google/android/gles_jni/EGLImpl;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext; HSPLcom/google/android/gles_jni/EGLImpl;->eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface; -HSPLcom/google/android/gles_jni/EGLImpl;->eglGetCurrentContext()Ljavax/microedition/khronos/egl/EGLContext; HSPLcom/google/android/gles_jni/EGLImpl;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay; HSPLcom/google/android/gles_jni/EGLSurfaceImpl;-><init>(J)V HSPLjavax/microedition/khronos/egl/EGLContext;->getEGL()Ljavax/microedition/khronos/egl/EGL; @@ -24139,6 +23044,7 @@ Landroid/app/SystemServiceRegistry$133; Landroid/app/SystemServiceRegistry$134; Landroid/app/SystemServiceRegistry$135; Landroid/app/SystemServiceRegistry$136; +Landroid/app/SystemServiceRegistry$137; Landroid/app/SystemServiceRegistry$13; Landroid/app/SystemServiceRegistry$14; Landroid/app/SystemServiceRegistry$15; @@ -24611,7 +23517,6 @@ Landroid/app/usage/IUsageStatsManager; Landroid/app/usage/StorageStats$1; Landroid/app/usage/StorageStats; Landroid/app/usage/StorageStatsManager; -Landroid/app/usage/TimeSparseArray; Landroid/app/usage/UsageEvents$1; Landroid/app/usage/UsageEvents$Event; Landroid/app/usage/UsageEvents; @@ -25350,6 +24255,7 @@ Landroid/graphics/CanvasProperty; Landroid/graphics/Color; Landroid/graphics/ColorFilter$NoImagePreloadHolder; Landroid/graphics/ColorFilter; +Landroid/graphics/ColorMatrix; Landroid/graphics/ColorMatrixColorFilter; Landroid/graphics/ColorSpace$$ExternalSyntheticLambda0; Landroid/graphics/ColorSpace$$ExternalSyntheticLambda1; @@ -30595,6 +29501,7 @@ Landroid/telephony/SmsMessage$MessageClass; Landroid/telephony/SmsMessage$NoEmsSupportConfig; Landroid/telephony/SmsMessage; Landroid/telephony/SubscriptionInfo$1; +Landroid/telephony/SubscriptionInfo$Builder; Landroid/telephony/SubscriptionInfo; Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda0; Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda10; @@ -30674,6 +29581,7 @@ Landroid/telephony/TelephonyManager$17; Landroid/telephony/TelephonyManager$18; Landroid/telephony/TelephonyManager$19; Landroid/telephony/TelephonyManager$1; +Landroid/telephony/TelephonyManager$20; Landroid/telephony/TelephonyManager$2; Landroid/telephony/TelephonyManager$3; Landroid/telephony/TelephonyManager$4; @@ -32278,6 +31186,8 @@ Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder; Landroid/view/inputmethod/InputMethodSubtype; Landroid/view/inputmethod/InputMethodSubtypeArray; Landroid/view/inputmethod/InsertGesture; +Landroid/view/inputmethod/JoinOrSplitGesture; +Landroid/view/inputmethod/RemoveSpaceGesture; Landroid/view/inputmethod/SelectGesture; Landroid/view/inputmethod/SparseRectFArray$1; Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder; @@ -32892,6 +31802,7 @@ Landroid/window/OnBackInvokedDispatcher; Landroid/window/ProxyOnBackInvokedDispatcher; Landroid/window/RemoteTransition$1; Landroid/window/RemoteTransition; +Landroid/window/ScreenCapture$CaptureArgs$1; Landroid/window/ScreenCapture$CaptureArgs; Landroid/window/ScreenCapture$DisplayCaptureArgs; Landroid/window/ScreenCapture$LayerCaptureArgs; @@ -33759,6 +32670,7 @@ Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations; Lcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry; Lcom/android/internal/inputmethod/SubtypeLocaleUtils; Lcom/android/internal/jank/DisplayResolutionTracker; +Lcom/android/internal/jank/EventLogTags; Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda0; Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda2; Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda3; diff --git a/boot/preloaded-classes b/boot/preloaded-classes index 0cc3038908b1..d8b348e9caf4 100644 --- a/boot/preloaded-classes +++ b/boot/preloaded-classes @@ -1181,7 +1181,6 @@ android.app.usage.IUsageStatsManager android.app.usage.StorageStats$1 android.app.usage.StorageStats android.app.usage.StorageStatsManager -android.app.usage.TimeSparseArray android.app.usage.UsageEvents$1 android.app.usage.UsageEvents$Event android.app.usage.UsageEvents @@ -4698,6 +4697,7 @@ android.media.AudioManager$ServiceEventHandlerDelegate android.media.AudioManager android.media.AudioManagerInternal$RingerModeDelegate android.media.AudioManagerInternal +android.media.AudioMetadata android.media.AudioMixPort android.media.AudioMixPortConfig android.media.AudioPatch @@ -4733,9 +4733,11 @@ android.media.AudioSystem android.media.AudioTimestamp android.media.AudioTrack$1 android.media.AudioTrack$2 +android.media.AudioTrack$NativePositionEventHandlerDelegate android.media.AudioTrack$TunerConfiguration android.media.AudioTrack android.media.AudioTrackRoutingProxy +android.media.CallbackUtil$LazyListenerManager android.media.CamcorderProfile android.media.CameraProfile android.media.DecoderCapabilities @@ -4841,7 +4843,6 @@ android.media.MediaCodec$OutputFrame android.media.MediaCodec$ParameterDescriptor android.media.MediaCodec$PersistentSurface android.media.MediaCodec$QueueRequest -android.media.MediaCodec android.media.MediaCodecInfo$AudioCapabilities android.media.MediaCodecInfo$CodecCapabilities android.media.MediaCodecInfo$CodecProfileLevel @@ -4850,10 +4851,10 @@ android.media.MediaCodecInfo$Feature android.media.MediaCodecInfo$VideoCapabilities$$ExternalSyntheticLambda0 android.media.MediaCodecInfo$VideoCapabilities$PerformancePoint android.media.MediaCodecInfo$VideoCapabilities -android.media.MediaCodecInfo android.media.MediaCodecList android.media.MediaCrypto android.media.MediaCryptoException +android.media.MediaDataSource android.media.MediaDescrambler android.media.MediaDescription$1 android.media.MediaDescription$Builder @@ -4938,6 +4939,7 @@ android.media.MediaRouter$Static$1$1 android.media.MediaRouter$Static$1 android.media.MediaRouter$Static$Client$$ExternalSyntheticLambda0 android.media.MediaRouter$Static$Client$$ExternalSyntheticLambda1 +android.media.MediaRouter$Static$Client$1 android.media.MediaRouter$Static$Client android.media.MediaRouter$Static android.media.MediaRouter$UserRouteInfo$SessionVolumeProvider diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt index 2e56a0526dee..11223dd20d6f 100644 --- a/config/boot-image-profile.txt +++ b/config/boot-image-profile.txt @@ -159,7 +159,6 @@ HSPLandroid/animation/Animator;->createConstantState()Landroid/content/res/Const HSPLandroid/animation/Animator;->getBackgroundPauseDelay()J HSPLandroid/animation/Animator;->getChangingConfigurations()I HSPLandroid/animation/Animator;->getListeners()Ljava/util/ArrayList; -HSPLandroid/animation/Animator;->isPaused()Z HSPLandroid/animation/Animator;->pause()V HSPLandroid/animation/Animator;->removeAllListeners()V HSPLandroid/animation/Animator;->removeListener(Landroid/animation/Animator$AnimatorListener;)V @@ -232,7 +231,6 @@ HSPLandroid/animation/AnimatorSet;->isInitialized()Z HSPLandroid/animation/AnimatorSet;->isRunning()Z HSPLandroid/animation/AnimatorSet;->isStarted()Z HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder; -HSPLandroid/animation/AnimatorSet;->playSequentially(Ljava/util/List;)V HSPLandroid/animation/AnimatorSet;->playSequentially([Landroid/animation/Animator;)V HSPLandroid/animation/AnimatorSet;->playTogether(Ljava/util/Collection;)V HSPLandroid/animation/AnimatorSet;->playTogether([Landroid/animation/Animator;)V @@ -397,7 +395,6 @@ HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setIntValue HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V HSPLandroid/animation/PropertyValuesHolder$PropertyValues;-><init>()V HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;)V -HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;Landroid/animation/PropertyValuesHolder-IA;)V HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;)V HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/PropertyValuesHolder-IA;)V HSPLandroid/animation/PropertyValuesHolder;->calculateValue(F)V @@ -431,7 +428,6 @@ HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landro HSPLandroid/animation/StateListAnimator$1;-><init>(Landroid/animation/StateListAnimator;)V HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;-><init>(Landroid/animation/StateListAnimator;)V -HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->getChangingConfigurations()I HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Landroid/animation/StateListAnimator; HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Ljava/lang/Object; HSPLandroid/animation/StateListAnimator$Tuple;-><init>([ILandroid/animation/Animator;)V @@ -492,7 +488,6 @@ HSPLandroid/animation/ValueAnimator;->ofInt([I)Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->ofObject(Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator; HSPLandroid/animation/ValueAnimator;->pause()V HSPLandroid/animation/ValueAnimator;->pulseAnimationFrame(J)Z -HSPLandroid/animation/ValueAnimator;->registerDurationScaleChangeListener(Landroid/animation/ValueAnimator$DurationScaleChangeListener;)Z HSPLandroid/animation/ValueAnimator;->removeAllUpdateListeners()V HSPLandroid/animation/ValueAnimator;->removeAnimationCallback()V HSPLandroid/animation/ValueAnimator;->resolveDurationScale()F @@ -518,7 +513,6 @@ HSPLandroid/animation/ValueAnimator;->start()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/animation/ValueAnimator;->unregisterDurationScaleChangeListener(Landroid/animation/ValueAnimator$DurationScaleChangeListener;)Z HSPLandroid/app/Activity$1;-><init>(Landroid/app/Activity;)V HSPLandroid/app/Activity$1;->isTaskRoot()Z HSPLandroid/app/Activity$1;->updateNavigationBarColor(I)V @@ -527,9 +521,6 @@ HSPLandroid/app/Activity$HostCallbacks;-><init>(Landroid/app/Activity;)V HSPLandroid/app/Activity$HostCallbacks;->onAttachFragment(Landroid/app/Fragment;)V HSPLandroid/app/Activity$HostCallbacks;->onGetLayoutInflater()Landroid/view/LayoutInflater; HSPLandroid/app/Activity$HostCallbacks;->onUseFragmentManagerInflaterFactory()Z -HSPLandroid/app/Activity$RequestFinishCallback$$ExternalSyntheticLambda0;-><init>(Landroid/app/Activity;)V -HSPLandroid/app/Activity$RequestFinishCallback$$ExternalSyntheticLambda0;->run()V -HSPLandroid/app/Activity$RequestFinishCallback;->requestFinish()V HSPLandroid/app/Activity;-><init>()V HSPLandroid/app/Activity;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Landroid/app/Instrumentation;Landroid/os/IBinder;ILandroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Landroid/app/Activity$NonConfigurationInstances;Landroid/content/res/Configuration;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;Landroid/os/IBinder;Landroid/os/IBinder;)V HSPLandroid/app/Activity;->attachBaseContext(Landroid/content/Context;)V @@ -552,14 +543,12 @@ HSPLandroid/app/Activity;->findViewById(I)Landroid/view/View; HSPLandroid/app/Activity;->finish()V HSPLandroid/app/Activity;->finish(I)V HSPLandroid/app/Activity;->finishAfterTransition()V -HSPLandroid/app/Activity;->getActionBar()Landroid/app/ActionBar; HSPLandroid/app/Activity;->getActivityOptions()Landroid/app/ActivityOptions; HSPLandroid/app/Activity;->getActivityToken()Landroid/os/IBinder; HSPLandroid/app/Activity;->getApplication()Landroid/app/Application; HSPLandroid/app/Activity;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; HSPLandroid/app/Activity;->getAutofillClientController()Landroid/view/autofill/AutofillClientController; HSPLandroid/app/Activity;->getCallingActivity()Landroid/content/ComponentName; -HSPLandroid/app/Activity;->getCallingPackage()Ljava/lang/String; HSPLandroid/app/Activity;->getComponentName()Landroid/content/ComponentName; HSPLandroid/app/Activity;->getContentCaptureManager()Landroid/view/contentcapture/ContentCaptureManager; HSPLandroid/app/Activity;->getContentCaptureTypeAsString(I)Ljava/lang/String; @@ -590,7 +579,6 @@ HSPLandroid/app/Activity;->isTaskRoot()Z HSPLandroid/app/Activity;->makeVisible()V HSPLandroid/app/Activity;->navigateBack()V HSPLandroid/app/Activity;->notifyContentCaptureManagerIfNeeded(I)V -HSPLandroid/app/Activity;->onActivityResult(IILandroid/content/Intent;)V HSPLandroid/app/Activity;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V HSPLandroid/app/Activity;->onAttachFragment(Landroid/app/Fragment;)V HSPLandroid/app/Activity;->onAttachedToWindow()V @@ -660,7 +648,6 @@ HSPLandroid/app/Activity;->setRequestedOrientation(I)V HSPLandroid/app/Activity;->setResult(ILandroid/content/Intent;)V HSPLandroid/app/Activity;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V HSPLandroid/app/Activity;->setTheme(I)V -HSPLandroid/app/Activity;->setTitle(I)V HSPLandroid/app/Activity;->setTitle(Ljava/lang/CharSequence;)V HSPLandroid/app/Activity;->setVolumeControlStream(I)V HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;)V @@ -686,11 +673,9 @@ HSPLandroid/app/ActivityClient;->activityTopResumedStateLost()V HSPLandroid/app/ActivityClient;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z HSPLandroid/app/ActivityClient;->getActivityClientController()Landroid/app/IActivityClientController; HSPLandroid/app/ActivityClient;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName; -HSPLandroid/app/ActivityClient;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String; HSPLandroid/app/ActivityClient;->getDisplayId(Landroid/os/IBinder;)I HSPLandroid/app/ActivityClient;->getInstance()Landroid/app/ActivityClient; HSPLandroid/app/ActivityClient;->getTaskForActivity(Landroid/os/IBinder;Z)I -HSPLandroid/app/ActivityClient;->onBackPressedOnTaskRoot(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V HSPLandroid/app/ActivityClient;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V HSPLandroid/app/ActivityClient;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V HSPLandroid/app/ActivityClient;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V @@ -705,7 +690,6 @@ HSPLandroid/app/ActivityManager$MemoryInfo;->readFromParcel(Landroid/os/Parcel;) HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$PendingIntentInfo; HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/ActivityManager$PendingIntentInfo;-><init>(Ljava/lang/String;IZI)V -HSPLandroid/app/ActivityManager$PendingIntentInfo;->isImmutable()Z HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RecentTaskInfo; HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;-><init>()V @@ -787,7 +771,6 @@ HSPLandroid/app/ActivityOptions;->fromBundle(Landroid/os/Bundle;)Landroid/app/Ac HSPLandroid/app/ActivityOptions;->getAnimationType()I HSPLandroid/app/ActivityOptions;->makeBasic()Landroid/app/ActivityOptions; HSPLandroid/app/ActivityOptions;->makeRemoteAnimation(Landroid/view/RemoteAnimationAdapter;)Landroid/app/ActivityOptions; -HSPLandroid/app/ActivityOptions;->setLaunchDisplayId(I)Landroid/app/ActivityOptions; HSPLandroid/app/ActivityOptions;->setLaunchWindowingMode(I)V HSPLandroid/app/ActivityOptions;->setSourceInfo(IJ)V HSPLandroid/app/ActivityOptions;->toBundle()Landroid/os/Bundle; @@ -801,13 +784,11 @@ HSPLandroid/app/ActivityTaskManager;->getInstance()Landroid/app/ActivityTaskMana HSPLandroid/app/ActivityTaskManager;->getService()Landroid/app/IActivityTaskManager; HSPLandroid/app/ActivityTaskManager;->getTasks(IZ)Ljava/util/List; HSPLandroid/app/ActivityTaskManager;->getTasks(IZZ)Ljava/util/List; -HSPLandroid/app/ActivityTaskManager;->getTasks(IZZI)Ljava/util/List; HSPLandroid/app/ActivityTaskManager;->supportsMultiWindow(Landroid/content/Context;)Z HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda0;-><init>(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda0;->onConfigurationChanged(Landroid/content/res/Configuration;)V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda1;-><init>()V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda3;-><init>()V -HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda5;->run()V HSPLandroid/app/ActivityThread$2;-><init>(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$2;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V @@ -870,7 +851,6 @@ HSPLandroid/app/ActivityThread$ApplicationThread;->setNetworkBlockSeq(J)V HSPLandroid/app/ActivityThread$ApplicationThread;->setProcessState(I)V HSPLandroid/app/ActivityThread$ApplicationThread;->unstableProviderDied(Landroid/os/IBinder;)V HSPLandroid/app/ActivityThread$ApplicationThread;->updateCompatOverrideScale(Landroid/content/res/CompatibilityInfo;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->updateTimeZone()V HSPLandroid/app/ActivityThread$BindServiceData;-><init>()V HSPLandroid/app/ActivityThread$ContextCleanupInfo;-><init>()V HSPLandroid/app/ActivityThread$CreateBackupAgentData;-><init>()V @@ -896,7 +876,6 @@ HSPLandroid/app/ActivityThread$RequestAssistContextExtras;-><init>()V HSPLandroid/app/ActivityThread$ServiceArgsData;-><init>()V HSPLandroid/app/ActivityThread$ServiceArgsData;->toString()Ljava/lang/String; HSPLandroid/app/ActivityThread;->-$$Nest$fgetmTransactionExecutor(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor; -HSPLandroid/app/ActivityThread;->-$$Nest$mgetGetProviderKey(Landroid/app/ActivityThread;Ljava/lang/String;I)Landroid/app/ActivityThread$ProviderKey; HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindApplication(Landroid/app/ActivityThread;Landroid/app/ActivityThread$AppBindData;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleCreateBackupAgent(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V @@ -908,12 +887,8 @@ HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpResources(Landroid/app/Activ HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleEnterAnimationComplete(Landroid/app/ActivityThread;Landroid/os/IBinder;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleReceiver(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ReceiverData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleServiceArgs(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ServiceArgsData;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetContentCaptureOptionsCallback(Landroid/app/ActivityThread;Ljava/lang/String;)V HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetCoreSettings(Landroid/app/ActivityThread;Landroid/os/Bundle;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleStopService(Landroid/app/ActivityThread;Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleUnbindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mpurgePendingResources(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread;->-$$Nest$msendMessage(Landroid/app/ActivityThread;ILjava/lang/Object;IIZ)V HSPLandroid/app/ActivityThread;-><init>()V HSPLandroid/app/ActivityThread;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider; @@ -1078,7 +1053,6 @@ HSPLandroid/app/AlarmManager;->legacyExactLength()J HSPLandroid/app/AlarmManager;->set(IJJJLandroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;Landroid/os/WorkSource;)V HSPLandroid/app/AlarmManager;->set(IJLandroid/app/PendingIntent;)V HSPLandroid/app/AlarmManager;->set(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V -HSPLandroid/app/AlarmManager;->setAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V HSPLandroid/app/AlarmManager;->setExact(IJLandroid/app/PendingIntent;)V HSPLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V HSPLandroid/app/AlarmManager;->setExactAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V @@ -1113,9 +1087,7 @@ HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastAccessEvent(III)Landroi HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastRejectEvent(III)Landroid/app/AppOpsManager$NoteOpEvent; HSPLandroid/app/AppOpsManager$NoteOpEvent;->getDuration()J HSPLandroid/app/AppOpsManager$NoteOpEvent;->getNoteTime()J -HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1$$ExternalSyntheticLambda0;->run()V+]Landroid/app/AppOpsManager$OnOpNotedCallback$1;Landroid/app/AppOpsManager$OnOpNotedCallback$1; HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;-><init>(Landroid/app/AppOpsManager$OnOpNotedCallback;)V -HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;->lambda$opNoted$0$android-app-AppOpsManager$OnOpNotedCallback$1(Landroid/app/AsyncNotedAppOp;)V HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;->opNoted(Landroid/app/AsyncNotedAppOp;)V HSPLandroid/app/AppOpsManager$OnOpNotedCallback;-><init>()V HSPLandroid/app/AppOpsManager$OnOpNotedCallback;->getAsyncNotedExecutor()Ljava/util/concurrent/Executor; @@ -1134,7 +1106,6 @@ HSPLandroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->checkPackage(ILjava/lang/String;)V HSPLandroid/app/AppOpsManager;->collectNoteOpCallsForValidation(I)V -HSPLandroid/app/AppOpsManager;->collectNotedOpSync(Landroid/app/SyncNotedAppOp;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/app/SyncNotedAppOp;Landroid/app/SyncNotedAppOp;]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLandroid/app/AppOpsManager;->extractFlagsFromKey(J)I HSPLandroid/app/AppOpsManager;->extractUidStateFromKey(J)I HSPLandroid/app/AppOpsManager;->finishNotedAppOpsCollection()V @@ -1154,11 +1125,9 @@ HSPLandroid/app/AppOpsManager;->makeKey(II)J HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(ILandroid/content/AttributionSource;Ljava/lang/String;Z)I HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String; @@ -1292,13 +1261,11 @@ HSPLandroid/app/ApplicationPackageManager;->getCachedIcon(Landroid/app/Applicati HSPLandroid/app/ApplicationPackageManager;->getCachedString(Landroid/app/ApplicationPackageManager$ResourceName;)Ljava/lang/CharSequence; HSPLandroid/app/ApplicationPackageManager;->getComponentEnabledSetting(Landroid/content/ComponentName;)I HSPLandroid/app/ApplicationPackageManager;->getDefaultTextClassifierPackageName()Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getDevicePolicyManager()Landroid/app/admin/DevicePolicyManager;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; HSPLandroid/app/ApplicationPackageManager;->getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable; HSPLandroid/app/ApplicationPackageManager;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo; HSPLandroid/app/ApplicationPackageManager;->getInstalledApplications(I)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(II)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(Landroid/content/pm/PackageManager$ApplicationInfoFlags;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledModules(I)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(I)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(Landroid/content/pm/PackageManager$PackageInfoFlags;)Ljava/util/List; HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(II)Ljava/util/List; @@ -1323,8 +1290,6 @@ HSPLandroid/app/ApplicationPackageManager;->getPermissionControllerPackageName() HSPLandroid/app/ApplicationPackageManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I HSPLandroid/app/ApplicationPackageManager;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo; HSPLandroid/app/ApplicationPackageManager;->getPermissionManager()Landroid/permission/PermissionManager; -HSPLandroid/app/ApplicationPackageManager;->getProperty(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/PackageManager$Property; -HSPLandroid/app/ApplicationPackageManager;->getPropertyAsUser(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PackageManager$Property; HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo; HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ProviderInfo; HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo; @@ -1332,7 +1297,6 @@ HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/Com 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(Ljava/lang/String;)Landroid/content/res/Resources; -HSPLandroid/app/ApplicationPackageManager;->getRotationResolverPackageName()Ljava/lang/String; HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo; HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ServiceInfo; HSPLandroid/app/ApplicationPackageManager;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String; @@ -1399,7 +1363,6 @@ HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Landroi HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/AsyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;J)V HSPLandroid/app/AsyncNotedAppOp;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/AsyncNotedAppOp;->getAttributionTag()Ljava/lang/String; HSPLandroid/app/AsyncNotedAppOp;->getMessage()Ljava/lang/String; HSPLandroid/app/AsyncNotedAppOp;->getOp()Ljava/lang/String; HSPLandroid/app/AsyncNotedAppOp;->onConstructed()V @@ -1418,16 +1381,11 @@ HSPLandroid/app/BackStackRecord;->isFragmentPostponed(Landroid/app/BackStackReco HSPLandroid/app/BackStackRecord;->isPostponed()Z HSPLandroid/app/BackStackRecord;->runOnCommitRunnables()V HSPLandroid/app/BroadcastOptions;-><init>()V -HSPLandroid/app/BroadcastOptions;->isTemporaryAppAllowlistSet()Z HSPLandroid/app/BroadcastOptions;->makeBasic()Landroid/app/BroadcastOptions; -HSPLandroid/app/BroadcastOptions;->setTemporaryAppAllowlist(JIILjava/lang/String;)V HSPLandroid/app/BroadcastOptions;->setTemporaryAppWhitelistDuration(J)V HSPLandroid/app/BroadcastOptions;->toBundle()Landroid/os/Bundle; HSPLandroid/app/ClientTransactionHandler;-><init>()V HSPLandroid/app/ClientTransactionHandler;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/ComponentOptions;-><init>(Landroid/os/Bundle;)V+]Landroid/app/ComponentOptions;Landroid/app/ActivityOptions;,Landroid/app/BroadcastOptions;]Landroid/os/Bundle;Landroid/os/Bundle; -HSPLandroid/app/ComponentOptions;->setPendingIntentBackgroundActivityLaunchAllowed(Z)V -HSPLandroid/app/ComponentOptions;->setPendingIntentBackgroundActivityLaunchAllowedByPermission(Z)V HSPLandroid/app/ConfigurationController;-><init>(Landroid/app/ActivityThreadInternal;)V HSPLandroid/app/ConfigurationController;->applyCompatConfiguration()Landroid/content/res/Configuration; HSPLandroid/app/ConfigurationController;->createNewConfigAndUpdateIfNotNull(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration; @@ -1460,7 +1418,6 @@ HSPLandroid/app/ContextImpl$ApplicationContentResolver;->resolveUserIdFromAuthor 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;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z -HSPLandroid/app/ContextImpl;->bindService(Landroid/content/Intent;ILjava/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 @@ -1571,7 +1528,6 @@ HSPLandroid/app/ContextImpl;->getWindowContextToken()Landroid/os/IBinder; HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V HSPLandroid/app/ContextImpl;->initializeTheme()V HSPLandroid/app/ContextImpl;->isAssociatedWithDisplay()Z -HSPLandroid/app/ContextImpl;->isConfigurationContext()Z+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; HSPLandroid/app/ContextImpl;->isCredentialProtectedStorage()Z HSPLandroid/app/ContextImpl;->isDeviceProtectedStorage()Z HSPLandroid/app/ContextImpl;->isRestricted()Z @@ -1644,10 +1600,8 @@ HSPLandroid/app/Dialog;->dispatchOnCreate(Landroid/os/Bundle;)V HSPLandroid/app/Dialog;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z HSPLandroid/app/Dialog;->findViewById(I)Landroid/view/View; HSPLandroid/app/Dialog;->getContext()Landroid/content/Context; -HSPLandroid/app/Dialog;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher; HSPLandroid/app/Dialog;->getWindow()Landroid/view/Window; HSPLandroid/app/Dialog;->hide()V -HSPLandroid/app/Dialog;->isShowing()Z HSPLandroid/app/Dialog;->onAttachedToWindow()V HSPLandroid/app/Dialog;->onContentChanged()V HSPLandroid/app/Dialog;->onCreate(Landroid/os/Bundle;)V @@ -1872,10 +1826,8 @@ HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityStopped(Landroid/ HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityTopResumedStateLost()V HSPLandroid/app/IActivityClientController$Stub$Proxy;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z HSPLandroid/app/IActivityClientController$Stub$Proxy;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName; -HSPLandroid/app/IActivityClientController$Stub$Proxy;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String; HSPLandroid/app/IActivityClientController$Stub$Proxy;->getDisplayId(Landroid/os/IBinder;)I HSPLandroid/app/IActivityClientController$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I -HSPLandroid/app/IActivityClientController$Stub$Proxy;->onBackPressedOnTaskRoot(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V HSPLandroid/app/IActivityClientController$Stub$Proxy;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V @@ -1936,7 +1888,6 @@ HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getAppTasks(Ljava/lang/String; HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo; HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLockTaskModeState()I HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTasks(IZZI)Ljava/util/List;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I HSPLandroid/app/IActivityTaskManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityTaskManager; @@ -1989,8 +1940,6 @@ HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenMode()I HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenRules()Ljava/util/List; HSPLandroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z HSPLandroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager; -HSPLandroid/app/IRequestFinishCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IRequestFinishCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/app/IServiceConnection$Stub;-><init>()V HSPLandroid/app/IServiceConnection$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/app/IServiceConnection$Stub;->getDefaultTransactionName(I)Ljava/lang/String; @@ -2000,8 +1949,6 @@ HSPLandroid/app/IServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroi HSPLandroid/app/ITaskStackListener$Stub;-><init>()V HSPLandroid/app/ITaskStackListener$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/app/ITaskStackListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/ITransientNotificationCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/ITransientNotificationCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/app/IUiAutomationConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiAutomationConnection; HSPLandroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I @@ -2012,7 +1959,6 @@ HSPLandroid/app/IUriGrantsManager$Stub$Proxy;->getUriPermissions(Ljava/lang/Stri HSPLandroid/app/IUserSwitchObserver$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperColors(III)Landroid/app/WallpaperColors; HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperInfo(I)Landroid/app/WallpaperInfo; -HSPLandroid/app/IWallpaperManager$Stub$Proxy;->isWallpaperSupported(Ljava/lang/String;)Z HSPLandroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager; HSPLandroid/app/IWallpaperManagerCallback$Stub;-><init>()V HSPLandroid/app/IWallpaperManagerCallback$Stub;->asBinder()Landroid/os/IBinder; @@ -2180,7 +2126,6 @@ HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon; HSPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput; -HSPLandroid/app/Notification$Action;->getSemanticAction()I HSPLandroid/app/Notification$Action;->isContextual()Z HSPLandroid/app/Notification$Action;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/Notification$BigPictureStyle;-><init>()V @@ -2216,7 +2161,6 @@ HSPLandroid/app/Notification$Builder;->setAutoCancel(Z)Landroid/app/Notification HSPLandroid/app/Notification$Builder;->setBadgeIconType(I)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setBubbleMetadata(Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setContent(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder; HSPLandroid/app/Notification$Builder;->setContentInfo(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; @@ -2271,7 +2215,6 @@ HSPLandroid/app/Notification$MediaStyle;-><init>()V HSPLandroid/app/Notification$MediaStyle;->addExtras(Landroid/os/Bundle;)V HSPLandroid/app/Notification$MediaStyle;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification; HSPLandroid/app/Notification$MediaStyle;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MediaStyle;->setShowActionsInCompactView([I)Landroid/app/Notification$MediaStyle; HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;)V HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;Z)V HSPLandroid/app/Notification$MessagingStyle$Message;->getDataUri()Landroid/net/Uri; @@ -2302,8 +2245,6 @@ HSPLandroid/app/Notification$Style;->reduceImageSizes(Landroid/content/Context;) 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;->-$$Nest$fputmChannelId(Landroid/app/Notification;Ljava/lang/String;)V -HSPLandroid/app/Notification;->-$$Nest$smgetParcelableArrayFromBundle(Landroid/os/Bundle;Ljava/lang/String;Ljava/lang/Class;)[Landroid/os/Parcelable; HSPLandroid/app/Notification;-><init>()V HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/Context;Landroid/app/Notification;)V @@ -2354,7 +2295,6 @@ HSPLandroid/app/NotificationChannel;->enableVibration(Z)V HSPLandroid/app/NotificationChannel;->equals(Ljava/lang/Object;)Z HSPLandroid/app/NotificationChannel;->getAudioAttributes()Landroid/media/AudioAttributes; HSPLandroid/app/NotificationChannel;->getConversationId()Ljava/lang/String; -HSPLandroid/app/NotificationChannel;->getDeletedTimeMs()J HSPLandroid/app/NotificationChannel;->getDescription()Ljava/lang/String; HSPLandroid/app/NotificationChannel;->getGroup()Ljava/lang/String; HSPLandroid/app/NotificationChannel;->getId()Ljava/lang/String; @@ -2432,7 +2372,6 @@ HSPLandroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Not HSPLandroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I HSPLandroid/app/PendingIntent$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/app/PendingIntent$$ExternalSyntheticLambda1;->execute(Ljava/lang/Runnable;)V HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent; HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/PendingIntent$FinishedDispatcher;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V @@ -2459,7 +2398,6 @@ HSPLandroid/app/PendingIntent;->getIntentSender()Landroid/content/IntentSender; HSPLandroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; HSPLandroid/app/PendingIntent;->hashCode()I HSPLandroid/app/PendingIntent;->isActivity()Z -HSPLandroid/app/PendingIntent;->isImmutable()Z HSPLandroid/app/PendingIntent;->send()V HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;)V HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)V @@ -2489,8 +2427,6 @@ HSPLandroid/app/Person;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PictureInPictureParams; HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/PictureInPictureParams;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/PictureInPictureParams;->writeRationalToParcel(Landroid/util/Rational;Landroid/os/Parcel;)V -HSPLandroid/app/PictureInPictureParams;->writeToParcel(Landroid/os/Parcel;I)V+]Ljava/lang/Boolean;Ljava/lang/Boolean;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/PropertyInvalidatedCache$1;-><init>(Landroid/app/PropertyInvalidatedCache;IFZ)V HSPLandroid/app/PropertyInvalidatedCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z HSPLandroid/app/PropertyInvalidatedCache$DefaultComputer;-><init>(Landroid/app/PropertyInvalidatedCache;)V @@ -2514,7 +2450,6 @@ HSPLandroid/app/PropertyInvalidatedCache;->dumpCacheInfo(Landroid/os/ParcelFileD HSPLandroid/app/PropertyInvalidatedCache;->getActiveCaches()Ljava/util/ArrayList; HSPLandroid/app/PropertyInvalidatedCache;->getActiveCorks()Ljava/util/ArrayList; HSPLandroid/app/PropertyInvalidatedCache;->getCurrentNonce()J -HSPLandroid/app/PropertyInvalidatedCache;->getNonce(Ljava/lang/String;)J HSPLandroid/app/PropertyInvalidatedCache;->invalidateCache(Ljava/lang/String;)V HSPLandroid/app/PropertyInvalidatedCache;->invalidateCacheLocked(Ljava/lang/String;)V HSPLandroid/app/PropertyInvalidatedCache;->isDisabled()Z @@ -2524,7 +2459,6 @@ HSPLandroid/app/PropertyInvalidatedCache;->query(Ljava/lang/Object;)Ljava/lang/O 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;->setNonce(Ljava/lang/String;J)V HSPLandroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/app/QueuedWork;->-$$Nest$smprocessPendingWork()V @@ -2543,7 +2477,6 @@ HSPLandroid/app/RemoteAction;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/RemoteAction;->getActionIntent()Landroid/app/PendingIntent; HSPLandroid/app/RemoteAction;->getIcon()Landroid/graphics/drawable/Icon; HSPLandroid/app/RemoteAction;->getTitle()Ljava/lang/CharSequence; -PLandroid/app/RemoteAction;->setEnabled(Z)V HSPLandroid/app/RemoteAction;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteInput; HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -2555,7 +2488,6 @@ HSPLandroid/app/RemoteInput;->getChoices()[Ljava/lang/CharSequence; HSPLandroid/app/RemoteInput;->getEditChoicesBeforeSending()I HSPLandroid/app/RemoteInput;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/ResourcesManager$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z -HSPLandroid/app/ResourcesManager$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/app/ResourcesManager$ActivityResource;-><init>()V HSPLandroid/app/ResourcesManager$ActivityResources;-><init>()V HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;-><init>(Landroid/app/ResourcesManager;)V @@ -2726,36 +2658,37 @@ HSPLandroid/app/SystemServiceRegistry$109;->createService(Landroid/app/ContextIm HSPLandroid/app/SystemServiceRegistry$110;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$111;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$112;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$113;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionManager; HSPLandroid/app/SystemServiceRegistry$113;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Landroid/permission/LegacyPermissionManager; HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$115;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionCheckerManager; HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$117;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$118;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$11;->createService(Landroid/app/ContextImpl;)Landroid/view/textclassifier/TextClassificationManager; HSPLandroid/app/SystemServiceRegistry$11;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$121;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$122;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$123;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$124;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$125;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$126;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$127;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$128;->createService(Landroid/app/ContextImpl;)Landroid/hardware/devicestate/DeviceStateManager; HSPLandroid/app/SystemServiceRegistry$128;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$129;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$130;->createService(Landroid/app/ContextImpl;)Landroid/app/GameManager; HSPLandroid/app/SystemServiceRegistry$130;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$131;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$134;->createService()Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$135;->createService()Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$136;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry$137;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/app/ContextImpl;)Landroid/content/ClipboardManager; HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$17$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/app/SystemServiceRegistry$17$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$17;->createService(Landroid/app/ContextImpl;)Landroid/net/TetheringManager; HSPLandroid/app/SystemServiceRegistry$17;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$17;->lambda$createService$0()Landroid/os/IBinder; HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/AccessibilityManager; HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager; @@ -2764,7 +2697,6 @@ HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager; HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Landroid/nfc/NfcManager; HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$25;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$27;->createService()Landroid/hardware/input/InputManager; @@ -2783,7 +2715,6 @@ HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager; HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkPolicyManager; HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager; HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2797,9 +2728,7 @@ HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$41;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager; HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorPrivacyManager; HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Landroid/app/StatusBarManager; HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager; HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2824,7 +2753,6 @@ HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Landroid/os/Vibrator; HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Landroid/app/WallpaperManager; HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager; @@ -2835,17 +2763,11 @@ HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Landroid/hardware/camera2/CameraManager; HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/LauncherApps; HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Landroid/content/RestrictionsManager; HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Landroid/companion/CompanionDeviceManager; HSPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Landroid/hardware/fingerprint/FingerprintManager; -HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Landroid/hardware/biometrics/BiometricManager; HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$75;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2874,7 +2796,6 @@ HSPLandroid/app/SystemServiceRegistry$94;->createService(Landroid/app/ContextImp HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager; HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Landroid/view/contentcapture/ContentCaptureManager; HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$98;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$99;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; @@ -2888,7 +2809,6 @@ HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)L HSPLandroid/app/TaskInfo;-><init>()V HSPLandroid/app/TaskInfo;->getWindowingMode()I HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/TaskInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/window/WindowContainerToken;Landroid/window/WindowContainerToken;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/TaskStackListener;-><init>()V HSPLandroid/app/TaskStackListener;->onActivityRequestedOrientationChanged(II)V HSPLandroid/app/TaskStackListener;->onActivityRestartAttempt(Landroid/app/ActivityManager$RunningTaskInfo;ZZZ)V @@ -2897,7 +2817,6 @@ HSPLandroid/app/TaskStackListener;->onTaskCreated(ILandroid/content/ComponentNam HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V HSPLandroid/app/TaskStackListener;->onTaskFocusChanged(IZ)V -PLandroid/app/TaskStackListener;->onTaskMovedToBack(Landroid/app/ActivityManager$RunningTaskInfo;)V HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(I)V HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(I)V @@ -2905,7 +2824,6 @@ HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(Landroid/app/ActivityMa HSPLandroid/app/TaskStackListener;->onTaskRemoved(I)V HSPLandroid/app/TaskStackListener;->onTaskRequestedOrientationChanged(II)V HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>()V -HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>(Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager-IA;)V HSPLandroid/app/UiModeManager;-><init>(Landroid/content/Context;)V HSPLandroid/app/UiModeManager;->getActiveProjectionTypes()I HSPLandroid/app/UiModeManager;->getCurrentModeType()I @@ -2915,11 +2833,9 @@ HSPLandroid/app/UriGrantsManager;->getService()Landroid/app/IUriGrantsManager; HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperColors; HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/WallpaperColors;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/WallpaperColors;->getAllColors()Ljava/util/Map; HSPLandroid/app/WallpaperColors;->getColorHints()I HSPLandroid/app/WallpaperColors;->getMainColors()Ljava/util/List; HSPLandroid/app/WallpaperManager$Globals$1;-><init>(Landroid/app/WallpaperManager$Globals;)V -HSPLandroid/app/WallpaperManager$Globals;->-$$Nest$fgetmService(Landroid/app/WallpaperManager$Globals;)Landroid/app/IWallpaperManager; HSPLandroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V HSPLandroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V HSPLandroid/app/WallpaperManager$Globals;->getWallpaperColors(III)Landroid/app/WallpaperColors; @@ -2977,7 +2893,6 @@ HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;->apply(Ljav HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda6;-><init>(Landroid/app/admin/DevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda7;-><init>(Landroid/app/admin/DevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8;-><init>(Landroid/app/admin/DevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda9;-><init>(Landroid/app/admin/DevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;Z)V @@ -3007,23 +2922,18 @@ HSPLandroid/app/admin/DevicePolicyManager;->isOrganizationOwnedDeviceWithManaged HSPLandroid/app/admin/DevicePolicyManager;->isParentInstance()Z HSPLandroid/app/admin/DevicePolicyManager;->isProfileOwnerApp(Ljava/lang/String;)Z HSPLandroid/app/admin/DevicePolicyManager;->lambda$new$2$android-app-admin-DevicePolicyManager(Landroid/util/Pair;)Ljava/lang/Integer; -HSPLandroid/app/admin/DevicePolicyManager;->lambda$new$5$android-app-admin-DevicePolicyManager(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/app/admin/DevicePolicyManager;->myUserId()I HSPLandroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V HSPLandroid/app/admin/DevicePolicyResourcesManager;-><clinit>()V HSPLandroid/app/admin/DevicePolicyResourcesManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V HSPLandroid/app/admin/DevicePolicyResourcesManager;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/admin/DevicePolicyResourcesManager;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/admin/DevicePolicyResourcesManager;->getString(Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/lang/String; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getActiveAdmins(I)Ljava/util/List; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName; -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordQuality(Landroid/content/ComponentName;IZ)I HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwnerAsUser(I)Landroid/content/ComponentName; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStorageEncryptionStatus(Ljava/lang/String;I)I -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getString(Ljava/lang/String;)Landroid/app/admin/ParcelableResource; HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasDeviceOwner()Z HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAdminActive(Landroid/content/ComponentName;I)Z HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isOrganizationOwnedDeviceWithManagedProfile()Z @@ -3031,7 +2941,6 @@ HSPLandroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinde HSPLandroid/app/admin/ParcelableResource$1;-><init>()V HSPLandroid/app/admin/ParcelableResource;-><clinit>()V HSPLandroid/app/admin/ParcelableResource;->loadDefaultDrawable(Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/admin/ParcelableResource;->loadDefaultString(Ljava/util/function/Supplier;)Ljava/lang/String; HSPLandroid/app/assist/AssistContent;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistStructure; @@ -3183,37 +3092,9 @@ HSPLandroid/app/job/IJobService$Stub;->getTransactionName(I)Ljava/lang/String; HSPLandroid/app/job/IJobService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo; HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBackoffPolicy(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBias(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipData(Landroid/app/job/JobInfo$Builder;)Landroid/content/ClipData; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipGrantFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmConstraintFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/PersistableBundle; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlexMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasEarlyConstraint(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasLateConstraint(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmInitialBackoffMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIntervalMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPeriodic(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPersisted(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobId(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobService(Landroid/app/job/JobInfo$Builder;)Landroid/content/ComponentName; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMaxExecutionDelayMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinLatencyMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinimumNetworkChunkBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkDownloadBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkRequest(Landroid/app/job/JobInfo$Builder;)Landroid/net/NetworkRequest; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkUploadBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmPriority(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTransientExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/Bundle; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentMaxDelay(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUpdateDelay(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUris(Landroid/app/job/JobInfo$Builder;)Ljava/util/ArrayList; HSPLandroid/app/job/JobInfo$Builder;-><init>(ILandroid/content/ComponentName;)V HSPLandroid/app/job/JobInfo$Builder;->addTriggerContentUri(Landroid/app/job/JobInfo$TriggerContentUri;)Landroid/app/job/JobInfo$Builder; HSPLandroid/app/job/JobInfo$Builder;->build()Landroid/app/job/JobInfo; -HSPLandroid/app/job/JobInfo$Builder;->build(Z)Landroid/app/job/JobInfo;+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo; HSPLandroid/app/job/JobInfo$Builder;->setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder; HSPLandroid/app/job/JobInfo$Builder;->setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder; HSPLandroid/app/job/JobInfo$Builder;->setImportantWhileForeground(Z)Landroid/app/job/JobInfo$Builder; @@ -3239,7 +3120,6 @@ 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;Landroid/app/job/JobInfo-IA;)V HSPLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/net/NetworkRequest$1;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/job/JobInfo;->enforceValidity(Z)V HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle; @@ -3333,22 +3213,14 @@ HSPLandroid/app/prediction/AppTargetId;-><init>(Ljava/lang/String;)V HSPLandroid/app/prediction/AppTargetId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/prediction/IPredictionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/app/prediction/IPredictionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/prediction/IPredictionCallback; -HSPLandroid/app/search/SearchContext$1;-><init>()V -HSPLandroid/app/search/SearchContext;-><clinit>()V -HSPLandroid/app/search/SearchSessionId$1;-><init>()V -HSPLandroid/app/search/SearchSessionId;-><clinit>()V HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityConfigurationChangeItem; HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V HSPLandroid/app/servertransaction/ActivityLifecycleItem;-><init>()V -HSPLandroid/app/servertransaction/ActivityLifecycleItem;->recycle()V -HSPLandroid/app/servertransaction/ActivityRelaunchItem;-><init>()V HSPLandroid/app/servertransaction/ActivityRelaunchItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/ActivityRelaunchItem;->obtain(Ljava/util/List;Ljava/util/List;ILandroid/util/MergedConfiguration;Z)Landroid/app/servertransaction/ActivityRelaunchItem; HSPLandroid/app/servertransaction/ActivityRelaunchItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/servertransaction/ActivityRelaunchItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V -HSPLandroid/app/servertransaction/ActivityRelaunchItem;->recycle()V HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityResultItem; HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/ActivityResultItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V @@ -3360,17 +3232,12 @@ HSPLandroid/app/servertransaction/BaseClientRequest;->postExecute(Landroid/app/C HSPLandroid/app/servertransaction/BaseClientRequest;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ClientTransaction; HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/ClientTransaction;-><init>()V HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;)V HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ClientTransaction-IA;)V -HSPLandroid/app/servertransaction/ClientTransaction;->addCallback(Landroid/app/servertransaction/ClientTransactionItem;)V HSPLandroid/app/servertransaction/ClientTransaction;->getActivityToken()Landroid/os/IBinder; HSPLandroid/app/servertransaction/ClientTransaction;->getCallbacks()Ljava/util/List; HSPLandroid/app/servertransaction/ClientTransaction;->getLifecycleStateRequest()Landroid/app/servertransaction/ActivityLifecycleItem; -HSPLandroid/app/servertransaction/ClientTransaction;->obtain(Landroid/app/IApplicationThread;Landroid/os/IBinder;)Landroid/app/servertransaction/ClientTransaction; HSPLandroid/app/servertransaction/ClientTransaction;->preExecute(Landroid/app/ClientTransactionHandler;)V -HSPLandroid/app/servertransaction/ClientTransaction;->recycle()V -HSPLandroid/app/servertransaction/ClientTransaction;->setLifecycleStateRequest(Landroid/app/servertransaction/ActivityLifecycleItem;)V HSPLandroid/app/servertransaction/ClientTransactionItem;-><init>()V HSPLandroid/app/servertransaction/ClientTransactionItem;->getPostExecutionState()I HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ConfigurationChangeItem; @@ -3395,8 +3262,6 @@ HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/NewIntentItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V HSPLandroid/app/servertransaction/NewIntentItem;->getPostExecutionState()I -HSPLandroid/app/servertransaction/ObjectPool;->obtain(Ljava/lang/Class;)Landroid/app/servertransaction/ObjectPoolItem;+]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/app/servertransaction/ObjectPool;->recycle(Landroid/app/servertransaction/ObjectPoolItem;)V+]Ljava/lang/Object;megamorphic_types]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/PauseActivityItem; HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/servertransaction/PauseActivityItem;-><init>(Landroid/os/Parcel;)V @@ -3482,89 +3347,19 @@ HSPLandroid/app/slice/SliceSpec;->getRevision()I HSPLandroid/app/slice/SliceSpec;->getType()Ljava/lang/String; HSPLandroid/app/slice/SliceSpec;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/smartspace/SmartspaceAction$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/SmartspaceAction; -HSPLandroid/app/smartspace/SmartspaceAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/SmartspaceAction$Builder;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/smartspace/SmartspaceAction$Builder;->build()Landroid/app/smartspace/SmartspaceAction; -HSPLandroid/app/smartspace/SmartspaceAction$Builder;->setIntent(Landroid/content/Intent;)Landroid/app/smartspace/SmartspaceAction$Builder; HSPLandroid/app/smartspace/SmartspaceAction;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceAction;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/smartspace/SmartspaceAction;-><init>(Ljava/lang/String;Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;)V -HSPLandroid/app/smartspace/SmartspaceAction;-><init>(Ljava/lang/String;Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;Landroid/app/smartspace/SmartspaceAction-IA;)V -HSPLandroid/app/smartspace/SmartspaceAction;->getExtras()Landroid/os/Bundle; -HSPLandroid/app/smartspace/SmartspaceAction;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/smartspace/SmartspaceConfig$1;-><init>()V HSPLandroid/app/smartspace/SmartspaceConfig;-><clinit>()V HSPLandroid/app/smartspace/SmartspaceSessionId$1;-><init>()V HSPLandroid/app/smartspace/SmartspaceSessionId;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceSessionId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/smartspace/SmartspaceTarget$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/SmartspaceTarget; -HSPLandroid/app/smartspace/SmartspaceTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/SmartspaceTarget$Builder;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)V -HSPLandroid/app/smartspace/SmartspaceTarget$Builder;->build()Landroid/app/smartspace/SmartspaceTarget; -HSPLandroid/app/smartspace/SmartspaceTarget$Builder;->setFeatureType(I)Landroid/app/smartspace/SmartspaceTarget$Builder; HSPLandroid/app/smartspace/SmartspaceTarget;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Landroid/os/Parcel;Landroid/app/smartspace/SmartspaceTarget-IA;)V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Ljava/lang/String;Landroid/app/smartspace/SmartspaceAction;Landroid/app/smartspace/SmartspaceAction;JJFLjava/util/List;Ljava/util/List;IZZLjava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/lang/String;Landroid/net/Uri;Landroid/appwidget/AppWidgetProviderInfo;Landroid/app/smartspace/uitemplatedata/BaseTemplateData;)V -HSPLandroid/app/smartspace/SmartspaceTarget;-><init>(Ljava/lang/String;Landroid/app/smartspace/SmartspaceAction;Landroid/app/smartspace/SmartspaceAction;JJFLjava/util/List;Ljava/util/List;IZZLjava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/lang/String;Landroid/net/Uri;Landroid/appwidget/AppWidgetProviderInfo;Landroid/app/smartspace/uitemplatedata/BaseTemplateData;Landroid/app/smartspace/SmartspaceTarget-IA;)V -HSPLandroid/app/smartspace/SmartspaceTarget;->getComponentName()Landroid/content/ComponentName; -HSPLandroid/app/smartspace/SmartspaceTarget;->getCreationTimeMillis()J -HSPLandroid/app/smartspace/SmartspaceTarget;->getFeatureType()I -HSPLandroid/app/smartspace/SmartspaceTarget;->getSmartspaceTargetId()Ljava/lang/String; -HSPLandroid/app/smartspace/SmartspaceTarget;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/smartspace/SmartspaceTargetEvent$1;-><init>()V HSPLandroid/app/smartspace/SmartspaceTargetEvent;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceTargetEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/smartspace/SmartspaceUtils;->isEmpty(Landroid/app/smartspace/uitemplatedata/Text;)Z -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/BaseTemplateData; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/BaseTemplateData;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Icon$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/Icon$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/Icon; -HSPLandroid/app/smartspace/uitemplatedata/Icon$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/Icon;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/Icon;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Icon;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/TapAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/TapAction; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$Builder;-><init>(Ljava/lang/CharSequence;)V -HSPLandroid/app/smartspace/uitemplatedata/TapAction$Builder;->build()Landroid/app/smartspace/uitemplatedata/TapAction; -HSPLandroid/app/smartspace/uitemplatedata/TapAction$Builder;->setIntent(Landroid/content/Intent;)Landroid/app/smartspace/uitemplatedata/TapAction$Builder; -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><init>(Ljava/lang/CharSequence;Landroid/content/Intent;Landroid/app/PendingIntent;Landroid/os/UserHandle;Landroid/os/Bundle;Z)V -HSPLandroid/app/smartspace/uitemplatedata/TapAction;-><init>(Ljava/lang/CharSequence;Landroid/content/Intent;Landroid/app/PendingIntent;Landroid/os/UserHandle;Landroid/os/Bundle;ZLandroid/app/smartspace/uitemplatedata/TapAction-IA;)V -HSPLandroid/app/smartspace/uitemplatedata/TapAction;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Text$1;-><init>()V -HSPLandroid/app/smartspace/uitemplatedata/Text$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/smartspace/uitemplatedata/Text; -HSPLandroid/app/smartspace/uitemplatedata/Text$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/smartspace/uitemplatedata/Text;-><clinit>()V -HSPLandroid/app/smartspace/uitemplatedata/Text;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/smartspace/uitemplatedata/Text;->getText()Ljava/lang/CharSequence; -HSPLandroid/app/smartspace/uitemplatedata/Text;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/text/TextUtils$TruncateAt;Landroid/text/TextUtils$TruncateAt;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/app/time/TimeZoneCapabilities$Builder;-><init>(Landroid/os/UserHandle;)V HSPLandroid/app/time/TimeZoneCapabilities$Builder;->build()Landroid/app/time/TimeZoneCapabilities; HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureAutoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureGeoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; -HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setSuggestManualTimeZoneCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; HSPLandroid/app/time/TimeZoneCapabilities$Builder;->verifyCapabilitySet(ILjava/lang/String;)V HSPLandroid/app/time/TimeZoneCapabilities;-><init>(Landroid/app/time/TimeZoneCapabilities$Builder;)V HSPLandroid/app/time/TimeZoneCapabilitiesAndConfig;-><init>(Landroid/app/time/TimeZoneCapabilities;Landroid/app/time/TimeZoneConfiguration;)V @@ -3595,7 +3390,6 @@ HSPLandroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinde HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents; -HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryUsageStats(IJJLjava/lang/String;I)Landroid/content/pm/ParceledListSlice; HSPLandroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager; HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/StorageStats; HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -3652,8 +3446,6 @@ HSPLandroid/appwidget/AppWidgetProviderInfo;-><init>(Landroid/os/Parcel;)V+]Land HSPLandroid/appwidget/AppWidgetProviderInfo;->getProfile()Landroid/os/UserHandle; HSPLandroid/appwidget/AppWidgetProviderInfo;->updateDimensions(Landroid/util/DisplayMetrics;)V HSPLandroid/appwidget/AppWidgetProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/companion/CompanionDeviceManager;-><init>(Landroid/companion/ICompanionDeviceManager;Landroid/content/Context;)V -HSPLandroid/companion/CompanionDeviceManager;->checkFeaturePresent()Z HSPLandroid/companion/ICompanionDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceManager; HSPLandroid/compat/Compatibility;->isChangeEnabled(J)Z HSPLandroid/compat/Compatibility;->setBehaviorChangeDelegate(Landroid/compat/Compatibility$BehaviorChangeDelegate;)V @@ -3688,21 +3480,16 @@ HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/Str HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSource;Landroid/content/AttributionSource;)V HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSourceState;)V HSPLandroid/content/AttributionSource;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/AttributionSource;->asScopedParcelState()Landroid/content/AttributionSource$ScopedParcelState; HSPLandroid/content/AttributionSource;->asState()Landroid/content/AttributionSourceState; HSPLandroid/content/AttributionSource;->checkCallingPid()Z HSPLandroid/content/AttributionSource;->checkCallingUid()Z HSPLandroid/content/AttributionSource;->enforceCallingPid()V HSPLandroid/content/AttributionSource;->enforceCallingUid()V -HSPLandroid/content/AttributionSource;->enforceCallingUidAndPid()V HSPLandroid/content/AttributionSource;->getAttributionTag()Ljava/lang/String; HSPLandroid/content/AttributionSource;->getNext()Landroid/content/AttributionSource; -HSPLandroid/content/AttributionSource;->getNextAttributionTag()Ljava/lang/String; -HSPLandroid/content/AttributionSource;->getNextUid()I HSPLandroid/content/AttributionSource;->getPackageName()Ljava/lang/String; HSPLandroid/content/AttributionSource;->getRenouncedPermissions()Ljava/util/Set; HSPLandroid/content/AttributionSource;->getUid()I -HSPLandroid/content/AttributionSource;->hashCode()I+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; HSPLandroid/content/AttributionSource;->myAttributionSource()Landroid/content/AttributionSource; HSPLandroid/content/AttributionSource;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/AttributionSourceState$1;-><init>()V @@ -3749,16 +3536,12 @@ HSPLandroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item; HSPLandroid/content/ClipData;->getItemCount()I HSPLandroid/content/ClipData;->isStyledText()Z HSPLandroid/content/ClipData;->newIntent(Ljava/lang/CharSequence;Landroid/content/Intent;)Landroid/content/ClipData; -HSPLandroid/content/ClipData;->prepareToEnterProcess(Landroid/content/AttributionSource;)V HSPLandroid/content/ClipData;->prepareToLeaveProcess(ZI)V HSPLandroid/content/ClipData;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/ClipDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ClipDescription; -HSPLandroid/content/ClipDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/ClipDescription;-><init>(Landroid/os/Parcel;)V HSPLandroid/content/ClipDescription;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;)V HSPLandroid/content/ClipDescription;->compareMimeTypes(Ljava/lang/String;Ljava/lang/String;)Z HSPLandroid/content/ClipDescription;->confidencesToBundle()Landroid/os/Bundle; -HSPLandroid/content/ClipDescription;->getTimestamp()J HSPLandroid/content/ClipDescription;->readBundleToConfidences(Landroid/os/Bundle;)V HSPLandroid/content/ClipDescription;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ClipboardManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V @@ -3770,7 +3553,6 @@ HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda1;->acc HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;-><init>(Landroid/content/res/Configuration;)V HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLandroid/content/ComponentCallbacksController;-><init>()V -HSPLandroid/content/ComponentCallbacksController;->clearCallbacks()V HSPLandroid/content/ComponentCallbacksController;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V HSPLandroid/content/ComponentCallbacksController;->dispatchLowMemory()V HSPLandroid/content/ComponentCallbacksController;->dispatchTrimMemory(I)V @@ -3812,7 +3594,6 @@ HSPLandroid/content/ContentCaptureOptions;-><init>(ZIIIIILandroid/util/ArraySet; HSPLandroid/content/ContentCaptureOptions;->isWhitelisted(Landroid/content/Context;)Z HSPLandroid/content/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ContentProvider$Transport;-><init>(Landroid/content/ContentProvider;)V -HSPLandroid/content/ContentProvider$Transport;->applyBatch(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; HSPLandroid/content/ContentProvider$Transport;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; HSPLandroid/content/ContentProvider$Transport;->createCancellationSignal()Landroid/os/ICancellationSignal; HSPLandroid/content/ContentProvider$Transport;->delete(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/os/Bundle;)I @@ -3932,7 +3713,6 @@ HSPLandroid/content/ContentProviderOperation;->resolveSelectionArgsBackReference HSPLandroid/content/ContentProviderOperation;->resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues; HSPLandroid/content/ContentProviderOperation;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ContentProviderProxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/ContentProviderProxy;->applyBatch(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder; HSPLandroid/content/ContentProviderProxy;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; HSPLandroid/content/ContentProviderProxy;->createCancellationSignal()Landroid/os/ICancellationSignal; @@ -4165,7 +3945,6 @@ 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;->isConfigurationContext()Z+]Landroid/content/Context;missing_types HSPLandroid/content/ContextWrapper;->isDeviceProtectedStorage()Z HSPLandroid/content/ContextWrapper;->isRestricted()Z HSPLandroid/content/ContextWrapper;->isUiContext()Z @@ -4200,8 +3979,6 @@ HSPLandroid/content/ContextWrapper;->unregisterComponentCallbacks(Landroid/conte HSPLandroid/content/ContextWrapper;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V HSPLandroid/content/ContextWrapper;->updateDisplay(I)V HSPLandroid/content/IClipboard$Stub$Proxy;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/content/IClipboard$Stub$Proxy;->getPrimaryClip(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/ClipData; -HSPLandroid/content/IClipboard$Stub$Proxy;->getPrimaryClipDescription(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/ClipDescription; HSPLandroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/content/IContentService$Stub$Proxy;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V HSPLandroid/content/IContentService$Stub$Proxy;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V @@ -4415,7 +4192,6 @@ HSPLandroid/content/IntentSender;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/LocusId; HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/LocusId;-><init>(Ljava/lang/String;)V -HSPLandroid/content/LocusId;->getId()Ljava/lang/String; HSPLandroid/content/LocusId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/PeriodicSync; HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -4495,8 +4271,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>()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 @@ -4563,7 +4338,6 @@ HSPLandroid/content/pm/BaseParceledListSlice;->readCreator(Landroid/os/Parcelabl 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/ChangedPackages;->getPackageNames()Ljava/util/List; 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 @@ -4611,7 +4385,6 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(JI)Landroid/content/pm/ParceledListSlice; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String; @@ -4621,7 +4394,6 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroi HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;JI)I HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionControllerPackageName()Ljava/lang/String; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPropertyAsUser(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PackageManager$Property; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getReceiverInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo; @@ -4649,15 +4421,10 @@ HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Lan HSPLandroid/content/pm/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getShortcuts(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z HSPLandroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService; HSPLandroid/content/pm/IncrementalStatesInfo$1;-><init>()V HSPLandroid/content/pm/IncrementalStatesInfo;-><clinit>()V -HSPLandroid/content/pm/InstallSourceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/InstallSourceInfo; -HSPLandroid/content/pm/InstallSourceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/InstallSourceInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/InstallSourceInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/InstallSourceInfo-IA;)V HSPLandroid/content/pm/InstallSourceInfo;->getInitiatingPackageName()Ljava/lang/String; HSPLandroid/content/pm/InstallSourceInfo;->getInstallingPackageName()Ljava/lang/String; HSPLandroid/content/pm/LauncherActivityInfoInternal$1;-><init>()V @@ -4895,7 +4662,6 @@ HSPLandroid/content/pm/SharedLibraryInfo;->getAllCodePaths()Ljava/util/List; HSPLandroid/content/pm/SharedLibraryInfo;->getDependencies()Ljava/util/List; HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String; HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String; -HSPLandroid/content/pm/SharedLibraryInfo;->getType()I HSPLandroid/content/pm/SharedLibraryInfo;->isNative()Z HSPLandroid/content/pm/SharedLibraryInfo;->isSdk()Z HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V @@ -4922,21 +4688,17 @@ HSPLandroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V HSPLandroid/content/pm/ShortcutInfo;->getActivity()Landroid/content/ComponentName; HSPLandroid/content/pm/ShortcutInfo;->getCategories()Ljava/util/Set; HSPLandroid/content/pm/ShortcutInfo;->getDisabledMessage()Ljava/lang/CharSequence; -HSPLandroid/content/pm/ShortcutInfo;->getDisabledReason()I HSPLandroid/content/pm/ShortcutInfo;->getDisabledReasonForRestoreIssue(Landroid/content/Context;I)Ljava/lang/String; HSPLandroid/content/pm/ShortcutInfo;->getExtras()Landroid/os/PersistableBundle; HSPLandroid/content/pm/ShortcutInfo;->getIconResourceId()I HSPLandroid/content/pm/ShortcutInfo;->getId()Ljava/lang/String; -HSPLandroid/content/pm/ShortcutInfo;->getIntents()[Landroid/content/Intent; HSPLandroid/content/pm/ShortcutInfo;->getLastChangedTimestamp()J -HSPLandroid/content/pm/ShortcutInfo;->getLocusId()Landroid/content/LocusId; HSPLandroid/content/pm/ShortcutInfo;->getLongLabel()Ljava/lang/CharSequence; HSPLandroid/content/pm/ShortcutInfo;->getPackage()Ljava/lang/String; HSPLandroid/content/pm/ShortcutInfo;->getPersons()[Landroid/app/Person; HSPLandroid/content/pm/ShortcutInfo;->getRank()I HSPLandroid/content/pm/ShortcutInfo;->getShortLabel()Ljava/lang/CharSequence; HSPLandroid/content/pm/ShortcutInfo;->getUserHandle()Landroid/os/UserHandle; -HSPLandroid/content/pm/ShortcutInfo;->hasAdaptiveBitmap()Z HSPLandroid/content/pm/ShortcutInfo;->hasFlags(I)Z HSPLandroid/content/pm/ShortcutInfo;->hasIconFile()Z HSPLandroid/content/pm/ShortcutInfo;->hasIconResource()Z @@ -4946,7 +4708,6 @@ HSPLandroid/content/pm/ShortcutInfo;->isCached()Z HSPLandroid/content/pm/ShortcutInfo;->isDeclaredInManifest()Z HSPLandroid/content/pm/ShortcutInfo;->isDynamic()Z HSPLandroid/content/pm/ShortcutInfo;->isEnabled()Z -HSPLandroid/content/pm/ShortcutInfo;->isImmutable()Z HSPLandroid/content/pm/ShortcutInfo;->isPinned()Z HSPLandroid/content/pm/ShortcutInfo;->setIntentExtras(Landroid/content/Intent;Landroid/os/PersistableBundle;)Landroid/content/Intent; HSPLandroid/content/pm/ShortcutInfo;->updateTimestamp()V @@ -4960,7 +4721,6 @@ HSPLandroid/content/pm/ShortcutManager;->getManifestShortcuts()Ljava/util/List; HSPLandroid/content/pm/ShortcutManager;->getMaxShortcutCountPerActivity()I HSPLandroid/content/pm/ShortcutManager;->getPinnedShortcuts()Ljava/util/List; HSPLandroid/content/pm/ShortcutManager;->injectMyUserId()I -HSPLandroid/content/pm/ShortcutManager;->reportShortcutUsed(Ljava/lang/String;)V HSPLandroid/content/pm/ShortcutManager;->setDynamicShortcuts(Ljava/util/List;)Z HSPLandroid/content/pm/ShortcutManager;->updateShortcuts(Ljava/util/List;)Z HSPLandroid/content/pm/ShortcutQueryWrapper;->writeToParcel(Landroid/os/Parcel;I)V @@ -5346,7 +5106,6 @@ HSPLandroid/content/res/Resources;->getValueForDensity(IILandroid/util/TypedValu 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;->lambda$newTheme$0(Ljava/lang/ref/WeakReference;)Z HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; HSPLandroid/content/res/Resources;->loadComplexColor(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; HSPLandroid/content/res/Resources;->loadDrawable(Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; @@ -5461,7 +5220,6 @@ HSPLandroid/content/res/ThemedResourceCache;->pruneEntriesLocked(Landroid/util/L HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;)V HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;Z)V HSPLandroid/content/res/TypedArray;-><init>(Landroid/content/res/Resources;)V -HSPLandroid/content/res/TypedArray;->close()V HSPLandroid/content/res/TypedArray;->extractThemeAttrs()[I HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I HSPLandroid/content/res/TypedArray;->getBoolean(IZ)Z @@ -5655,7 +5413,6 @@ HSPLandroid/database/CursorWindow$1;->createFromParcel(Landroid/os/Parcel;)Ljava HSPLandroid/database/CursorWindow$1;->newArray(I)[Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;)V -HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;Landroid/database/CursorWindow-IA;)V HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;)V HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V HSPLandroid/database/CursorWindow;->allocRow()Z @@ -5791,7 +5548,6 @@ HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatement;-><init>(Landroid HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(Landroid/database/sqlite/SQLiteConnection;I)V HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->-$$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 @@ -5840,7 +5596,6 @@ HSPLandroid/database/sqlite/SQLiteConnection;->setSyncModeFromConfiguration()V HSPLandroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter-IA;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/os/Looper;JLjava/lang/Runnable;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionAcquired(Landroid/database/sqlite/SQLiteConnection;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionClosed(Landroid/database/sqlite/SQLiteConnection;)V HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionReleased(Landroid/database/sqlite/SQLiteConnection;)V @@ -5866,7 +5621,6 @@ 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;->onConnectionLeaked()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->onStatementExecuted(J)V HSPLandroid/database/sqlite/SQLiteConnectionPool;->open()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->open(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)Landroid/database/sqlite/SQLiteConnectionPool; @@ -5877,7 +5631,6 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Landr 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;->setMaxConnectionPoolSizeLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->setupIdleConnectionHandler(Landroid/os/Looper;JLjava/lang/Runnable;)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; @@ -6070,7 +5823,6 @@ HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setStrict(Z)V HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setTables(Ljava/lang/String;)V HSPLandroid/database/sqlite/SQLiteQueryBuilder;->wrap(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>()V -HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>(Landroid/database/sqlite/SQLiteSession$Transaction-IA;)V HSPLandroid/database/sqlite/SQLiteSession;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V HSPLandroid/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)V HSPLandroid/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V @@ -6109,23 +5861,11 @@ HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/Str HSPLandroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;Ljava/lang/String;I)V HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;I)V HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/ddm/DdmHandleExit;->onConnected()V -PLandroid/ddm/DdmHandleExit;->onDisconnected()V HSPLandroid/ddm/DdmHandleHeap;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleHeap;->onConnected()V -PLandroid/ddm/DdmHandleHeap;->onDisconnected()V HSPLandroid/ddm/DdmHandleHello;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; HSPLandroid/ddm/DdmHandleHello;->handleFEAT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; HSPLandroid/ddm/DdmHandleHello;->handleHELO(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleHello;->onConnected()V -PLandroid/ddm/DdmHandleHello;->onDisconnected()V -HSPLandroid/ddm/DdmHandleNativeHeap;->onConnected()V -PLandroid/ddm/DdmHandleNativeHeap;->onDisconnected()V HSPLandroid/ddm/DdmHandleProfiling;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleProfiling;->onConnected()V -PLandroid/ddm/DdmHandleProfiling;->onDisconnected()V -HSPLandroid/ddm/DdmHandleViewDebug;->onConnected()V -PLandroid/ddm/DdmHandleViewDebug;->onDisconnected()V HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Landroid/view/SurfaceControl;III)V HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Z)V HSPLandroid/graphics/BLASTBufferQueue;->createSurface()Landroid/view/Surface; @@ -6148,7 +5888,6 @@ HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/g 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;->drawPaint(Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V @@ -6159,7 +5898,6 @@ HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitm 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/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/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V @@ -6167,10 +5905,8 @@ HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDu HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawPaint(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 -HSPLandroid/graphics/BaseRecordingCanvas;->drawPicture(Landroid/graphics/Picture;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; @@ -6185,7 +5921,6 @@ HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/ 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;->asShared()Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->checkHardware(Ljava/lang/String;)V HSPLandroid/graphics/Bitmap;->checkPixelAccess(II)V HSPLandroid/graphics/Bitmap;->checkPixelsAccess(IIIIII[I)V @@ -6199,8 +5934,6 @@ HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)La HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; @@ -6295,7 +6028,6 @@ HSPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V HSPLandroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawOval(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawPaint(Landroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V @@ -6377,16 +6109,12 @@ HSPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V HSPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J HSPLandroid/graphics/ColorSpace$Named;->values()[Landroid/graphics/ColorSpace$Named; HSPLandroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/ColorSpace$Rgb;)V -HSPLandroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda0;->applyAsDouble(D)D -HSPLandroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda3;->applyAsDouble(D)D HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;-><init>(DDDDDDD)V HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;->hashCode()I -HSPLandroid/graphics/ColorSpace$Rgb;->$r8$lambda$QGR5f_dq259rVcM_HPGB_A_avAs(Landroid/graphics/ColorSpace$Rgb;D)D HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)V HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V HSPLandroid/graphics/ColorSpace$Rgb;->area([F)F -HSPLandroid/graphics/ColorSpace$Rgb;->clamp(D)D HSPLandroid/graphics/ColorSpace$Rgb;->computePrimaries([F)[F HSPLandroid/graphics/ColorSpace$Rgb;->computeWhitePoint([F)[F HSPLandroid/graphics/ColorSpace$Rgb;->computeXYZMatrix([F[F)[F @@ -6400,12 +6128,10 @@ HSPLandroid/graphics/ColorSpace$Rgb;->isGray([F)Z HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb()Z HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb([F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFI)Z HSPLandroid/graphics/ColorSpace$Rgb;->isWideGamut([FFF)Z -HSPLandroid/graphics/ColorSpace$Rgb;->lambda$new$2(Landroid/graphics/ColorSpace$Rgb$TransferParameters;D)D HSPLandroid/graphics/ColorSpace$Rgb;->xyPrimaries([F)[F HSPLandroid/graphics/ColorSpace$Rgb;->xyWhitePoint([F)[F HSPLandroid/graphics/ColorSpace;->-$$Nest$smadaptToIlluminantD50([F[F)[F HSPLandroid/graphics/ColorSpace;->-$$Nest$sminverse3x3([F)[F -HSPLandroid/graphics/ColorSpace;->-$$Nest$smresponse(DDDDDD)D HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[FLandroid/graphics/ColorSpace$Adaptation;)Landroid/graphics/ColorSpace; HSPLandroid/graphics/ColorSpace;->adaptToIlluminantD50([F[F)[F @@ -6414,7 +6140,6 @@ HSPLandroid/graphics/ColorSpace;->compare(Landroid/graphics/ColorSpace$Rgb$Trans HSPLandroid/graphics/ColorSpace;->compare([F[F)Z HSPLandroid/graphics/ColorSpace;->get(I)Landroid/graphics/ColorSpace; HSPLandroid/graphics/ColorSpace;->get(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/ColorSpace;->getId()I HSPLandroid/graphics/ColorSpace;->getModel()Landroid/graphics/ColorSpace$Model; HSPLandroid/graphics/ColorSpace;->getName()Ljava/lang/String; HSPLandroid/graphics/ColorSpace;->inverse3x3([F)[F @@ -6422,11 +6147,9 @@ HSPLandroid/graphics/ColorSpace;->match([FLandroid/graphics/ColorSpace$Rgb$Trans HSPLandroid/graphics/ColorSpace;->mul3x3([F[F)[F HSPLandroid/graphics/ColorSpace;->mul3x3Diag([F[F)[F HSPLandroid/graphics/ColorSpace;->mul3x3Float3([F[F)[F -HSPLandroid/graphics/ColorSpace;->response(DDDDDD)D HSPLandroid/graphics/Compatibility;-><clinit>()V HSPLandroid/graphics/Compatibility;->getTargetSdkVersion()I HSPLandroid/graphics/Compatibility;->setTargetSdkVersion(I)V -HSPLandroid/graphics/DashPathEffect;-><init>([FF)V HSPLandroid/graphics/DrawFilter;-><init>()V HSPLandroid/graphics/FrameInfo;-><init>()V HSPLandroid/graphics/FrameInfo;->addFlags(J)V @@ -6451,10 +6174,10 @@ HSPLandroid/graphics/HardwareRenderer;-><init>()V HSPLandroid/graphics/HardwareRenderer;->addObserver(Landroid/graphics/HardwareRendererObserver;)V HSPLandroid/graphics/HardwareRenderer;->allocateBuffers()V HSPLandroid/graphics/HardwareRenderer;->clearContent()V -HSPLandroid/graphics/HardwareRenderer;->createHardwareBitmap(Landroid/graphics/RenderNode;II)Landroid/graphics/Bitmap; HSPLandroid/graphics/HardwareRenderer;->destroy()V HSPLandroid/graphics/HardwareRenderer;->detachSurfaceTexture(J)V HSPLandroid/graphics/HardwareRenderer;->dumpGlobalProfileInfo(Ljava/io/FileDescriptor;I)V +HSPLandroid/graphics/HardwareRenderer;->isDrawingEnabled()Z HSPLandroid/graphics/HardwareRenderer;->loadSystemProperties()Z HSPLandroid/graphics/HardwareRenderer;->notifyFramePending()V HSPLandroid/graphics/HardwareRenderer;->onLayerDestroyed(Landroid/graphics/TextureLayer;)V @@ -6507,12 +6230,9 @@ HSPLandroid/graphics/ImageDecoder$InputStreamSource;-><init>(Landroid/content/re HSPLandroid/graphics/ImageDecoder$InputStreamSource;->createImageDecoder(Z)Landroid/graphics/ImageDecoder; HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getDensity()I HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getResources()Landroid/content/res/Resources; -HSPLandroid/graphics/ImageDecoder$InputStreamSource;->toString()Ljava/lang/String; HSPLandroid/graphics/ImageDecoder$Source;-><init>()V HSPLandroid/graphics/ImageDecoder$Source;-><init>(Landroid/graphics/ImageDecoder$Source-IA;)V HSPLandroid/graphics/ImageDecoder$Source;->computeDstDensity()I -HSPLandroid/graphics/ImageDecoder$Source;->getDensity()I -HSPLandroid/graphics/ImageDecoder;->-$$Nest$smcreateFromAsset(Landroid/content/res/AssetManager$AssetInputStream;ZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder; HSPLandroid/graphics/ImageDecoder;->-$$Nest$smdescribeDecoderForTrace(Landroid/graphics/ImageDecoder;)Ljava/lang/String; HSPLandroid/graphics/ImageDecoder;-><init>(JIIZZ)V HSPLandroid/graphics/ImageDecoder;->callHeaderDecoded(Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;Landroid/graphics/ImageDecoder$Source;)V @@ -6679,7 +6399,6 @@ HSPLandroid/graphics/Paint;->isFilterBitmap()Z HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F -HSPLandroid/graphics/Paint;->measureText([CII)F HSPLandroid/graphics/Paint;->reset()V HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V HSPLandroid/graphics/Paint;->setAlpha(I)V @@ -6744,7 +6463,6 @@ HSPLandroid/graphics/Path;->isConvex()Z HSPLandroid/graphics/Path;->isEmpty()Z HSPLandroid/graphics/Path;->lineTo(FF)V HSPLandroid/graphics/Path;->moveTo(FF)V -HSPLandroid/graphics/Path;->mutateNI()J 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 @@ -6756,8 +6474,6 @@ HSPLandroid/graphics/Path;->set(Landroid/graphics/Path;)V HSPLandroid/graphics/Path;->setFillType(Landroid/graphics/Path$FillType;)V HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;)V HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V -HSPLandroid/graphics/PathEffect;-><init>()V -HSPLandroid/graphics/PathEffect;->finalize()V HSPLandroid/graphics/PathMeasure;-><init>()V HSPLandroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V HSPLandroid/graphics/PathMeasure;->finalize()V @@ -6772,8 +6488,6 @@ HSPLandroid/graphics/Picture;->endRecording()V HSPLandroid/graphics/Picture;->finalize()V HSPLandroid/graphics/Picture;->getHeight()I HSPLandroid/graphics/Picture;->getWidth()I -HSPLandroid/graphics/Picture;->requiresHardwareAcceleration()Z -HSPLandroid/graphics/Picture;->verifyValid()V HSPLandroid/graphics/PixelFormat;->formatHasAlpha(I)Z HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Point; HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -6786,9 +6500,7 @@ HSPLandroid/graphics/Point;->hashCode()I HSPLandroid/graphics/Point;->offset(II)V HSPLandroid/graphics/Point;->readFromParcel(Landroid/os/Parcel;)V HSPLandroid/graphics/Point;->set(II)V -HSPLandroid/graphics/Point;->set(Landroid/graphics/Point;)V HSPLandroid/graphics/Point;->toString()Ljava/lang/String; -HSPLandroid/graphics/Point;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/graphics/PointF;-><init>()V HSPLandroid/graphics/PointF;-><init>(FF)V HSPLandroid/graphics/PointF;->equals(FF)Z @@ -6833,7 +6545,6 @@ HSPLandroid/graphics/Rect;->contains(Landroid/graphics/Rect;)Z HSPLandroid/graphics/Rect;->equals(Ljava/lang/Object;)Z HSPLandroid/graphics/Rect;->exactCenterX()F HSPLandroid/graphics/Rect;->exactCenterY()F -HSPLandroid/graphics/Rect;->hashCode()I HSPLandroid/graphics/Rect;->height()I HSPLandroid/graphics/Rect;->inset(II)V HSPLandroid/graphics/Rect;->inset(IIII)V @@ -6842,7 +6553,6 @@ HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Rect;)V HSPLandroid/graphics/Rect;->intersect(IIII)Z HSPLandroid/graphics/Rect;->intersect(Landroid/graphics/Rect;)Z HSPLandroid/graphics/Rect;->intersectUnchecked(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Rect;->intersects(IIII)Z HSPLandroid/graphics/Rect;->intersects(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z HSPLandroid/graphics/Rect;->isEmpty()Z HSPLandroid/graphics/Rect;->offset(II)V @@ -6910,11 +6620,9 @@ 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;)V HSPLandroid/graphics/RenderNode;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V HSPLandroid/graphics/RenderNode;->addPositionUpdateListener(Landroid/graphics/RenderNode$PositionUpdateListener;)V HSPLandroid/graphics/RenderNode;->adopt(J)Landroid/graphics/RenderNode; -HSPLandroid/graphics/RenderNode;->beginRecording()Landroid/graphics/RecordingCanvas;+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; HSPLandroid/graphics/RenderNode;->beginRecording(II)Landroid/graphics/RecordingCanvas; HSPLandroid/graphics/RenderNode;->clearStretch()Z HSPLandroid/graphics/RenderNode;->create(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)Landroid/graphics/RenderNode; @@ -6950,8 +6658,6 @@ HSPLandroid/graphics/RenderNode;->setLayerType(I)Z HSPLandroid/graphics/RenderNode;->setLeftTopRightBottom(IIII)Z HSPLandroid/graphics/RenderNode;->setOutline(Landroid/graphics/Outline;)Z HSPLandroid/graphics/RenderNode;->setPivotX(F)Z -HSPLandroid/graphics/RenderNode;->setPivotY(F)Z -HSPLandroid/graphics/RenderNode;->setPosition(IIII)Z HSPLandroid/graphics/RenderNode;->setProjectBackwards(Z)Z HSPLandroid/graphics/RenderNode;->setProjectionReceiver(Z)Z HSPLandroid/graphics/RenderNode;->setRenderEffect(Landroid/graphics/RenderEffect;)Z @@ -7001,6 +6707,7 @@ HSPLandroid/graphics/Typeface$CustomFallbackBuilder;-><init>(Landroid/graphics/f HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->build()Landroid/graphics/Typeface; HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->setStyle(Landroid/graphics/fonts/FontStyle;)Landroid/graphics/Typeface$CustomFallbackBuilder; HSPLandroid/graphics/Typeface;-><init>(J)V +HSPLandroid/graphics/Typeface;-><init>(JLjava/lang/String;)V HSPLandroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface; HSPLandroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface; HSPLandroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface; @@ -7271,7 +6978,6 @@ HSPLandroid/graphics/drawable/ColorDrawable;-><init>()V HSPLandroid/graphics/drawable/ColorDrawable;-><init>(I)V HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;Landroid/graphics/drawable/ColorDrawable-IA;)V -HSPLandroid/graphics/drawable/ColorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/ColorDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/ColorDrawable;->clearMutated()V HSPLandroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; @@ -7293,7 +6999,6 @@ HSPLandroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/ HSPLandroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/Drawable$ConstantState;-><init>()V HSPLandroid/graphics/drawable/Drawable$ConstantState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; HSPLandroid/graphics/drawable/Drawable;-><init>()V HSPLandroid/graphics/drawable/Drawable;->applyTheme(Landroid/content/res/Resources$Theme;)V @@ -7489,10 +7194,8 @@ HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setStroke(ILandro HSPLandroid/graphics/drawable/GradientDrawable;-><init>()V HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;Landroid/graphics/drawable/GradientDrawable-IA;)V -HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/GradientDrawable;->buildRing(Landroid/graphics/drawable/GradientDrawable$GradientState;)Landroid/graphics/Path;+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/graphics/drawable/GradientDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas; @@ -7520,8 +7223,6 @@ HSPLandroid/graphics/drawable/GradientDrawable;->setAlpha(I)V HSPLandroid/graphics/drawable/GradientDrawable;->setColor(I)V HSPLandroid/graphics/drawable/GradientDrawable;->setColor(Landroid/content/res/ColorStateList;)V HSPLandroid/graphics/drawable/GradientDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/GradientDrawable;->setColors([I)V -HSPLandroid/graphics/drawable/GradientDrawable;->setColors([I[F)V+]Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/graphics/drawable/GradientDrawable$GradientState;]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable; HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadii([F)V HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadius(F)V HSPLandroid/graphics/drawable/GradientDrawable;->setDither(Z)V @@ -7562,8 +7263,6 @@ 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;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon;->typeToString(I)Ljava/lang/String; HSPLandroid/graphics/drawable/Icon;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/InsetDrawable$InsetState;[I)V HSPLandroid/graphics/drawable/InsetDrawable$InsetState;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V @@ -7670,16 +7369,6 @@ HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphic HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/LayerDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/graphics/drawable/LevelListDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->addLevel(IILandroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->indexOfLevel(I)I -HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/LevelListDrawable;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/LevelListDrawable;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/content/res/Resources;Landroid/graphics/drawable/LevelListDrawable-IA;)V -HSPLandroid/graphics/drawable/LevelListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/LevelListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/LevelListDrawable;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/LevelListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V HSPLandroid/graphics/drawable/NinePatchDrawable$$ExternalSyntheticLambda0;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>()V HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;)V @@ -7732,8 +7421,6 @@ HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getPr HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getShader()Landroid/graphics/drawable/RippleShader; HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getX()Ljava/lang/Object; HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getY()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->setOrigin(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->setRadius(Ljava/lang/Object;)V HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;-><init>(Landroid/graphics/drawable/RippleAnimationSession;)V HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationCancel(Landroid/animation/Animator;)V HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V @@ -7759,7 +7446,6 @@ HSPLandroid/graphics/drawable/RippleAnimationSession;->onAnimationEnd(Landroid/a HSPLandroid/graphics/drawable/RippleAnimationSession;->setForceSoftwareAnimation(Z)Landroid/graphics/drawable/RippleAnimationSession; HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnAnimationUpdated(Ljava/lang/Runnable;)Landroid/graphics/drawable/RippleAnimationSession; HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnSessionEnd(Ljava/util/function/Consumer;)Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleAnimationSession;->setRadius(F)V+]Landroid/graphics/drawable/RippleShader;Landroid/graphics/drawable/RippleShader;]Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; HSPLandroid/graphics/drawable/RippleAnimationSession;->startAnimation(Landroid/animation/Animator;Landroid/animation/Animator;)V HSPLandroid/graphics/drawable/RippleAnimationSession;->useRTAnimations(Landroid/graphics/Canvas;)Z HSPLandroid/graphics/drawable/RippleComponent;->onBoundsChange()V @@ -7822,7 +7508,6 @@ HSPLandroid/graphics/drawable/RippleDrawable;->setColor(Landroid/content/res/Col HSPLandroid/graphics/drawable/RippleDrawable;->setHotspot(FF)V HSPLandroid/graphics/drawable/RippleDrawable;->setHotspotBounds(IIII)V HSPLandroid/graphics/drawable/RippleDrawable;->setPaddingMode(I)V -HSPLandroid/graphics/drawable/RippleDrawable;->setRadius(I)V HSPLandroid/graphics/drawable/RippleDrawable;->setRippleActive(Z)V HSPLandroid/graphics/drawable/RippleDrawable;->setVisible(ZZ)Z HSPLandroid/graphics/drawable/RippleDrawable;->startBackgroundAnimation()V+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; @@ -7871,10 +7556,8 @@ HSPLandroid/graphics/drawable/RippleShader;->setRadius(F)V HSPLandroid/graphics/drawable/RippleShader;->setResolution(FF)V HSPLandroid/graphics/drawable/RippleShader;->setShader(Landroid/graphics/Shader;)V HSPLandroid/graphics/drawable/RippleShader;->setTouch(FF)V -HSPLandroid/graphics/drawable/RotateDrawable$RotateState;->-$$Nest$fgetmThemeAttrs(Landroid/graphics/drawable/RotateDrawable$RotateState;)[I HSPLandroid/graphics/drawable/RotateDrawable$RotateState;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/RotateDrawable$RotateState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/RotateDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/RotateDrawable;->draw(Landroid/graphics/Canvas;)V HSPLandroid/graphics/drawable/RotateDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/RotateDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; @@ -8167,7 +7850,6 @@ HSPLandroid/hardware/GeomagneticField;->computeGeocentricCoordinates(FFF)V HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/HardwareBuffer; HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/hardware/HardwareBuffer;-><init>(J)V -HSPLandroid/hardware/HardwareBuffer;->checkClosed(Ljava/lang/String;)V HSPLandroid/hardware/HardwareBuffer;->close()V HSPLandroid/hardware/HardwareBuffer;->finalize()V HSPLandroid/hardware/HardwareBuffer;->getFormat()I @@ -8179,9 +7861,6 @@ HSPLandroid/hardware/ICameraService$Stub$Proxy;->getCameraCharacteristics(Ljava/ HSPLandroid/hardware/ICameraService$Stub$Proxy;->getConcurrentCameraIds()[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination; HSPLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService; HSPLandroid/hardware/ICameraServiceListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/ISensorPrivacyListener$Stub;-><init>()V -HSPLandroid/hardware/ISensorPrivacyManager$Stub$Proxy;->isToggleSensorPrivacyEnabled(II)Z -HSPLandroid/hardware/ISensorPrivacyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ISensorPrivacyManager; HSPLandroid/hardware/Sensor;-><init>()V HSPLandroid/hardware/Sensor;->getHandle()I HSPLandroid/hardware/Sensor;->getMaxLengthValuesArray(Landroid/hardware/Sensor;I)I @@ -8207,10 +7886,6 @@ HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEv HSPLandroid/hardware/SensorManager;->requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V -HSPLandroid/hardware/SensorPrivacyManager$1;-><init>(Landroid/hardware/SensorPrivacyManager;)V -HSPLandroid/hardware/SensorPrivacyManager;-><init>(Landroid/content/Context;Landroid/hardware/ISensorPrivacyManager;)V -HSPLandroid/hardware/SensorPrivacyManager;->getInstance(Landroid/content/Context;)Landroid/hardware/SensorPrivacyManager; -HSPLandroid/hardware/SensorPrivacyManager;->isSensorPrivacyEnabled(I)Z HSPLandroid/hardware/SensorPrivacyManager;->isSensorPrivacyEnabled(II)Z HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;-><init>(Landroid/os/Looper;Landroid/hardware/SystemSensorManager;ILjava/lang/String;)V HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->addSensor(Landroid/hardware/Sensor;II)Z @@ -8256,17 +7931,8 @@ HSPLandroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camer HSPLandroid/hardware/camera2/CameraCharacteristics;->getDeviceStateListener()Landroid/hardware/camera2/CameraManager$DeviceStateListener; HSPLandroid/hardware/camera2/CameraCharacteristics;->overrideProperty(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object; HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;-><init>()V -HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;->onCameraAccessPrioritiesChanged()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$$ExternalSyntheticLambda2;-><init>(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$$ExternalSyntheticLambda2;->run()V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;->run()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$6;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Ljava/lang/String;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$6;->run()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$7;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Ljava/lang/String;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$7;->run()V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->asBinder()Landroid/os/IBinder; HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->cameraIdHasConcurrentStreamsLocked(Ljava/lang/String;)Z HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V @@ -8274,16 +7940,11 @@ HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->extractCameraId HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->get()Landroid/hardware/camera2/CameraManager$CameraManagerGlobal; HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraIdList()[Ljava/lang/String; HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraService()Landroid/hardware/ICameraService; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->isAvailable(I)Z -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->lambda$postSingleTorchUpdate$0(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onCameraAccessPrioritiesChanged()V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChanged(ILjava/lang/String;)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChangedLocked(ILjava/lang/String;)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChanged(ILjava/lang/String;)V HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChangedLocked(ILjava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleAccessPriorityChangeUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V+]Ljava/util/concurrent/Executor;Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleTorchUpdate(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;I)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/lang/String;I)V HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;-><init>(Landroid/hardware/camera2/CameraManager;Landroid/content/Context;)V HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->handleStateChange(I)V HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->onBaseStateChanged(I)V @@ -8450,7 +8111,6 @@ HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init>(Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback-IA;)V HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->onDisplayEvent(II)V HSPLandroid/hardware/display/DisplayManagerGlobal;->-$$Nest$fgetmDm(Landroid/hardware/display/DisplayManagerGlobal;)Landroid/hardware/display/IDisplayManager; -HSPLandroid/hardware/display/DisplayManagerGlobal;->-$$Nest$mhandleDisplayEvent(Landroid/hardware/display/DisplayManagerGlobal;II)V HSPLandroid/hardware/display/DisplayManagerGlobal;-><init>(Landroid/hardware/display/IDisplayManager;)V HSPLandroid/hardware/display/DisplayManagerGlobal;->calculateEventsMaskLocked()I HSPLandroid/hardware/display/DisplayManagerGlobal;->findDisplayListenerLocked(Landroid/hardware/display/DisplayManager$DisplayListener;)I @@ -8504,14 +8164,10 @@ HSPLandroid/hardware/face/FaceManager;->getSensorPropertiesInternal()Ljava/util/ HSPLandroid/hardware/fingerprint/FingerprintManager;-><init>(Landroid/content/Context;Landroid/hardware/fingerprint/IFingerprintService;)V HSPLandroid/hardware/fingerprint/FingerprintManager;->hasEnrolledFingerprints(I)Z HSPLandroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z -HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->hasEnrolledFingerprintsDeprecated(ILjava/lang/String;Ljava/lang/String;)Z HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isHardwareDetectedDeprecated(Ljava/lang/String;Ljava/lang/String;)Z HSPLandroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService; HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;-><init>()V HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->getMaxTransactionId()I -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->getTransactionName(I)Ljava/lang/String; HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/hardware/input/IInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDevice(I)Landroid/view/InputDevice; @@ -8606,7 +8262,6 @@ HSPLandroid/hardware/security/keymint/KeyParameterValue;->_set(ILjava/lang/Objec HSPLandroid/hardware/security/keymint/KeyParameterValue;->algorithm(I)Landroid/hardware/security/keymint/KeyParameterValue; HSPLandroid/hardware/security/keymint/KeyParameterValue;->blob([B)Landroid/hardware/security/keymint/KeyParameterValue; HSPLandroid/hardware/security/keymint/KeyParameterValue;->blockMode(I)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->boolValue(Z)Landroid/hardware/security/keymint/KeyParameterValue; HSPLandroid/hardware/security/keymint/KeyParameterValue;->getAlgorithm()I HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlob()[B HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlockMode()I @@ -8645,19 +8300,13 @@ HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVendorUuid()Ljava HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVersion()I HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V -HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getPorts()Ljava/util/List; HSPLandroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager; -HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/usb/ParcelableUsbPort; -HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZ)V -HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZLandroid/hardware/usb/ParcelableUsbPort-IA;)V HSPLandroid/hardware/usb/ParcelableUsbPort;->getUsbPort(Landroid/hardware/usb/UsbManager;)Landroid/hardware/usb/UsbPort; HSPLandroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V HSPLandroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap; -HSPLandroid/hardware/usb/UsbManager;->getPorts()Ljava/util/List; HSPLandroid/hardware/usb/UsbPort;->getId()Ljava/lang/String; HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIII)V -HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIIIIZI)V HSPLandroid/hardware/usb/UsbPortStatus;->isConnected()Z HSPLandroid/icu/impl/BMPSet;-><init>([II)V HSPLandroid/icu/impl/BMPSet;->contains(I)Z @@ -8808,8 +8457,6 @@ HSPLandroid/icu/impl/ICUResourceBundle$3;->createInstance(Ljava/lang/String;Ljav HSPLandroid/icu/impl/ICUResourceBundle$4;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;Ljava/lang/String;)V HSPLandroid/icu/impl/ICUResourceBundle$4;->load()Landroid/icu/impl/ICUResourceBundle; HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set; -HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>()V -HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>(Landroid/icu/impl/ICUResourceBundle$Loader-IA;)V HSPLandroid/icu/impl/ICUResourceBundle$WholeBundle;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader;)V HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$mgetNoFallback(Landroid/icu/impl/ICUResourceBundle;)Z HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sfgetDEBUG()Z @@ -9528,16 +9175,7 @@ HSPLandroid/icu/impl/number/Grouper;->getPrimary()S HSPLandroid/icu/impl/number/Grouper;->getSecondary()S HSPLandroid/icu/impl/number/Grouper;->groupAtPosition(ILandroid/icu/impl/number/DecimalQuantity;)Z HSPLandroid/icu/impl/number/Grouper;->withLocaleData(Landroid/icu/util/ULocale;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)Landroid/icu/impl/number/Grouper; -HSPLandroid/icu/impl/number/LongNameHandler$AliasSink;-><init>()V -HSPLandroid/icu/impl/number/LongNameHandler$AliasSink;-><init>(Landroid/icu/impl/number/LongNameHandler$AliasSink-IA;)V -HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;-><init>([Ljava/lang/String;)V HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/number/LongNameHandler;-><init>(Ljava/util/Map;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)V -HSPLandroid/icu/impl/number/LongNameHandler;->forMeasureUnit(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;Landroid/icu/number/NumberFormatter$UnitWidth;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)Landroid/icu/impl/number/LongNameHandler;+]Landroid/icu/util/MeasureUnit;Landroid/icu/util/TimeUnit; -HSPLandroid/icu/impl/number/LongNameHandler;->getGenderForBuiltin(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/impl/number/LongNameHandler;->getIndex(Ljava/lang/String;)I+]Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural; -HSPLandroid/icu/impl/number/LongNameHandler;->getMeasureData(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;Landroid/icu/number/NumberFormatter$UnitWidth;Ljava/lang/String;[Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;,Landroid/icu/impl/ICUResourceBundleImpl$ResourceString;]Landroid/icu/util/MeasureUnit;Landroid/icu/util/TimeUnit;,Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/impl/number/LongNameHandler;->maybeCalculateGender(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;[Ljava/lang/String;)V HSPLandroid/icu/impl/number/LongNameHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; HSPLandroid/icu/impl/number/LongNameHandler;->simpleFormatsToModifiers([Ljava/lang/String;Landroid/icu/text/NumberFormat$Field;)V HSPLandroid/icu/impl/number/MacroProps;-><init>()V @@ -9750,7 +9388,6 @@ HSPLandroid/icu/number/Precision;-><init>()V HSPLandroid/icu/number/Precision;->constructCurrency(Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/number/CurrencyPrecision; HSPLandroid/icu/number/Precision;->constructFraction(II)Landroid/icu/number/FractionPrecision; HSPLandroid/icu/number/Precision;->constructFromCurrency(Landroid/icu/number/CurrencyPrecision;Landroid/icu/util/Currency;)Landroid/icu/number/Precision; -HSPLandroid/icu/number/Precision;->createCopyHelper(Landroid/icu/number/Precision;)V 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 @@ -9916,7 +9553,6 @@ HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getBasePattern() HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getFieldMask()I HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher; -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->toCanonicalString()Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;-><init>()V HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V @@ -9942,7 +9578,6 @@ 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 @@ -9974,10 +9609,8 @@ HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String HSPLandroid/icu/text/DateTimePatternGenerator;->getBestRaw(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher; HSPLandroid/icu/text/DateTimePatternGenerator;->getCLDRFieldAndWidthNumber(Landroid/icu/impl/UResource$Key;)I HSPLandroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalChar(IC)C HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat()Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat(I)Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFrozenInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator; @@ -10026,7 +9659,6 @@ HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V HSPLandroid/icu/text/DecimalFormat;->setParseIntegerOnly(Z)V HSPLandroid/icu/text/DecimalFormat;->setParseStrictMode(Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;)V HSPLandroid/icu/text/DecimalFormat;->setPropertiesFromPattern(Ljava/lang/String;I)V -HSPLandroid/icu/text/DecimalFormat;->setRoundingMode(I)V+]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; HSPLandroid/icu/text/DecimalFormat;->toNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter; HSPLandroid/icu/text/DecimalFormat;->toPattern()Ljava/lang/String; HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Landroid/icu/util/ULocale;Ljava/lang/Void;)Landroid/icu/text/DecimalFormatSymbols$CacheData; @@ -10113,13 +9745,6 @@ HSPLandroid/icu/text/Edits;->lastUnit()I HSPLandroid/icu/text/Edits;->reset()V HSPLandroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer; HSPLandroid/icu/text/MeasureFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;Landroid/icu/text/PluralRules;Landroid/icu/text/MeasureFormat$NumericFormatters;)V -HSPLandroid/icu/text/MeasureFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/MeasureFormat;->formatMeasure(Landroid/icu/util/Measure;)Landroid/icu/impl/FormattedStringBuilder;+]Landroid/icu/number/LocalizedNumberFormatter;Landroid/icu/number/LocalizedNumberFormatter;]Landroid/icu/util/Measure;Landroid/icu/util/Measure; -HSPLandroid/icu/text/MeasureFormat;->formatMeasures(Ljava/lang/StringBuilder;Ljava/text/FieldPosition;[Landroid/icu/util/Measure;)Ljava/lang/StringBuilder; -HSPLandroid/icu/text/MeasureFormat;->formatMeasures([Landroid/icu/util/Measure;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/text/MeasureFormat;Landroid/icu/text/MeasureFormat; -HSPLandroid/icu/text/MeasureFormat;->formatMeasuresInternal(Ljava/lang/Appendable;Ljava/text/FieldPosition;[Landroid/icu/util/Measure;)V+]Landroid/icu/text/ListFormatter$FormattedListBuilder;Landroid/icu/text/ListFormatter$FormattedListBuilder;]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;]Landroid/icu/text/ListFormatter;Landroid/icu/text/ListFormatter;]Landroid/icu/text/MeasureFormat;Landroid/icu/text/MeasureFormat; -HSPLandroid/icu/text/MeasureFormat;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;)Landroid/icu/text/MeasureFormat; -HSPLandroid/icu/text/MeasureFormat;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;)Landroid/icu/text/MeasureFormat; HSPLandroid/icu/text/MeasureFormat;->getNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter; HSPLandroid/icu/text/MeasureFormat;->getUnitFormatterFromCache(ILandroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;)Landroid/icu/number/LocalizedNumberFormatter; HSPLandroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2; @@ -10133,7 +9758,6 @@ HSPLandroid/icu/text/NumberFormat;->clone()Ljava/lang/Object; HSPLandroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/NumberFormat;->getInstance(Ljava/util/Locale;)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getInstance(Ljava/util/Locale;I)Landroid/icu/text/NumberFormat; HSPLandroid/icu/text/NumberFormat;->getPattern(Landroid/icu/util/ULocale;I)Ljava/lang/String; HSPLandroid/icu/text/NumberFormat;->getPatternForStyle(Landroid/icu/util/ULocale;I)Ljava/lang/String; @@ -10503,7 +10127,6 @@ HSPLandroid/icu/util/CodePointTrie;-><init>([CLandroid/icu/util/CodePointTrie$Da HSPLandroid/icu/util/CodePointTrie;->fastIndex(I)I HSPLandroid/icu/util/CodePointTrie;->fromBinary(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;Ljava/nio/ByteBuffer;)Landroid/icu/util/CodePointTrie; HSPLandroid/icu/util/CodePointTrie;->getRange(ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z -HSPLandroid/icu/util/CodePointTrie;->internalSmallIndex(Landroid/icu/util/CodePointTrie$Type;I)I HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Landroid/icu/util/Currency; HSPLandroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency; @@ -10721,12 +10344,10 @@ HSPLandroid/icu/util/UResourceBundleIterator;-><init>(Landroid/icu/util/UResourc HSPLandroid/icu/util/UResourceBundleIterator;->hasNext()Z HSPLandroid/icu/util/UResourceBundleIterator;->next()Landroid/icu/util/UResourceBundle; HSPLandroid/icu/util/VersionInfo;->getMajor()I -HSPLandroid/inputmethodservice/InputMethodService;->canImeRenderGesturalNavButtons()Z HSPLandroid/location/Country;->getCountryIso()Ljava/lang/String; HSPLandroid/location/CountryDetector;-><init>(Landroid/location/ICountryDetector;)V HSPLandroid/location/CountryDetector;->addCountryListener(Landroid/location/CountryListener;Landroid/os/Looper;)V HSPLandroid/location/CountryDetector;->detectCountry()Landroid/location/Country; -HSPLandroid/location/GeocoderParams;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/util/Locale;)V HSPLandroid/location/GnssStatus;-><init>(I[I[F[F[F[F[F)V HSPLandroid/location/GnssStatus;->getCarrierFrequencyHz(I)F HSPLandroid/location/GnssStatus;->getCn0DbHz(I)F @@ -10773,8 +10394,6 @@ HSPLandroid/location/Location;->hasAltitude()Z HSPLandroid/location/Location;->hasBearing()Z HSPLandroid/location/Location;->hasBearingAccuracy()Z HSPLandroid/location/Location;->hasElapsedRealtimeUncertaintyNanos()Z -HSPLandroid/location/Location;->hasMslAltitude()Z -HSPLandroid/location/Location;->hasMslAltitudeAccuracy()Z HSPLandroid/location/Location;->hasSpeed()Z HSPLandroid/location/Location;->hasSpeedAccuracy()Z HSPLandroid/location/Location;->hasVerticalAccuracy()Z @@ -10884,12 +10503,9 @@ HSPLandroid/media/AudioAttributes;->-$$Nest$fputmUsage(Landroid/media/AudioAttri HSPLandroid/media/AudioAttributes;-><init>()V HSPLandroid/media/AudioAttributes;-><init>(Landroid/media/AudioAttributes-IA;)V HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;)V+]Ljava/util/HashSet;Ljava/util/HashSet;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;Landroid/media/AudioAttributes-IA;)V HSPLandroid/media/AudioAttributes;->areHapticChannelsMuted()Z -HSPLandroid/media/AudioAttributes;->capturePolicyToFlags(II)I HSPLandroid/media/AudioAttributes;->equals(Ljava/lang/Object;)Z HSPLandroid/media/AudioAttributes;->getAllFlags()I -HSPLandroid/media/AudioAttributes;->getCapturePreset()I HSPLandroid/media/AudioAttributes;->getContentType()I HSPLandroid/media/AudioAttributes;->getFlags()I HSPLandroid/media/AudioAttributes;->getUsage()I @@ -10897,14 +10513,8 @@ 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/AudioDeviceAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioDeviceAttributes; -HSPLandroid/media/AudioDeviceAttributes$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/AudioDeviceAttributes;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/media/AudioDeviceAttributes;-><init>(Landroid/os/Parcel;Landroid/media/AudioDeviceAttributes-IA;)V -HSPLandroid/media/AudioDeviceAttributes;->getType()I HSPLandroid/media/AudioDeviceCallback;-><init>()V HSPLandroid/media/AudioDeviceInfo;-><init>(Landroid/media/AudioDevicePort;)V -HSPLandroid/media/AudioDeviceInfo;->convertDeviceTypeToInternalDevice(I)I HSPLandroid/media/AudioDeviceInfo;->convertInternalDeviceToDeviceType(I)I HSPLandroid/media/AudioDeviceInfo;->getId()I HSPLandroid/media/AudioDeviceInfo;->getType()I @@ -10920,16 +10530,12 @@ HSPLandroid/media/AudioFocusRequest$Builder;->setAudioAttributes(Landroid/media/ HSPLandroid/media/AudioFocusRequest$Builder;->setFocusGain(I)Landroid/media/AudioFocusRequest$Builder; HSPLandroid/media/AudioFocusRequest;->getOnAudioFocusChangeListener()Landroid/media/AudioManager$OnAudioFocusChangeListener; HSPLandroid/media/AudioFocusRequest;->isValidFocusGain(I)Z -HSPLandroid/media/AudioFormat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioFormat; -HSPLandroid/media/AudioFormat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/AudioFormat$Builder;-><init>()V HSPLandroid/media/AudioFormat$Builder;->build()Landroid/media/AudioFormat; HSPLandroid/media/AudioFormat$Builder;->setChannelMask(I)Landroid/media/AudioFormat$Builder; HSPLandroid/media/AudioFormat$Builder;->setEncoding(I)Landroid/media/AudioFormat$Builder; HSPLandroid/media/AudioFormat$Builder;->setSampleRate(I)Landroid/media/AudioFormat$Builder; HSPLandroid/media/AudioFormat;-><init>(IIIII)V -HSPLandroid/media/AudioFormat;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/AudioFormat;-><init>(Landroid/os/Parcel;Landroid/media/AudioFormat-IA;)V HSPLandroid/media/AudioFormat;->getBytesPerSample(I)I HSPLandroid/media/AudioFormat;->getChannelCount()I HSPLandroid/media/AudioFormat;->getChannelMask()I @@ -11030,13 +10636,8 @@ HSPLandroid/media/AudioMixPortConfig;-><init>(Landroid/media/AudioMixPort;IIILan HSPLandroid/media/AudioPatch;-><init>(Landroid/media/AudioHandle;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)V HSPLandroid/media/AudioPatch;->sinks()[Landroid/media/AudioPortConfig; HSPLandroid/media/AudioPatch;->sources()[Landroid/media/AudioPortConfig; -HSPLandroid/media/AudioPlaybackConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioPlaybackConfiguration; -HSPLandroid/media/AudioPlaybackConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;-><init>(Landroid/media/AudioPlaybackConfiguration;Landroid/media/IPlayer;)V -HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/media/AudioAttributes$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/os/Parcel;Landroid/media/AudioPlaybackConfiguration-IA;)V HSPLandroid/media/AudioPlaybackConfiguration;->getAudioAttributes()Landroid/media/AudioAttributes; -HSPLandroid/media/AudioPlaybackConfiguration;->getPlayerState()I HSPLandroid/media/AudioPlaybackConfiguration;->isActive()Z HSPLandroid/media/AudioPort$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I HSPLandroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/stream/Stream;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$Head;]Ljava/util/stream/IntStream;Ljava/util/stream/IntPipeline$Head;,Ljava/util/stream/ReferencePipeline$4;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/media/AudioProfile;Landroid/media/AudioProfile;]Ljava/util/Set;Ljava/util/HashSet; @@ -11062,16 +10663,12 @@ HSPLandroid/media/AudioProfile;->getChannelMasks()[I HSPLandroid/media/AudioProfile;->getFormat()I HSPLandroid/media/AudioProfile;->getSampleRates()[I HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V -HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;IILandroid/content/Context;I)V+]Landroid/media/AudioFormat;Landroid/media/AudioFormat;]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;]Landroid/content/AttributionSource$ScopedParcelState;Landroid/content/AttributionSource$ScopedParcelState; HSPLandroid/media/AudioRecord;->audioBuffSizeCheck(I)V HSPLandroid/media/AudioRecord;->audioParamCheck(III)V -PLandroid/media/AudioRecord;->finalize()V HSPLandroid/media/AudioRecord;->getChannelMaskFromLegacyConfig(IZ)I HSPLandroid/media/AudioRecord;->getMinBufferSize(III)I HSPLandroid/media/AudioRecord;->release()V HSPLandroid/media/AudioRecord;->stop()V -HSPLandroid/media/AudioRecordingMonitorImpl$1;-><init>(Landroid/media/AudioRecordingMonitorImpl;)V -HSPLandroid/media/AudioRecordingMonitorImpl;-><init>(Landroid/media/AudioRecordingMonitorClient;)V HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioRoutesInfo; HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/AudioRoutesInfo;-><init>()V @@ -11104,17 +10701,7 @@ HSPLandroid/media/AudioTrack;->startImpl()V HSPLandroid/media/AudioTrack;->stop()V HSPLandroid/media/AudioTrack;->testDisableNativeRoutingCallbacksLocked()V HSPLandroid/media/AudioTrack;->tryToDisableNativeRoutingCallback()V -HSPLandroid/media/CallbackUtil$LazyListenerManager$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/media/CallbackUtil$LazyListenerManager$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HSPLandroid/media/CallbackUtil$LazyListenerManager;-><init>()V -HSPLandroid/media/CallbackUtil$LazyListenerManager;->addListener(Ljava/util/concurrent/Executor;Ljava/lang/Object;Ljava/lang/String;Ljava/util/function/Supplier;)V -HSPLandroid/media/CallbackUtil$LazyListenerManager;->lambda$addListener$0(Landroid/media/CallbackUtil$DispatcherStub;)V -HSPLandroid/media/CallbackUtil$ListenerInfo;-><init>(Ljava/lang/Object;Ljava/util/concurrent/Executor;)V -HSPLandroid/media/CallbackUtil;->addListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Ljava/lang/Object;Ljava/util/ArrayList;Ljava/lang/Object;Ljava/util/function/Supplier;Ljava/util/function/Consumer;)Landroid/util/Pair; -HSPLandroid/media/CallbackUtil;->getListenerInfo(Ljava/lang/Object;Ljava/util/ArrayList;)Landroid/media/CallbackUtil$ListenerInfo; -HSPLandroid/media/CallbackUtil;->hasListener(Ljava/lang/Object;Ljava/util/ArrayList;)Z -HSPLandroid/media/CallbackUtil;->removeListener(Ljava/lang/Object;Ljava/util/ArrayList;)Z -HSPLandroid/media/CallbackUtil;->removeListener(Ljava/lang/String;Ljava/lang/Object;Ljava/util/ArrayList;Ljava/lang/Object;Ljava/util/function/Consumer;)Landroid/util/Pair; HSPLandroid/media/IAudioFocusDispatcher$Stub;-><init>()V HSPLandroid/media/IAudioFocusDispatcher$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/media/IAudioRoutesObserver$Stub;-><init>()V @@ -11139,7 +10726,6 @@ HSPLandroid/media/IAudioService$Stub$Proxy;->isVolumeFixed()Z HSPLandroid/media/IAudioService$Stub$Proxy;->playSoundEffect(II)V HSPLandroid/media/IAudioService$Stub$Proxy;->playerAttributes(ILandroid/media/AudioAttributes;)V HSPLandroid/media/IAudioService$Stub$Proxy;->playerEvent(III)V -HSPLandroid/media/IAudioService$Stub$Proxy;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V HSPLandroid/media/IAudioService$Stub$Proxy;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V HSPLandroid/media/IAudioService$Stub$Proxy;->releasePlayer(I)V HSPLandroid/media/IAudioService$Stub$Proxy;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I @@ -11159,7 +10745,6 @@ HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setSelectedRoute(Landroid/med HSPLandroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService; HSPLandroid/media/IPlaybackConfigDispatcher$Stub;-><init>()V HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/media/IPlayer$Stub;-><init>()V HSPLandroid/media/IPlayer$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer; @@ -11176,21 +10761,10 @@ HSPLandroid/media/MediaCodec$BufferMap;-><init>(Landroid/media/MediaCodec$Buffer HSPLandroid/media/MediaCodec$BufferMap;->clear()V HSPLandroid/media/MediaCodec$BufferMap;->put(ILjava/nio/ByteBuffer;)V HSPLandroid/media/MediaCodec$BufferMap;->remove(I)V -HSPLandroid/media/MediaCodec$Callback;-><init>()V HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;-><init>(II)V HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;->set(II)V HSPLandroid/media/MediaCodec$CryptoInfo;-><init>()V HSPLandroid/media/MediaCodec$EventHandler;-><init>(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V -HSPLandroid/media/MediaCodec$EventHandler;->handleCallback(Landroid/os/Message;)V -HSPLandroid/media/MediaCodec$EventHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmBufferLock(Landroid/media/MediaCodec;)Ljava/lang/Object; -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmBufferMode(Landroid/media/MediaCodec;)I -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmCachedInputBuffers(Landroid/media/MediaCodec;)[Ljava/nio/ByteBuffer; -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmCachedOutputBuffers(Landroid/media/MediaCodec;)[Ljava/nio/ByteBuffer; -HSPLandroid/media/MediaCodec;->-$$Nest$fgetmCallback(Landroid/media/MediaCodec;)Landroid/media/MediaCodec$Callback; -HSPLandroid/media/MediaCodec;->-$$Nest$fputmCallback(Landroid/media/MediaCodec;Landroid/media/MediaCodec$Callback;)V -HSPLandroid/media/MediaCodec;->-$$Nest$mvalidateInputByteBufferLocked(Landroid/media/MediaCodec;[Ljava/nio/ByteBuffer;I)V -HSPLandroid/media/MediaCodec;->-$$Nest$mvalidateOutputByteBufferLocked(Landroid/media/MediaCodec;[Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZ)V HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZII)V HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V @@ -11200,23 +10774,17 @@ HSPLandroid/media/MediaCodec;->dequeueInputBuffer(J)I HSPLandroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I HSPLandroid/media/MediaCodec;->finalize()V HSPLandroid/media/MediaCodec;->freeAllTrackedBuffers()V -HSPLandroid/media/MediaCodec;->getEventHandlerOn(Landroid/os/Handler;Landroid/media/MediaCodec$EventHandler;)Landroid/media/MediaCodec$EventHandler; HSPLandroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer; HSPLandroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer; HSPLandroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat; -HSPLandroid/media/MediaCodec;->invalidateByteBufferLocked([Ljava/nio/ByteBuffer;IZ)V+]Ljava/util/BitSet;Ljava/util/BitSet;]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; HSPLandroid/media/MediaCodec;->lockAndGetContext()J -HSPLandroid/media/MediaCodec;->postEventFromNative(IIILjava/lang/Object;)V+]Landroid/media/MediaCodec$EventHandler;Landroid/media/MediaCodec$EventHandler; HSPLandroid/media/MediaCodec;->queueInputBuffer(IIIJI)V HSPLandroid/media/MediaCodec;->release()V HSPLandroid/media/MediaCodec;->releaseOutputBuffer(IZ)V HSPLandroid/media/MediaCodec;->releaseOutputBufferInternal(IZZJ)V HSPLandroid/media/MediaCodec;->setAndUnlockContext(J)V -HSPLandroid/media/MediaCodec;->setCallback(Landroid/media/MediaCodec$Callback;Landroid/os/Handler;)V HSPLandroid/media/MediaCodec;->start()V HSPLandroid/media/MediaCodec;->stop()V -HSPLandroid/media/MediaCodec;->validateInputByteBufferLocked([Ljava/nio/ByteBuffer;I)V+]Ljava/util/BitSet;Ljava/util/BitSet;]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; -HSPLandroid/media/MediaCodec;->validateOutputByteBufferLocked([Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V+]Ljava/util/BitSet;Ljava/util/BitSet;]Ljava/nio/Buffer;Ljava/nio/DirectByteBuffer;]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer; HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLimits([Landroid/util/Range;Landroid/util/Range;)V HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->createDiscreteSampleRates()V @@ -11332,18 +10900,13 @@ HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Landroid/media/MediaPlay HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/media/MediaPlayer$TrackInfo;-><init>(Landroid/os/Parcel;)V HSPLandroid/media/MediaPlayer$TrackInfo;->getTrackType()I -HSPLandroid/media/MediaPlayer;->-$$Nest$fgetmOnMediaTimeDiscontinuityHandler(Landroid/media/MediaPlayer;)Landroid/os/Handler; -HSPLandroid/media/MediaPlayer;->-$$Nest$fgetmOnMediaTimeDiscontinuityListener(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener; -HSPLandroid/media/MediaPlayer;->-$$Nest$mbroadcastRoutingChange(Landroid/media/MediaPlayer;)V HSPLandroid/media/MediaPlayer;-><init>()V HSPLandroid/media/MediaPlayer;-><init>(I)V HSPLandroid/media/MediaPlayer;->attemptDataSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Z -HSPLandroid/media/MediaPlayer;->broadcastRoutingChange()V HSPLandroid/media/MediaPlayer;->cleanDrmObj()V HSPLandroid/media/MediaPlayer;->finalize()V HSPLandroid/media/MediaPlayer;->getInbandTrackInfo()[Landroid/media/MediaPlayer$TrackInfo; HSPLandroid/media/MediaPlayer;->getMediaTimeProvider()Landroid/media/MediaTimeProvider; -HSPLandroid/media/MediaPlayer;->getRoutedDevice()Landroid/media/AudioDeviceInfo; HSPLandroid/media/MediaPlayer;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V HSPLandroid/media/MediaPlayer;->playerSetVolume(ZFF)V HSPLandroid/media/MediaPlayer;->populateInbandTracks()V @@ -11364,8 +10927,6 @@ HSPLandroid/media/MediaPlayer;->setSubtitleAnchor()V HSPLandroid/media/MediaPlayer;->setVolume(FF)V HSPLandroid/media/MediaPlayer;->start()V HSPLandroid/media/MediaPlayer;->stayAwake(Z)V -HSPLandroid/media/MediaPlayer;->testDisableNativeRoutingCallbacksLocked()V -HSPLandroid/media/MediaPlayer;->testEnableNativeRoutingCallbacksLocked()Z HSPLandroid/media/MediaPlayer;->tryToDisableNativeRoutingCallback()V HSPLandroid/media/MediaPlayer;->tryToEnableNativeRoutingCallback()V HSPLandroid/media/MediaRoute2Info$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaRoute2Info; @@ -11431,11 +10992,9 @@ HSPLandroid/media/MediaRouter$SimpleCallback;-><init>()V HSPLandroid/media/MediaRouter$Static$1$1;->run()V HSPLandroid/media/MediaRouter$Static$1;-><init>(Landroid/media/MediaRouter$Static;)V HSPLandroid/media/MediaRouter$Static$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V -HSPLandroid/media/MediaRouter$Static$Client$$ExternalSyntheticLambda1;->run()V HSPLandroid/media/MediaRouter$Static$Client$1;-><init>(Landroid/media/MediaRouter$Static$Client;)V HSPLandroid/media/MediaRouter$Static$Client$1;->run()V HSPLandroid/media/MediaRouter$Static$Client;-><init>(Landroid/media/MediaRouter$Static;)V -HSPLandroid/media/MediaRouter$Static$Client;->lambda$onRestoreRoute$0$android-media-MediaRouter$Static$Client()V HSPLandroid/media/MediaRouter$Static$Client;->onRestoreRoute()V HSPLandroid/media/MediaRouter$Static$Client;->onStateChanged()V HSPLandroid/media/MediaRouter$Static;-><init>(Landroid/content/Context;)V @@ -11480,7 +11039,6 @@ HSPLandroid/media/MediaRouter;->dispatchRouteAdded(Landroid/media/MediaRouter$Ro HSPLandroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;I)V HSPLandroid/media/MediaRouter;->dispatchRouteRemoved(Landroid/media/MediaRouter$RouteInfo;)V HSPLandroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->dispatchRouteUnselected(ILandroid/media/MediaRouter$RouteInfo;)V HSPLandroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V HSPLandroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I HSPLandroid/media/MediaRouter;->getDefaultRoute()Landroid/media/MediaRouter$RouteInfo; @@ -11519,7 +11077,6 @@ HSPLandroid/media/PlayerBase;->getService()Landroid/media/IAudioService; HSPLandroid/media/PlayerBase;->getStartDelayMs()I HSPLandroid/media/PlayerBase;->updatePlayerVolume()V HSPLandroid/media/PlayerBase;->updateState(II)V -HSPLandroid/media/RouteDiscoveryPreference;->getPreferredFeatures()Ljava/util/List; HSPLandroid/media/RoutingSessionInfo$Builder;->build()Landroid/media/RoutingSessionInfo; HSPLandroid/media/RoutingSessionInfo;-><init>(Landroid/media/RoutingSessionInfo$Builder;)V HSPLandroid/media/RoutingSessionInfo;->convertToUniqueRouteIds(Ljava/util/List;)Ljava/util/List; @@ -11529,7 +11086,6 @@ HSPLandroid/media/SoundPool$Builder;->setAudioAttributes(Landroid/media/AudioAtt HSPLandroid/media/SoundPool$Builder;->setMaxStreams(I)Landroid/media/SoundPool$Builder; HSPLandroid/media/SoundPool$EventHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;)V -HSPLandroid/media/SoundPool;->load(Landroid/content/Context;II)I HSPLandroid/media/SoundPool;->postEventFromNative(IIILjava/lang/Object;)V HSPLandroid/media/SoundPool;->setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V HSPLandroid/media/SubtitleController$1;->handleMessage(Landroid/os/Message;)Z @@ -11595,14 +11151,8 @@ HSPLandroid/media/metrics/MediaMetricsManager;-><init>(Landroid/media/metrics/IM HSPLandroid/media/metrics/MediaMetricsManager;->createPlaybackSession()Landroid/media/metrics/PlaybackSession; HSPLandroid/media/metrics/NetworkEvent$1;-><init>()V HSPLandroid/media/metrics/NetworkEvent;-><clinit>()V -HSPLandroid/media/metrics/PlaybackMetrics$1;-><init>()V -HSPLandroid/media/metrics/PlaybackMetrics;-><clinit>()V HSPLandroid/media/metrics/PlaybackSession;-><init>(Ljava/lang/String;Landroid/media/metrics/MediaMetricsManager;)V HSPLandroid/media/metrics/PlaybackSession;->getSessionId()Landroid/media/metrics/LogSessionId; -HSPLandroid/media/metrics/PlaybackStateEvent$1;-><init>()V -HSPLandroid/media/metrics/PlaybackStateEvent;-><clinit>()V -HSPLandroid/media/metrics/TrackChangeEvent$1;-><init>()V -HSPLandroid/media/metrics/TrackChangeEvent;-><clinit>()V HSPLandroid/media/permission/ClearCallingIdentityContext;-><init>()V HSPLandroid/media/permission/ClearCallingIdentityContext;->close()V HSPLandroid/media/permission/ClearCallingIdentityContext;->create()Landroid/media/permission/SafeCloseable; @@ -11615,7 +11165,6 @@ HSPLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;-><init>() HSPLandroid/media/session/ISession$Stub$Proxy;->destroySession()V HSPLandroid/media/session/ISession$Stub$Proxy;->getController()Landroid/media/session/ISessionController; HSPLandroid/media/session/ISession$Stub$Proxy;->setFlags(I)V -HSPLandroid/media/session/ISession$Stub$Proxy;->setMediaButtonReceiver(Landroid/app/PendingIntent;Ljava/lang/String;)V HSPLandroid/media/session/ISession$Stub$Proxy;->setMetadata(Landroid/media/MediaMetadata;JLjava/lang/String;)V HSPLandroid/media/session/ISession$Stub$Proxy;->setPlaybackState(Landroid/media/session/PlaybackState;)V HSPLandroid/media/session/ISessionCallback$Stub;-><init>()V @@ -11641,14 +11190,12 @@ HSPLandroid/media/session/MediaController$Callback;-><init>()V HSPLandroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V HSPLandroid/media/session/MediaController$CallbackStub;->onMetadataChanged(Landroid/media/MediaMetadata;)V HSPLandroid/media/session/MediaController$CallbackStub;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V -HSPLandroid/media/session/MediaController$CallbackStub;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V HSPLandroid/media/session/MediaController$CallbackStub;->onSessionDestroyed()V HSPLandroid/media/session/MediaController$MessageHandler;->handleMessage(Landroid/os/Message;)V HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaController$PlaybackInfo; HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/session/MediaController$PlaybackInfo;-><init>(Landroid/os/Parcel;)V HSPLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;)V -HSPLandroid/media/session/MediaController;->-$$Nest$mpostMessage(Landroid/media/session/MediaController;ILjava/lang/Object;Landroid/os/Bundle;)V HSPLandroid/media/session/MediaController;-><init>(Landroid/content/Context;Landroid/media/session/MediaSession$Token;)V HSPLandroid/media/session/MediaController;->addCallbackLocked(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V HSPLandroid/media/session/MediaController;->getHandlerForCallbackLocked(Landroid/media/session/MediaController$Callback;)Landroid/media/session/MediaController$MessageHandler; @@ -11664,16 +11211,11 @@ HSPLandroid/media/session/MediaController;->unregisterCallback(Landroid/media/se HSPLandroid/media/session/MediaSession$Callback;-><init>()V HSPLandroid/media/session/MediaSession$CallbackMessageHandler;-><init>(Landroid/media/session/MediaSession;Landroid/os/Looper;Landroid/media/session/MediaSession$Callback;)V HSPLandroid/media/session/MediaSession$CallbackStub;-><init>(Landroid/media/session/MediaSession;)V -HSPLandroid/media/session/MediaSession$QueueItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$QueueItem; -HSPLandroid/media/session/MediaSession$QueueItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/session/MediaSession$QueueItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/session/MediaSession$QueueItem;-><init>(Landroid/os/Parcel;Landroid/media/session/MediaSession$QueueItem-IA;)V HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$Token; HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/session/MediaSession$Token;-><init>(ILandroid/media/session/ISessionController;)V HSPLandroid/media/session/MediaSession$Token;->equals(Ljava/lang/Object;)Z HSPLandroid/media/session/MediaSession$Token;->getBinder()Landroid/media/session/ISessionController; -HSPLandroid/media/session/MediaSession$Token;->hashCode()I HSPLandroid/media/session/MediaSession$Token;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;)V HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V @@ -11722,10 +11264,8 @@ HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landro HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V HSPLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/session/PlaybackState;->getPlaybackSpeed()F HSPLandroid/media/session/PlaybackState;->getPosition()J HSPLandroid/media/session/PlaybackState;->getState()I -HSPLandroid/media/session/PlaybackState;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/media/session/PlaybackState;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/metrics/LogMaker;-><init>(I)V HSPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker; @@ -11751,13 +11291,11 @@ HSPLandroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)La HSPLandroid/net/INetworkScoreCache$Stub;-><init>()V HSPLandroid/net/INetworkScoreCache$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService; -HSPLandroid/net/IVpnManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IVpnManager; HSPLandroid/net/LocalServerSocket;-><init>(Ljava/io/FileDescriptor;)V HSPLandroid/net/LocalServerSocket;->accept()Landroid/net/LocalSocket; HSPLandroid/net/LocalServerSocket;->close()V HSPLandroid/net/LocalServerSocket;->getFileDescriptor()Ljava/io/FileDescriptor; HSPLandroid/net/LocalSocket;-><init>(Landroid/net/LocalSocketImpl;I)V -HSPLandroid/net/LocalSocket;-><init>(Ljava/io/FileDescriptor;)V HSPLandroid/net/LocalSocket;->checkConnected()V HSPLandroid/net/LocalSocket;->close()V HSPLandroid/net/LocalSocket;->createLocalSocketForAccept(Landroid/net/LocalSocketImpl;)Landroid/net/LocalSocket; @@ -11767,7 +11305,6 @@ HSPLandroid/net/LocalSocket;->getOutputStream()Ljava/io/OutputStream; HSPLandroid/net/LocalSocket;->getPeerCredentials()Landroid/net/Credentials; HSPLandroid/net/LocalSocket;->implCreateIfNeeded()V HSPLandroid/net/LocalSocket;->setSoTimeout(I)V -HSPLandroid/net/LocalSocket;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/net/LocalSocketAddress$Namespace;->getId()I HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;)V HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V @@ -11797,7 +11334,6 @@ HSPLandroid/net/LocalSocketImpl;->getPeerCredentials()Landroid/net/Credentials; HSPLandroid/net/LocalSocketImpl;->getSockAddress()Landroid/net/LocalSocketAddress; HSPLandroid/net/LocalSocketImpl;->listen(I)V HSPLandroid/net/LocalSocketImpl;->setOption(ILjava/lang/Object;)V -HSPLandroid/net/LocalSocketImpl;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/net/MatchAllNetworkSpecifier;-><init>()V HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkKey; HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -11809,7 +11345,6 @@ HSPLandroid/net/NetworkKey;->createFromWifiInfo(Landroid/net/wifi/WifiInfo;)Land HSPLandroid/net/NetworkKey;->equals(Ljava/lang/Object;)Z HSPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/net/NetworkPolicyManager$Listener;-><init>()V -HSPLandroid/net/NetworkPolicyManager$Listener;->onBlockedReasonChanged(III)V HSPLandroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V HSPLandroid/net/NetworkPolicyManager$Listener;->onSubscriptionPlansChanged(I[Landroid/telephony/SubscriptionPlan;)V HSPLandroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V @@ -11831,7 +11366,6 @@ HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->build()Landroid/net/Telephon HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->setSubscriptionId(I)Landroid/net/TelephonyNetworkSpecifier$Builder; HSPLandroid/net/TelephonyNetworkSpecifier;-><init>(I)V HSPLandroid/net/TelephonyNetworkSpecifier;->equals(Ljava/lang/Object;)Z -HSPLandroid/net/TelephonyNetworkSpecifier;->getSubscriptionId()I HSPLandroid/net/TelephonyNetworkSpecifier;->hashCode()I HSPLandroid/net/TelephonyNetworkSpecifier;->toString()Ljava/lang/String; HSPLandroid/net/TelephonyNetworkSpecifier;->writeToParcel(Landroid/os/Parcel;I)V @@ -11893,12 +11427,7 @@ HSPLandroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/ HSPLandroid/net/Uri$HierarchicalUri;->toString()Ljava/lang/String; HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V -HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;Landroid/net/Uri$OpaqueUri-IA;)V -HSPLandroid/net/Uri$OpaqueUri;->getAuthority()Ljava/lang/String; HSPLandroid/net/Uri$OpaqueUri;->getEncodedSchemeSpecificPart()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getHost()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getPath()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getPort()I HSPLandroid/net/Uri$OpaqueUri;->getScheme()Ljava/lang/String; HSPLandroid/net/Uri$OpaqueUri;->getSchemeSpecificPart()Ljava/lang/String; HSPLandroid/net/Uri$OpaqueUri;->toString()Ljava/lang/String; @@ -11998,13 +11527,10 @@ HSPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/net/http/X509TrustManagerExtensions;-><init>(Ljavax/net/ssl/X509TrustManager;)V HSPLandroid/net/http/X509TrustManagerExtensions;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; HSPLandroid/net/metrics/IpConnectivityLog;-><init>()V -HSPLandroid/net/vcn/IVcnManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/vcn/IVcnManagementService; HSPLandroid/net/vcn/VcnTransportInfo$1;-><init>()V HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/vcn/VcnTransportInfo; HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/net/vcn/VcnTransportInfo;-><clinit>()V -HSPLandroid/net/vcn/VcnTransportInfo;-><init>(Landroid/net/wifi/WifiInfo;I)V -HSPLandroid/net/vcn/VcnTransportInfo;-><init>(Landroid/net/wifi/WifiInfo;ILandroid/net/vcn/VcnTransportInfo-IA;)V HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcCardEmulationInterface()Landroid/nfc/INfcCardEmulation; HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcFCardEmulationInterface()Landroid/nfc/INfcFCardEmulation; HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcTagInterface()Landroid/nfc/INfcTag; @@ -12034,7 +11560,6 @@ HSPLandroid/opengl/EGLDisplay;-><init>(J)V HSPLandroid/opengl/EGLObjectHandle;->getNativeHandle()J HSPLandroid/opengl/EGLSurface;-><init>(J)V HSPLandroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V -HSPLandroid/opengl/GLUtils;->texImage2D(IILandroid/graphics/Bitmap;I)V HSPLandroid/opengl/Matrix;->setIdentityM([FI)V HSPLandroid/os/AsyncTask$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; HSPLandroid/os/AsyncTask$3;-><init>(Landroid/os/AsyncTask;)V @@ -12049,11 +11574,6 @@ HSPLandroid/os/AsyncTask$SerialExecutor$1;->run()V HSPLandroid/os/AsyncTask$SerialExecutor;->execute(Ljava/lang/Runnable;)V HSPLandroid/os/AsyncTask$SerialExecutor;->scheduleNext()V HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>()V -HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>(Landroid/os/AsyncTask$WorkerRunnable-IA;)V -HSPLandroid/os/AsyncTask;->-$$Nest$fgetmTaskInvoked(Landroid/os/AsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean; -HSPLandroid/os/AsyncTask;->-$$Nest$mfinish(Landroid/os/AsyncTask;Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask;->-$$Nest$mpostResult(Landroid/os/AsyncTask;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/AsyncTask;->-$$Nest$mpostResultIfNotInvoked(Landroid/os/AsyncTask;Ljava/lang/Object;)V HSPLandroid/os/AsyncTask;-><init>()V HSPLandroid/os/AsyncTask;-><init>(Landroid/os/Looper;)V HSPLandroid/os/AsyncTask;->cancel(Z)Z @@ -12089,8 +11609,6 @@ 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;->getClassLoader()Ljava/lang/ClassLoader; -HSPLandroid/os/BaseBundle;->getDouble(Ljava/lang/String;D)D HSPLandroid/os/BaseBundle;->getFloat(Ljava/lang/String;F)F HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;)I HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;I)I @@ -12100,7 +11618,6 @@ HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;)J HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;J)J HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable; -HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/Serializable; HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/os/BaseBundle;->getStringArray(Ljava/lang/String;)[Ljava/lang/String; @@ -12193,7 +11710,7 @@ HSPLandroid/os/Binder;->getInterfaceDescriptor()Ljava/lang/String; HSPLandroid/os/Binder;->getMaxTransactionId()I HSPLandroid/os/Binder;->getSimpleDescriptor()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; HSPLandroid/os/Binder;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/os/Binder;->getTransactionTraceName(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Binder;megamorphic_types]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; +HSPLandroid/os/Binder;->getTransactionTraceName(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]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;->lambda$static$1(I)I @@ -12201,7 +11718,6 @@ HSPLandroid/os/Binder;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V HSPLandroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/os/Binder;->pingBinder()Z HSPLandroid/os/Binder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface; -HSPLandroid/os/Binder;->setObserver(Lcom/android/internal/os/BinderInternal$Observer;)V HSPLandroid/os/Binder;->setProxyTransactListener(Landroid/os/Binder$ProxyTransactListener;)V HSPLandroid/os/Binder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/os/Binder;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z @@ -12232,7 +11748,6 @@ HSPLandroid/os/Bundle$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/os/Bundle;-><init>()V HSPLandroid/os/Bundle;-><init>(I)V HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;)V -HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;Z)V HSPLandroid/os/Bundle;-><init>(Landroid/os/Parcel;I)V HSPLandroid/os/Bundle;-><init>(Landroid/os/PersistableBundle;)V HSPLandroid/os/Bundle;->clear()V @@ -12243,7 +11758,6 @@ HSPLandroid/os/Bundle;->getBinder(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/Bundle;->getBundle(Ljava/lang/String;)Landroid/os/Bundle; HSPLandroid/os/Bundle;->getByteArray(Ljava/lang/String;)[B HSPLandroid/os/Bundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence; -HSPLandroid/os/Bundle;->getClassLoader()Ljava/lang/ClassLoader; HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;)F HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;F)F HSPLandroid/os/Bundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList; @@ -12251,9 +11765,7 @@ HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable; HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Bundle;Landroid/os/Bundle; HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable; HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;Ljava/lang/Class;)Ljava/util/ArrayList; HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable; -HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/Serializable; HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray; HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList; HSPLandroid/os/Bundle;->hasFileDescriptors()Z @@ -12296,7 +11808,6 @@ HSPLandroid/os/CombinedVibration$Mono$1;-><init>()V HSPLandroid/os/CombinedVibration$Mono;-><clinit>()V HSPLandroid/os/CombinedVibration$Mono;-><init>(Landroid/os/VibrationEffect;)V HSPLandroid/os/CombinedVibration$Mono;->validate()V -HSPLandroid/os/CombinedVibration$Mono;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/CombinedVibration;-><init>()V HSPLandroid/os/ConditionVariable;-><init>()V HSPLandroid/os/ConditionVariable;-><init>(Z)V @@ -12455,9 +11966,6 @@ HSPLandroid/os/GraphicsEnvironment;->setupGpuLayers(Landroid/content/Context;Lan HSPLandroid/os/GraphicsEnvironment;->shouldShowAngleInUseDialogBox(Landroid/content/Context;)Z HSPLandroid/os/GraphicsEnvironment;->shouldUseAngle(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Z HSPLandroid/os/GraphicsEnvironment;->showAngleInUseDialogBox(Landroid/content/Context;)V -HSPLandroid/os/Handler$BlockingRunnable;-><init>(Ljava/lang/Runnable;)V -HSPLandroid/os/Handler$BlockingRunnable;->postAndWait(Landroid/os/Handler;J)Z -HSPLandroid/os/Handler$BlockingRunnable;->run()V HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;)V HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;Landroid/os/Handler$MessengerImpl-IA;)V HSPLandroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V @@ -12467,10 +11975,8 @@ HSPLandroid/os/Handler;-><init>(Landroid/os/Handler$Callback;Z)V HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;)V HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V -HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;ZZ)V HSPLandroid/os/Handler;-><init>(Z)V HSPLandroid/os/Handler;->createAsync(Landroid/os/Looper;)Landroid/os/Handler; -HSPLandroid/os/Handler;->disallowNullArgumentIfShared(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/os/Handler;->dispatchMessage(Landroid/os/Message;)V HSPLandroid/os/Handler;->enqueueMessage(Landroid/os/MessageQueue;Landroid/os/Message;J)Z HSPLandroid/os/Handler;->executeOrSendMessage(Landroid/os/Message;)Z @@ -12501,7 +12007,6 @@ HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V HSPLandroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V HSPLandroid/os/Handler;->removeMessages(I)V HSPLandroid/os/Handler;->removeMessages(ILjava/lang/Object;)V -HSPLandroid/os/Handler;->runWithScissors(Ljava/lang/Runnable;J)Z HSPLandroid/os/Handler;->sendEmptyMessage(I)Z HSPLandroid/os/Handler;->sendEmptyMessageAtTime(IJ)Z HSPLandroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z @@ -12585,7 +12090,6 @@ HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/ HSPLandroid/os/IRemoteCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/os/IServiceManager$Stub$Proxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V HSPLandroid/os/IServiceManager$Stub$Proxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/IServiceManager$Stub$Proxy;->isDeclared(Ljava/lang/String;)Z+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/os/ISystemConfig$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISystemConfig; HSPLandroid/os/IThermalEventListener$Stub;-><init>()V HSPLandroid/os/IThermalEventListener$Stub;->asBinder()Landroid/os/IBinder; @@ -12604,7 +12108,6 @@ HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileType(I)Ljava/lang/String; HSPLandroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List; HSPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeColorResId(I)I HSPLandroid/os/IUserManager$Stub$Proxy;->getUserHandle(I)I -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserIconBadgeResId(I)I HSPLandroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo; HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List; HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictions(I)Landroid/os/Bundle; @@ -12640,7 +12143,6 @@ 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;Landroid/os/LocaleList;)V HSPLandroid/os/LocaleList;-><init>([Ljava/util/Locale;)V HSPLandroid/os/LocaleList;->computeFirstMatch(Ljava/util/Collection;Z)Ljava/util/Locale; HSPLandroid/os/LocaleList;->computeFirstMatchIndex(Ljava/util/Collection;Z)I @@ -12852,13 +12354,10 @@ HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle; HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle; HSPLandroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor; HSPLandroid/os/Parcel;->readSerializable()Ljava/io/Serializable; -HSPLandroid/os/Parcel;->readSerializable(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; HSPLandroid/os/Parcel;->readSparseArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/util/SparseArray; -HSPLandroid/os/Parcel;->readSparseBooleanArray()Landroid/util/SparseBooleanArray; 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; @@ -13009,7 +12508,6 @@ HSPLandroid/os/PersistableBundle;-><init>()V HSPLandroid/os/PersistableBundle;-><init>(I)V HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;)V -HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;Z)V HSPLandroid/os/PersistableBundle;->deepCopy()Landroid/os/PersistableBundle; HSPLandroid/os/PersistableBundle;->getPersistableBundle(Ljava/lang/String;)Landroid/os/PersistableBundle; HSPLandroid/os/PersistableBundle;->isValidType(Ljava/lang/Object;)Z @@ -13126,14 +12624,10 @@ HSPLandroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager; HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManager;->initServiceCache(Ljava/util/Map;)V -HSPLandroid/os/ServiceManager;->isDeclared(Ljava/lang/String;)Z HSPLandroid/os/ServiceManager;->rawGetService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManager;->waitForDeclaredService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManager;->waitForService(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManagerProxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V HSPLandroid/os/ServiceManagerProxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManagerProxy;->getService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManagerProxy;->isDeclared(Ljava/lang/String;)Z HSPLandroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/SharedMemory; HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -13224,7 +12718,6 @@ HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitUnbufferedIo()Landroid/os HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$ThreadPolicy-IA;)V HSPLandroid/os/StrictMode$ThreadSpanState;-><init>()V -HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$ThreadSpanState-IA;)V HSPLandroid/os/StrictMode$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; @@ -13256,7 +12749,6 @@ HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/Stri HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$VmPolicy-IA;)V HSPLandroid/os/StrictMode;->-$$Nest$sfgetEMPTY_CLASS_LIMIT_MAP()Ljava/util/HashMap; HSPLandroid/os/StrictMode;->-$$Nest$sfgetsExpectedActivityInstanceCount()Ljava/util/HashMap; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThisThreadSpanState()Ljava/lang/ThreadLocal; HSPLandroid/os/StrictMode;->allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy; HSPLandroid/os/StrictMode;->allowThreadDiskReadsMask()I HSPLandroid/os/StrictMode;->allowThreadDiskWrites()Landroid/os/StrictMode$ThreadPolicy; @@ -13324,13 +12816,9 @@ HSPLandroid/os/SystemProperties;->getLong(Ljava/lang/String;J)J HSPLandroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V -HSPLandroid/os/SystemVibrator;->getInfo()Landroid/os/VibratorInfo; HSPLandroid/os/SystemVibrator;->hasVibrator()Z HSPLandroid/os/SystemVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Ljava/lang/String;Landroid/os/VibrationAttributes;)V -HSPLandroid/os/SystemVibratorManager$SingleVibrator;-><init>(Landroid/os/SystemVibratorManager;Landroid/os/VibratorInfo;)V -HSPLandroid/os/SystemVibratorManager$SingleVibrator;->getInfo()Landroid/os/VibratorInfo; HSPLandroid/os/SystemVibratorManager;-><init>(Landroid/content/Context;)V -HSPLandroid/os/SystemVibratorManager;->getVibrator(I)Landroid/os/Vibrator; HSPLandroid/os/SystemVibratorManager;->getVibratorIds()[I HSPLandroid/os/SystemVibratorManager;->vibrate(ILjava/lang/String;Landroid/os/CombinedVibration;Ljava/lang/String;Landroid/os/VibrationAttributes;)V HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V @@ -13358,7 +12846,6 @@ HSPLandroid/os/Trace;->beginAsyncSection(Ljava/lang/String;I)V HSPLandroid/os/Trace;->beginSection(Ljava/lang/String;)V HSPLandroid/os/Trace;->endAsyncSection(Ljava/lang/String;I)V HSPLandroid/os/Trace;->endSection()V -HSPLandroid/os/Trace;->instantForTrack(JLjava/lang/String;Ljava/lang/String;)V HSPLandroid/os/Trace;->isEnabled()Z HSPLandroid/os/Trace;->isTagEnabled(J)Z HSPLandroid/os/Trace;->setAppTracingAllowed(Z)V @@ -13420,11 +12907,9 @@ HSPLandroid/os/UserManager;->getEnabledProfileIds(I)[I HSPLandroid/os/UserManager;->getEnabledProfiles(I)Ljava/util/List; HSPLandroid/os/UserManager;->getMaxSupportedUsers()I HSPLandroid/os/UserManager;->getPrimaryUser()Landroid/content/pm/UserInfo; -HSPLandroid/os/UserManager;->getProcessUserId()I HSPLandroid/os/UserManager;->getProfileIds(IZ)[I HSPLandroid/os/UserManager;->getProfileIdsWithDisabled(I)[I HSPLandroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo; -HSPLandroid/os/UserManager;->getProfileParent(Landroid/os/UserHandle;)Landroid/os/UserHandle; HSPLandroid/os/UserManager;->getProfileType(I)Ljava/lang/String; HSPLandroid/os/UserManager;->getProfiles(I)Ljava/util/List; HSPLandroid/os/UserManager;->getProfiles(Z)Ljava/util/List; @@ -13435,7 +12920,6 @@ HSPLandroid/os/UserManager;->getUserForSerialNumber(J)Landroid/os/UserHandle; HSPLandroid/os/UserManager;->getUserHandle()I HSPLandroid/os/UserManager;->getUserHandle(I)I HSPLandroid/os/UserManager;->getUserHandles(Z)Ljava/util/List; -HSPLandroid/os/UserManager;->getUserIconBadgeResId(I)I HSPLandroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo; HSPLandroid/os/UserManager;->getUserProfiles()Ljava/util/List; HSPLandroid/os/UserManager;->getUserRestrictionSources(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List; @@ -13450,7 +12934,6 @@ HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;)Z HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;I)Z HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->isCredentialSharableWithParent()Z HSPLandroid/os/UserManager;->isDemoUser()Z HSPLandroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z HSPLandroid/os/UserManager;->isHeadlessSystemUserMode()Z @@ -13474,28 +12957,18 @@ HSPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z HSPLandroid/os/UserManager;->supportsMultipleUsers()Z HSPLandroid/os/VibrationAttributes$Builder;-><init>()V HSPLandroid/os/VibrationAttributes$Builder;->build()Landroid/os/VibrationAttributes; -HSPLandroid/os/VibrationAttributes$Builder;->setUsage(I)Landroid/os/VibrationAttributes$Builder; HSPLandroid/os/VibrationAttributes$Builder;->setUsage(Landroid/media/AudioAttributes;)V HSPLandroid/os/VibrationAttributes;-><init>(III)V HSPLandroid/os/VibrationAttributes;-><init>(IIILandroid/os/VibrationAttributes-IA;)V -HSPLandroid/os/VibrationAttributes;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/VibrationEffect$Composed;-><init>(Ljava/util/List;I)V HSPLandroid/os/VibrationEffect$Composed;->validate()V -HSPLandroid/os/VibrationEffect$Composed;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/VibrationEffect;-><init>()V HSPLandroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect; -HSPLandroid/os/VibrationEffect;->createPredefined(I)Landroid/os/VibrationEffect; HSPLandroid/os/VibrationEffect;->createWaveform([JI)Landroid/os/VibrationEffect; HSPLandroid/os/VibrationEffect;->createWaveform([J[II)Landroid/os/VibrationEffect; HSPLandroid/os/VibrationEffect;->get(IZ)Landroid/os/VibrationEffect; -HSPLandroid/os/Vibrator;-><init>()V HSPLandroid/os/Vibrator;-><init>(Landroid/content/Context;)V HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)V -HSPLandroid/os/VibratorInfo$FrequencyProfile;-><init>(FFF[F)V -HSPLandroid/os/VibratorInfo;-><init>(IJLandroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;Landroid/util/SparseIntArray;IIIIFLandroid/os/VibratorInfo$FrequencyProfile;)V -HSPLandroid/os/VibratorInfo;-><init>(ILandroid/os/VibratorInfo;)V -HSPLandroid/os/VibratorInfo;->hasCapability(J)Z HSPLandroid/os/VibratorManager;-><init>(Landroid/content/Context;)V HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource; HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -13611,11 +13084,6 @@ HSPLandroid/os/strictmode/Violation;->initCause(Ljava/lang/Throwable;)Ljava/lang HSPLandroid/os/vibrator/PrebakedSegment;->getDuration()J HSPLandroid/os/vibrator/PrebakedSegment;->isValidEffectStrength(I)Z HSPLandroid/os/vibrator/PrebakedSegment;->validate()V -HSPLandroid/os/vibrator/PrimitiveSegment$1;-><init>()V -HSPLandroid/os/vibrator/PrimitiveSegment;-><clinit>()V -HSPLandroid/os/vibrator/PrimitiveSegment;-><init>(IFI)V -HSPLandroid/os/vibrator/PrimitiveSegment;->getDuration()J -HSPLandroid/os/vibrator/PrimitiveSegment;->validate()V HSPLandroid/os/vibrator/StepSegment;->getDuration()J HSPLandroid/os/vibrator/StepSegment;->validate()V HSPLandroid/os/vibrator/VibrationEffectSegment;-><init>()V @@ -13693,12 +13161,10 @@ HSPLandroid/provider/DeviceConfig$Properties;-><init>(Ljava/lang/String;Ljava/ut HSPLandroid/provider/DeviceConfig$Properties;->getBoolean(Ljava/lang/String;Z)Z HSPLandroid/provider/DeviceConfig$Properties;->getInt(Ljava/lang/String;I)I HSPLandroid/provider/DeviceConfig$Properties;->getKeyset()Ljava/util/Set; -HSPLandroid/provider/DeviceConfig$Properties;->getLong(Ljava/lang/String;J)J HSPLandroid/provider/DeviceConfig$Properties;->getNamespace()Ljava/lang/String; HSPLandroid/provider/DeviceConfig$Properties;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/provider/DeviceConfig;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V HSPLandroid/provider/DeviceConfig;->createNamespaceUri(Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/DeviceConfig;->decrementNamespace(Ljava/lang/String;)V HSPLandroid/provider/DeviceConfig;->enforceReadPermission(Landroid/content/Context;Ljava/lang/String;)V HSPLandroid/provider/DeviceConfig;->getBoolean(Ljava/lang/String;Ljava/lang/String;Z)Z HSPLandroid/provider/DeviceConfig;->getFloat(Ljava/lang/String;Ljava/lang/String;F)F @@ -13710,7 +13176,6 @@ HSPLandroid/provider/DeviceConfig;->getString(Ljava/lang/String;Ljava/lang/Strin HSPLandroid/provider/DeviceConfig;->handleChange(Landroid/net/Uri;)V HSPLandroid/provider/DeviceConfig;->incrementNamespace(Ljava/lang/String;)V HSPLandroid/provider/DeviceConfig;->lambda$handleChange$0(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;Landroid/provider/DeviceConfig$Properties;)V -HSPLandroid/provider/DeviceConfig;->removeOnPropertiesChangedListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V HSPLandroid/provider/FontRequest;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V HSPLandroid/provider/FontsContract$1;->run()V HSPLandroid/provider/FontsContract$FontFamilyResult;->getFonts()[Landroid/provider/FontsContract$FontInfo; @@ -13779,7 +13244,6 @@ HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/Content HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z HSPLandroid/provider/Settings$SettingNotFoundException;-><init>(Ljava/lang/String;)V HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F -HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F+]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)F HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I @@ -13792,7 +13256,6 @@ HSPLandroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;L HSPLandroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;IZ)Z -HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z HSPLandroid/provider/Settings;->-$$Nest$smparseIntSetting(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/provider/Settings;->-$$Nest$smparseIntSettingWithDefault(Ljava/lang/String;I)I HSPLandroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z @@ -13813,8 +13276,6 @@ HSPLandroid/security/KeyChain$KeyChainConnection;->getService()Landroid/security HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection; HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection; HSPLandroid/security/KeyChain;->ensureNotOnMainThread(Landroid/content/Context;)V -HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda1;-><init>(I)V -HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda1;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda3;-><init>(Landroid/system/keystore2/KeyDescriptor;)V HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda3;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda4;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; @@ -13822,11 +13283,9 @@ HSPLandroid/security/KeyStore2;-><init>()V HSPLandroid/security/KeyStore2;->getInstance()Landroid/security/KeyStore2; HSPLandroid/security/KeyStore2;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse; HSPLandroid/security/KeyStore2;->getKeyStoreException(ILjava/lang/String;)Landroid/security/KeyStoreException; -HSPLandroid/security/KeyStore2;->getSecurityLevel(I)Landroid/security/KeyStoreSecurityLevel; HSPLandroid/security/KeyStore2;->getService(Z)Landroid/system/keystore2/IKeystoreService; HSPLandroid/security/KeyStore2;->handleRemoteExceptionWithRetry(Landroid/security/KeyStore2$CheckedRemoteRequest;)Ljava/lang/Object; HSPLandroid/security/KeyStore2;->lambda$getKeyEntry$4(Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/IKeystoreService;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/security/KeyStore2;->lambda$getSecurityLevel$5(ILandroid/system/keystore2/IKeystoreService;)Landroid/security/KeyStoreSecurityLevel; HSPLandroid/security/KeyStore;->getInstance()Landroid/security/KeyStore; HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;)V HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;Ljava/lang/String;)V @@ -13849,11 +13308,8 @@ HSPLandroid/security/KeyStoreOperation;->lambda$abort$3$android-security-KeyStor HSPLandroid/security/KeyStoreOperation;->lambda$finish$2$android-security-KeyStoreOperation([B[B)[B HSPLandroid/security/KeyStoreOperation;->lambda$update$1$android-security-KeyStoreOperation([B)[B HSPLandroid/security/KeyStoreOperation;->update([B)[B -HSPLandroid/security/KeyStoreSecurityLevel$$ExternalSyntheticLambda1;-><init>(Landroid/security/KeyStoreSecurityLevel;Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/KeyDescriptor;Ljava/util/Collection;I[B)V -HSPLandroid/security/KeyStoreSecurityLevel$$ExternalSyntheticLambda1;->execute()Ljava/lang/Object; HSPLandroid/security/KeyStoreSecurityLevel;-><init>(Landroid/system/keystore2/IKeystoreSecurityLevel;)V HSPLandroid/security/KeyStoreSecurityLevel;->createOperation(Landroid/system/keystore2/KeyDescriptor;Ljava/util/Collection;)Landroid/security/KeyStoreOperation; -HSPLandroid/security/KeyStoreSecurityLevel;->handleExceptions(Landroid/security/CheckedRemoteRequest;)Ljava/lang/Object; HSPLandroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy; HSPLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/ExportResult; @@ -13978,8 +13434,6 @@ HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSignatur HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;-><init>()V HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->abortOperation()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer; -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->createMainDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer; HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII)[B HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII[BI)I HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V @@ -13994,7 +13448,6 @@ HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->resetWhilePreservi HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->setKey(Landroid/security/keystore2/AndroidKeyStoreKey;)V HSPLandroid/security/keystore2/AndroidKeyStoreKey;-><init>(Landroid/system/keystore2/KeyDescriptor;J[Landroid/system/keystore2/Authorization;Ljava/lang/String;Landroid/security/KeyStoreSecurityLevel;)V HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getAlgorithm()Ljava/lang/String; -HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getAuthorizations()[Landroid/system/keystore2/Authorization; HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getFormat()Ljava/lang/String; HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getKeyIdDescriptor()Landroid/system/keystore2/KeyDescriptor; HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getSecurityLevel()Landroid/security/KeyStoreSecurityLevel; @@ -14015,8 +13468,6 @@ HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getKeyMetadata(Ljava/lang/St HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getTargetDomain()I HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->isKeyEntry(Ljava/lang/String;)Z HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->makeKeyDescriptor(Ljava/lang/String;)Landroid/system/keystore2/KeyDescriptor; -HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->addUserAuthArgs(Ljava/util/List;Landroid/security/keystore/UserAuthArgs;)V -HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeBool(I)Landroid/hardware/security/keymint/KeyParameter; HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeBytes(I[B)Landroid/hardware/security/keymint/KeyParameter; HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeEnum(II)Landroid/hardware/security/keymint/KeyParameter; HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeInt(II)Landroid/hardware/security/keymint/KeyParameter; @@ -14134,7 +13585,6 @@ HSPLandroid/security/net/config/XmlConfigSource;->parseDomain(Landroid/content/r HSPLandroid/security/net/config/XmlConfigSource;->parseNetworkSecurityConfig(Landroid/content/res/XmlResourceParser;)V HSPLandroid/security/net/config/XmlConfigSource;->parseTrustAnchors(Landroid/content/res/XmlResourceParser;Z)Ljava/util/Collection; HSPLandroid/service/appprediction/IPredictionService$Stub;-><init>()V -HSPLandroid/service/contentcapture/ActivityEvent;-><init>(Landroid/content/ComponentName;I)V HSPLandroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager; HSPLandroid/service/media/IMediaBrowserService$Stub;-><init>()V HSPLandroid/service/media/IMediaBrowserService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z @@ -14199,7 +13649,6 @@ HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->crea 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/lang/Class;Ljava/lang/Class;]Ljava/util/ArrayList;Ljava/util/ArrayList;]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;->-$$Nest$fgetmHandler(Landroid/service/notification/NotificationListenerService;)Landroid/os/Handler; HSPLandroid/service/notification/NotificationListenerService;-><init>()V HSPLandroid/service/notification/NotificationListenerService;->applyUpdateLocked(Landroid/service/notification/NotificationRankingUpdate;)V HSPLandroid/service/notification/NotificationListenerService;->attachBaseContext(Landroid/content/Context;)V @@ -14276,20 +13725,9 @@ HSPLandroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landro HSPLandroid/service/vr/IVrStateCallbacks$Stub;-><init>()V HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;-><init>()V HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/speech/tts/ITextToSpeechManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/speech/tts/ITextToSpeechManager$Stub$Proxy;->createSession(Ljava/lang/String;Landroid/speech/tts/ITextToSpeechSessionCallback;)V -HSPLandroid/speech/tts/ITextToSpeechManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/tts/ITextToSpeechManager; HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getClientDefaultLanguage()[Ljava/lang/String; HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getDefaultVoiceNameFor(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getVoices()Ljava/util/List; -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->isLanguageAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->loadVoice(Landroid/os/IBinder;Ljava/lang/String;)I HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V -HSPLandroid/speech/tts/ITextToSpeechSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/speech/tts/ITextToSpeechSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/tts/ITextToSpeechSession; -HSPLandroid/speech/tts/ITextToSpeechSessionCallback$Stub;-><init>()V -HSPLandroid/speech/tts/ITextToSpeechSessionCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/speech/tts/ITextToSpeechSessionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/speech/tts/TextToSpeech$Connection$1;-><init>(Landroid/speech/tts/TextToSpeech$Connection;)V HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Integer; @@ -14297,25 +13735,15 @@ HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPost HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Object;)V HSPLandroid/speech/tts/TextToSpeech$Connection;-><init>(Landroid/speech/tts/TextToSpeech;)V HSPLandroid/speech/tts/TextToSpeech$Connection;->getCallerIdentity()Landroid/os/IBinder; -HSPLandroid/speech/tts/TextToSpeech$Connection;->isEstablished()Z HSPLandroid/speech/tts/TextToSpeech$Connection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/speech/tts/TextToSpeech$Connection;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech$EngineInfo;-><init>()V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection$1;-><init>(Landroid/speech/tts/TextToSpeech$SystemConnection;)V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection$1;->onConnected(Landroid/speech/tts/ITextToSpeechSession;Landroid/os/IBinder;)V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection;->-$$Nest$fputmSession(Landroid/speech/tts/TextToSpeech$SystemConnection;Landroid/speech/tts/ITextToSpeechSession;)V -HSPLandroid/speech/tts/TextToSpeech$SystemConnection;->connect(Ljava/lang/String;)Z -HSPLandroid/speech/tts/TextToSpeech;->-$$Nest$fgetmStartLock(Landroid/speech/tts/TextToSpeech;)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;)V HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;)V HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;Z)V -HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;ZZ)V HSPLandroid/speech/tts/TextToSpeech;->connectToEngine(Ljava/lang/String;)Z HSPLandroid/speech/tts/TextToSpeech;->dispatchOnInit(I)V -HSPLandroid/speech/tts/TextToSpeech;->getCallerIdentity()Landroid/os/IBinder; HSPLandroid/speech/tts/TextToSpeech;->getDefaultEngine()Ljava/lang/String; HSPLandroid/speech/tts/TextToSpeech;->initTts()I -HSPLandroid/speech/tts/TextToSpeech;->lambda$dispatchOnInit$0$android-speech-tts-TextToSpeech(I)V HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object; HSPLandroid/speech/tts/TtsEngines;-><init>(Landroid/content/Context;)V @@ -14324,14 +13752,6 @@ HSPLandroid/speech/tts/TtsEngines;->getEngineInfo(Landroid/content/pm/ResolveInf HSPLandroid/speech/tts/TtsEngines;->getEngines()Ljava/util/List; HSPLandroid/speech/tts/TtsEngines;->isEngineInstalled(Ljava/lang/String;)Z HSPLandroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceInfo;)Z -HSPLandroid/speech/tts/Voice$1;-><init>()V -HSPLandroid/speech/tts/Voice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/speech/tts/Voice; -HSPLandroid/speech/tts/Voice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/speech/tts/Voice;-><clinit>()V -HSPLandroid/speech/tts/Voice;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/speech/tts/Voice;-><init>(Landroid/os/Parcel;Landroid/speech/tts/Voice-IA;)V -HSPLandroid/speech/tts/Voice;->getLocale()Ljava/util/Locale; -HSPLandroid/speech/tts/Voice;->getName()Ljava/lang/String; HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl()Ljava/util/Optional; HSPLandroid/sysprop/DisplayProperties;->debug_layout()Ljava/util/Optional; HSPLandroid/sysprop/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean; @@ -14460,7 +13880,6 @@ HSPLandroid/system/keystore2/IKeystoreSecurityLevel;-><clinit>()V HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->getSecurityLevel(I)Landroid/system/keystore2/IKeystoreSecurityLevel; HSPLandroid/system/keystore2/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreService; HSPLandroid/system/keystore2/IKeystoreService;-><clinit>()V HSPLandroid/system/keystore2/KeyDescriptor$1;-><init>()V @@ -14491,7 +13910,6 @@ HSPLandroid/system/keystore2/KeyParameters;->readFromParcel(Landroid/os/Parcel;) HSPLandroid/system/keystore2/OperationChallenge$1;-><init>()V HSPLandroid/system/keystore2/OperationChallenge;-><clinit>()V HSPLandroid/telecom/AudioState;-><init>(Landroid/telecom/CallAudioState;)V -HSPLandroid/telecom/Call$Callback;-><init>()V HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/CallAudioState; HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telecom/CallAudioState;-><init>(ZIILandroid/bluetooth/BluetoothDevice;Ljava/util/Collection;)V @@ -14504,9 +13922,6 @@ HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Lan HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telecom/DisconnectCause;->getCode()I HSPLandroid/telecom/DisconnectCause;->getReason()Ljava/lang/String; -HSPLandroid/telecom/InCallService$1;-><init>(Landroid/telecom/InCallService;Landroid/os/Looper;)V -HSPLandroid/telecom/InCallService$2;-><init>(Landroid/telecom/InCallService;)V -HSPLandroid/telecom/InCallService;-><init>()V HSPLandroid/telecom/Log;->buildMessage(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; HSPLandroid/telecom/Log;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V HSPLandroid/telecom/Log;->createSubsession()Landroid/telecom/Logging/Session; @@ -14552,7 +13967,6 @@ HSPLandroid/telecom/Logging/SessionManager;->endParentSessions(Landroid/telecom/ HSPLandroid/telecom/Logging/SessionManager;->endSession()V HSPLandroid/telecom/Logging/SessionManager;->getSessionId()Ljava/lang/String; HSPLandroid/telecom/Logging/SessionManager;->resetStaleSessionTimer()V -HSPLandroid/telecom/Phone$Listener;-><init>()V HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccount; HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telecom/PhoneAccount$Builder;-><init>(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)V @@ -14636,17 +14050,9 @@ HSPLandroid/telephony/CellIdentityLte;-><init>(Landroid/os/Parcel;)V HSPLandroid/telephony/CellIdentityLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte; HSPLandroid/telephony/CellIdentityLte;->equals(Ljava/lang/Object;)Z HSPLandroid/telephony/CellIdentityLte;->getCi()I -HSPLandroid/telephony/CellIdentityLte;->getPci()I -HSPLandroid/telephony/CellIdentityLte;->getTac()I HSPLandroid/telephony/CellIdentityLte;->toString()Ljava/lang/String; HSPLandroid/telephony/CellIdentityLte;->updateGlobalCellId()V HSPLandroid/telephony/CellIdentityLte;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellIdentityNr$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityNr; -HSPLandroid/telephony/CellIdentityNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellIdentityNr;-><init>(Landroid/os/Parcel;)V+]Landroid/telephony/CellIdentityNr;Landroid/telephony/CellIdentityNr;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/CellIdentityNr;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityNr; -HSPLandroid/telephony/CellIdentityNr;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/telephony/CellIdentityNr;->updateGlobalCellId()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/telephony/CellIdentityNr;Landroid/telephony/CellIdentityNr; HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma; HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/CellIdentityWcdma;-><init>(Landroid/os/Parcel;)V @@ -14683,9 +14089,6 @@ HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parc HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;)V HSPLandroid/telephony/CellSignalStrengthNr;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthNr;->getDbm()I -HSPLandroid/telephony/CellSignalStrengthNr;->getLevel()I -HSPLandroid/telephony/CellSignalStrengthNr;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/telephony/CellSignalStrengthNr;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthTdscdma; HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -14756,14 +14159,8 @@ HSPLandroid/telephony/NetworkRegistrationInfo;->registrationStateToString(I)Ljav HSPLandroid/telephony/NetworkRegistrationInfo;->serviceTypeToString(I)Ljava/lang/String; HSPLandroid/telephony/NetworkRegistrationInfo;->toString()Ljava/lang/String; HSPLandroid/telephony/NetworkRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/NrVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NrVopsSupportInfo;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/NrVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/NrVopsSupportInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/NrVopsSupportInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/NrVopsSupportInfo-IA;)V -HSPLandroid/telephony/NrVopsSupportInfo;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLandroid/telephony/PhoneNumberUtils;->convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/telephony/PhoneNumberUtils;->formatNumber(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; HSPLandroid/telephony/PhoneNumberUtils;->formatNumberInternal(Ljava/lang/String;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String; HSPLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/telephony/PhoneNumberUtils;->getMinMatch()I @@ -14781,7 +14178,6 @@ HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSynthe HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda27;->run()V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda28;-><init>(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda28;->run()V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda34;->runOrThrow()V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda42;->run()V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda47;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda47;->runOrThrow()V @@ -14791,7 +14187,6 @@ HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActi HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataActivity$16(Landroid/telephony/PhoneStateListener;I)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataConnectionStateChanged$14(Landroid/telephony/PhoneStateListener;II)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onLegacyCallStateChanged$10(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onLegacyCallStateChanged$11$android-telephony-PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$0(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$1$android-telephony-PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$18(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V @@ -14808,20 +14203,7 @@ HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Ljava/util/concurrent/Executor;)V HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/util/concurrent/Executor;)V HSPLandroid/telephony/PhoneStateListener;->onDataConnectionStateChanged(I)V -HSPLandroid/telephony/PhysicalChannelConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/PhysicalChannelConfig; -HSPLandroid/telephony/PhysicalChannelConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/PhysicalChannelConfig;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/PhysicalChannelConfig;-><init>(Landroid/os/Parcel;Landroid/telephony/PhysicalChannelConfig-IA;)V -HSPLandroid/telephony/PhysicalChannelConfig;->getCellBandwidthDownlinkKhz()I -HSPLandroid/telephony/PhysicalChannelConfig;->getConnectionStatus()I -HSPLandroid/telephony/PhysicalChannelConfig;->getNetworkType()I -HSPLandroid/telephony/PreciseDataConnectionState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/PreciseDataConnectionState; -HSPLandroid/telephony/PreciseDataConnectionState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/PreciseDataConnectionState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/PreciseDataConnectionState;-><init>(Landroid/os/Parcel;Landroid/telephony/PreciseDataConnectionState-IA;)V -HSPLandroid/telephony/PreciseDataConnectionState;->toString()Ljava/lang/String; HSPLandroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState; HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/ServiceState;-><init>()V @@ -14939,32 +14321,7 @@ HSPLandroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z HSPLandroid/telephony/SubscriptionManager;->lambda$getActiveSubscriptionInfoList$1$android-telephony-SubscriptionManager(Landroid/telephony/SubscriptionInfo;)Z HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Landroid/telephony/SubscriptionPlan; HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda25;-><init>(Landroid/telephony/TelephonyCallback$ActiveDataSubscriptionIdListener;I)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda25;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda31;-><init>(Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda31;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda34;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda34;->runOrThrow()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda35;-><init>(Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda35;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda38;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda38;->runOrThrow()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda51;-><init>(Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda51;->run()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda59;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda59;->runOrThrow()V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda61;-><init>(Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;Landroid/telephony/TelephonyCallback$ActiveDataSubscriptionIdListener;I)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda61;->runOrThrow()V HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;-><init>(Landroid/telephony/TelephonyCallback;Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$34(Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$35$android-telephony-TelephonyCallback$IPhoneStateListenerStub(Landroid/telephony/TelephonyCallback$DisplayInfoListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onServiceStateChanged$0(Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onServiceStateChanged$1$android-telephony-TelephonyCallback$IPhoneStateListenerStub(Landroid/telephony/TelephonyCallback$ServiceStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$16(Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$17$android-telephony-TelephonyCallback$IPhoneStateListenerStub(Landroid/telephony/TelephonyCallback$SignalStrengthsListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->onDisplayInfoChanged(Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->onServiceStateChanged(Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V HSPLandroid/telephony/TelephonyCallback;-><init>()V HSPLandroid/telephony/TelephonyCallback;->init(Ljava/util/concurrent/Executor;)V HSPLandroid/telephony/TelephonyDisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/TelephonyDisplayInfo; @@ -14984,24 +14341,15 @@ HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrap HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$2(Landroid/content/Context;)Landroid/telephony/CarrierConfigManager; HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$3(Landroid/content/Context;)Landroid/telephony/euicc/EuiccManager; HSPLandroid/telephony/TelephonyFrameworkInitializer;->setTelephonyServiceManager(Landroid/os/TelephonyServiceManager;)V -HSPLandroid/telephony/TelephonyManager$$ExternalSyntheticLambda11;-><init>(J)V -HSPLandroid/telephony/TelephonyManager$$ExternalSyntheticLambda11;->test(I)Z -HSPLandroid/telephony/TelephonyManager$$ExternalSyntheticLambda12;-><init>()V HSPLandroid/telephony/TelephonyManager$1;-><init>(Landroid/telephony/TelephonyManager;ILjava/lang/String;)V -HSPLandroid/telephony/TelephonyManager$1;->recompute(Landroid/telecom/PhoneAccountHandle;)Ljava/lang/Integer; -HSPLandroid/telephony/TelephonyManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/TelephonyManager;->-$$Nest$fgetmContext(Landroid/telephony/TelephonyManager;)Landroid/content/Context; -HSPLandroid/telephony/TelephonyManager;->-$$Nest$mgetITelephony(Landroid/telephony/TelephonyManager;)Lcom/android/internal/telephony/ITelephony; HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;I)V HSPLandroid/telephony/TelephonyManager;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I -HSPLandroid/telephony/TelephonyManager;->convertNetworkTypeBitmaskToString(J)Ljava/lang/String; HSPLandroid/telephony/TelephonyManager;->createForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/TelephonyManager; HSPLandroid/telephony/TelephonyManager;->createForSubscriptionId(I)Landroid/telephony/TelephonyManager; HSPLandroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager; HSPLandroid/telephony/TelephonyManager;->getActiveModemCount()I HSPLandroid/telephony/TelephonyManager;->getAttributionTag()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getBitMaskForNetworkType(I)J HSPLandroid/telephony/TelephonyManager;->getCallState()I HSPLandroid/telephony/TelephonyManager;->getCardIdForDefaultEuicc()I HSPLandroid/telephony/TelephonyManager;->getCarrierPrivilegeStatus(I)I @@ -15083,12 +14431,10 @@ HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming()Z HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z HSPLandroid/telephony/TelephonyManager;->isSmsCapable()Z HSPLandroid/telephony/TelephonyManager;->isVoiceCapable()Z -HSPLandroid/telephony/TelephonyManager;->lambda$convertNetworkTypeBitmaskToString$11(JI)Z HSPLandroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V HSPLandroid/telephony/TelephonyManager;->mergeAttributionAndRenouncedPermissions(Landroid/content/Context;Landroid/content/Context;)Landroid/content/Context; HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(ILjava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V -HSPLandroid/telephony/TelephonyManager;->unregisterTelephonyCallback(Landroid/telephony/TelephonyCallback;)V HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;-><init>()V HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1;-><init>()V @@ -15106,7 +14452,6 @@ HSPLandroid/telephony/TelephonyRegistryManager;->lambda$listenFromListener$0(Lja HSPLandroid/telephony/TelephonyRegistryManager;->listenFromCallback(ZZILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;[IZ)V HSPLandroid/telephony/TelephonyRegistryManager;->listenFromListener(IZZLjava/lang/String;Ljava/lang/String;Landroid/telephony/PhoneStateListener;IZ)V HSPLandroid/telephony/TelephonyRegistryManager;->registerTelephonyCallback(ZZLjava/util/concurrent/Executor;ILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;Z)V -HSPLandroid/telephony/TelephonyRegistryManager;->unregisterTelephonyCallback(ILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;Z)V HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/UiccAccessRule; HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Landroid/telephony/UiccAccessRule; @@ -15117,9 +14462,6 @@ HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(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 -HSPLandroid/telephony/VopsSupportInfo;-><init>()V -HSPLandroid/telephony/data/ApnSetting$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting; -HSPLandroid/telephony/data/ApnSetting$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/telephony/data/ApnSetting$Builder;-><init>()V HSPLandroid/telephony/data/ApnSetting$Builder;->buildWithoutCheck()Landroid/telephony/data/ApnSetting; HSPLandroid/telephony/data/ApnSetting$Builder;->setAlwaysOn(Z)Landroid/telephony/data/ApnSetting$Builder; @@ -15153,7 +14495,6 @@ HSPLandroid/telephony/data/ApnSetting$Builder;->setRoamingProtocol(I)Landroid/te HSPLandroid/telephony/data/ApnSetting$Builder;->setSkip464Xlat(I)Landroid/telephony/data/ApnSetting$Builder; HSPLandroid/telephony/data/ApnSetting$Builder;->setUser(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; HSPLandroid/telephony/data/ApnSetting$Builder;->setWaitTime(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting;->-$$Nest$smreadFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting; HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;)V HSPLandroid/telephony/data/ApnSetting;->UriToString(Landroid/net/Uri;)Ljava/lang/String; HSPLandroid/telephony/data/ApnSetting;->equals(Ljava/lang/Object;)Z @@ -15161,11 +14502,9 @@ HSPLandroid/telephony/data/ApnSetting;->getApnName()Ljava/lang/String; HSPLandroid/telephony/data/ApnSetting;->getApnTypeBitmask()I HSPLandroid/telephony/data/ApnSetting;->getApnTypesStringFromBitmask(I)Ljava/lang/String; HSPLandroid/telephony/data/ApnSetting;->portToString(I)Ljava/lang/String; -HSPLandroid/telephony/data/ApnSetting;->readFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting; HSPLandroid/telephony/data/ApnSetting;->toString()Ljava/lang/String; HSPLandroid/telephony/euicc/EuiccManager;->getIEuiccController()Lcom/android/internal/telephony/euicc/IEuiccController; HSPLandroid/telephony/euicc/EuiccManager;->isEnabled()Z -HSPLandroid/telephony/ims/ImsMmTelManager;->$r8$lambda$8hRjnVioxU_y_77mclIjv6ZujmI()Lcom/android/internal/telephony/ITelephony; HSPLandroid/telephony/ims/ImsMmTelManager;->createForSubscriptionId(I)Landroid/telephony/ims/ImsMmTelManager; HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephony()Lcom/android/internal/telephony/ITelephony; HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephonyInterface()Lcom/android/internal/telephony/ITelephony; @@ -15315,7 +14654,6 @@ HSPLandroid/text/Hyphenator;->init()V HSPLandroid/text/InputFilter$LengthFilter;-><init>(I)V HSPLandroid/text/InputFilter$LengthFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; HSPLandroid/text/InputFilter$LengthFilter;->getMax()I -HSPLandroid/text/Layout$$ExternalSyntheticLambda0;->accept(FFFFI)V HSPLandroid/text/Layout$Alignment;->values()[Landroid/text/Layout$Alignment; HSPLandroid/text/Layout$Directions;->getRunCount()I HSPLandroid/text/Layout$Directions;->getRunLength(I)I @@ -15387,7 +14725,6 @@ 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;->lambda$getSelectionPath$0(Landroid/graphics/Path;FFFFI)V+]Landroid/graphics/Path;Landroid/graphics/Path; HSPLandroid/text/Layout;->measurePara(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)F HSPLandroid/text/Layout;->primaryIsTrailingPrevious(I)Z HSPLandroid/text/Layout;->replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V @@ -15494,7 +14831,6 @@ HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;Z)[Ljava/l HSPLandroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I HSPLandroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z -HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/Editable; HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder; HSPLandroid/text/SpannableStringBuilder;->invalidateIndex(I)V HSPLandroid/text/SpannableStringBuilder;->isInvalidParagraph(II)Z @@ -15673,8 +15009,6 @@ HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/Object; HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/String; HSPLandroid/text/TextUtils$SimpleStringSplitter;->setString(Ljava/lang/String;)V HSPLandroid/text/TextUtils$StringWithRemovedChars;->toString()Ljava/lang/String; -HSPLandroid/text/TextUtils$TruncateAt;->valueOf(Ljava/lang/String;)Landroid/text/TextUtils$TruncateAt; -HSPLandroid/text/TextUtils$TruncateAt;->values()[Landroid/text/TextUtils$TruncateAt; HSPLandroid/text/TextUtils;->concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V HSPLandroid/text/TextUtils;->couldAffectRtl(C)Z @@ -15759,7 +15093,6 @@ HSPLandroid/text/format/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar; 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/Formatter;->localeFromContext(Landroid/content/Context;)Ljava/util/Locale; 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; @@ -15783,7 +15116,6 @@ HSPLandroid/text/method/ArrowKeyMovementMethod;->onTakeFocus(Landroid/widget/Tex HSPLandroid/text/method/ArrowKeyMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z HSPLandroid/text/method/BaseKeyListener;-><init>()V HSPLandroid/text/method/BaseKeyListener;->makeTextContentType(Landroid/text/method/TextKeyListener$Capitalize;Z)I -HSPLandroid/text/method/BaseKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z HSPLandroid/text/method/BaseMovementMethod;-><init>()V HSPLandroid/text/method/BaseMovementMethod;->getMovementMetaState(Landroid/text/Spannable;Landroid/view/KeyEvent;)I HSPLandroid/text/method/BaseMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z @@ -15810,7 +15142,6 @@ HSPLandroid/text/method/ReplacementTransformationMethod;-><init>()V HSPLandroid/text/method/ReplacementTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence; HSPLandroid/text/method/ReplacementTransformationMethod;->onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V HSPLandroid/text/method/ScrollingMovementMethod;-><init>()V -HSPLandroid/text/method/ScrollingMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z HSPLandroid/text/method/SingleLineTransformationMethod;-><init>()V HSPLandroid/text/method/SingleLineTransformationMethod;->getInstance()Landroid/text/method/SingleLineTransformationMethod; HSPLandroid/text/method/SingleLineTransformationMethod;->getOriginal()[C @@ -15896,12 +15227,7 @@ HSPLandroid/text/util/Linkify;->addLinks(Landroid/text/Spannable;ILandroid/conte HSPLandroid/text/util/Linkify;->containsUnsupportedCharacters(Ljava/lang/String;)Z HSPLandroid/text/util/Linkify;->gatherLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Ljava/util/regex/Pattern;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V HSPLandroid/text/util/Linkify;->pruneOverlaps(Ljava/util/ArrayList;)V -HSPLandroid/transition/ChangeBounds;-><init>()V HSPLandroid/transition/ChangeBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/ChangeBounds;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/ChangeBounds;->captureStartValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/ChangeBounds;->captureValues(Landroid/transition/TransitionValues;)V+]Landroid/view/View;missing_types]Ljava/util/Map;Landroid/util/ArrayMap; -HSPLandroid/transition/ChangeBounds;->getTransitionProperties()[Ljava/lang/String; HSPLandroid/transition/ChangeBounds;->setResizeClip(Z)V HSPLandroid/transition/ChangeClipBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/ChangeImageTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V @@ -15918,7 +15244,6 @@ HSPLandroid/transition/Scene;->enter()V HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/transition/Transition$EpicenterCallback;-><init>()V HSPLandroid/transition/Transition;-><init>()V HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/Transition;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; @@ -15934,13 +15259,10 @@ HSPLandroid/transition/Transition;->clone()Landroid/transition/Transition; HSPLandroid/transition/Transition;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V HSPLandroid/transition/Transition;->end()V HSPLandroid/transition/Transition;->getDuration()J -HSPLandroid/transition/Transition;->getEpicenter()Landroid/graphics/Rect; HSPLandroid/transition/Transition;->getInterpolator()Landroid/animation/TimeInterpolator; HSPLandroid/transition/Transition;->getName()Ljava/lang/String; HSPLandroid/transition/Transition;->getStartDelay()J -HSPLandroid/transition/Transition;->isTransitionRequired(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Z+]Landroid/transition/Transition;Landroid/transition/ChangeBounds; HSPLandroid/transition/Transition;->isValidTarget(Landroid/view/View;)Z -HSPLandroid/transition/Transition;->isValueChanged(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;Ljava/lang/String;)Z+]Ljava/lang/Object;missing_types]Ljava/util/Map;Landroid/util/ArrayMap; HSPLandroid/transition/Transition;->matchIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseArray;Landroid/util/SparseArray;)V HSPLandroid/transition/Transition;->matchInstances(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V HSPLandroid/transition/Transition;->matchItemIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V @@ -15968,11 +15290,9 @@ HSPLandroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ HSPLandroid/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/transition/Transition;)V HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionEnd(Landroid/transition/Transition;)V HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionStart(Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionSet;-><init>()V HSPLandroid/transition/TransitionSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/Transition; HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/TransitionSet; HSPLandroid/transition/TransitionSet;->addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet; HSPLandroid/transition/TransitionSet;->addTransitionInternal(Landroid/transition/Transition;)V @@ -15995,7 +15315,6 @@ HSPLandroid/transition/Visibility$DisappearListener;->onAnimationStart(Landroid/ HSPLandroid/transition/Visibility$DisappearListener;->onTransitionEnd(Landroid/transition/Transition;)V HSPLandroid/transition/Visibility;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/transition/Visibility;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/Visibility;->captureStartValues(Landroid/transition/TransitionValues;)V HSPLandroid/transition/Visibility;->captureValues(Landroid/transition/TransitionValues;)V HSPLandroid/transition/Visibility;->createAnimator(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator; HSPLandroid/transition/Visibility;->getMode()I @@ -16028,7 +15347,6 @@ 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;->forEach(Ljava/util/function/BiConsumer;)V HSPLandroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V HSPLandroid/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections; @@ -16072,7 +15390,6 @@ HSPLandroid/util/ArraySet;->clear()V HSPLandroid/util/ArraySet;->contains(Ljava/lang/Object;)Z HSPLandroid/util/ArraySet;->ensureCapacity(I)V HSPLandroid/util/ArraySet;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/ArraySet;->forEach(Ljava/util/function/Consumer;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/function/Consumer;megamorphic_types HSPLandroid/util/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V HSPLandroid/util/ArraySet;->getCollection()Landroid/util/MapCollections; HSPLandroid/util/ArraySet;->hashCode()I @@ -16114,7 +15431,6 @@ HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String; HSPLandroid/util/CloseGuard;-><init>()V HSPLandroid/util/CloseGuard;->close()V HSPLandroid/util/CloseGuard;->open(Ljava/lang/String;)V -PLandroid/util/CloseGuard;->warnIfOpen()V HSPLandroid/util/ContainerHelpers;->binarySearch([III)I HSPLandroid/util/ContainerHelpers;->binarySearch([JIJ)I HSPLandroid/util/DebugUtils;->constNameWithoutPrefix(Ljava/lang/String;Ljava/lang/reflect/Field;)Ljava/lang/String; @@ -16123,7 +15439,6 @@ HSPLandroid/util/DebugUtils;->getFieldValue(Ljava/lang/reflect/Field;)J HSPLandroid/util/DisplayMetrics;-><init>()V HSPLandroid/util/DisplayMetrics;->setTo(Landroid/util/DisplayMetrics;)V HSPLandroid/util/DisplayMetrics;->setToDefaults()V -HSPLandroid/util/DisplayUtils;->getDisplayUniqueIdConfigIndex(Landroid/content/res/Resources;Ljava/lang/String;)I+]Landroid/content/res/Resources;Landroid/content/res/Resources; HSPLandroid/util/EventLog$Event;-><init>([B)V HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object; HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object; @@ -16219,11 +15534,9 @@ HSPLandroid/util/JsonWriter;->value(Z)Landroid/util/JsonWriter; HSPLandroid/util/KeyValueListParser$IntValue;->getValue()I HSPLandroid/util/KeyValueListParser;-><init>(C)V HSPLandroid/util/KeyValueListParser;->getBoolean(Ljava/lang/String;Z)Z -HSPLandroid/util/KeyValueListParser;->getFloat(Ljava/lang/String;F)F HSPLandroid/util/KeyValueListParser;->getInt(Ljava/lang/String;I)I HSPLandroid/util/KeyValueListParser;->getLong(Ljava/lang/String;J)J HSPLandroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V -HSPLandroid/util/LauncherIcons;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)Landroid/graphics/drawable/Drawable; HSPLandroid/util/LocalLog;-><init>(I)V HSPLandroid/util/LocalLog;-><init>(IZ)V HSPLandroid/util/LocalLog;->append(Ljava/lang/String;)V @@ -16307,7 +15620,6 @@ HSPLandroid/util/MapCollections$EntrySet;->size()I HSPLandroid/util/MapCollections$KeySet;-><init>(Landroid/util/MapCollections;)V HSPLandroid/util/MapCollections$KeySet;->contains(Ljava/lang/Object;)Z HSPLandroid/util/MapCollections$KeySet;->containsAll(Ljava/util/Collection;)Z -HSPLandroid/util/MapCollections$KeySet;->equals(Ljava/lang/Object;)Z HSPLandroid/util/MapCollections$KeySet;->iterator()Ljava/util/Iterator; HSPLandroid/util/MapCollections$KeySet;->size()I HSPLandroid/util/MapCollections$KeySet;->toArray()[Ljava/lang/Object; @@ -16322,7 +15634,6 @@ HSPLandroid/util/MapCollections$ValuesCollection;->iterator()Ljava/util/Iterator HSPLandroid/util/MapCollections$ValuesCollection;->size()I HSPLandroid/util/MapCollections$ValuesCollection;->toArray()[Ljava/lang/Object; HSPLandroid/util/MapCollections;-><init>()V -HSPLandroid/util/MapCollections;->equalsSetHelper(Ljava/util/Set;Ljava/lang/Object;)Z HSPLandroid/util/MapCollections;->getEntrySet()Ljava/util/Set; HSPLandroid/util/MapCollections;->getKeySet()Ljava/util/Set; HSPLandroid/util/MapCollections;->getValues()Ljava/util/Collection; @@ -16348,7 +15659,6 @@ HSPLandroid/util/MemoryIntArray;->size()I HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MergedConfiguration; HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/util/MergedConfiguration;-><init>()V -HSPLandroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V HSPLandroid/util/MergedConfiguration;-><init>(Landroid/os/Parcel;)V HSPLandroid/util/MergedConfiguration;-><init>(Landroid/util/MergedConfiguration;)V HSPLandroid/util/MergedConfiguration;->equals(Ljava/lang/Object;)Z @@ -16401,9 +15711,6 @@ HSPLandroid/util/Range;->intersect(Ljava/lang/Comparable;Ljava/lang/Comparable;) HSPLandroid/util/Rational;-><init>(II)V HSPLandroid/util/Rational;->compareTo(Landroid/util/Rational;)I HSPLandroid/util/Rational;->compareTo(Ljava/lang/Object;)I -HSPLandroid/util/Rational;->floatValue()F -HSPLandroid/util/Rational;->getDenominator()I -HSPLandroid/util/Rational;->getNumerator()I HSPLandroid/util/Singleton;-><init>()V HSPLandroid/util/Singleton;->get()Ljava/lang/Object; HSPLandroid/util/Size;-><init>(II)V @@ -16445,7 +15752,6 @@ HSPLandroid/util/SparseBooleanArray;->append(IZ)V HSPLandroid/util/SparseBooleanArray;->clear()V HSPLandroid/util/SparseBooleanArray;->clone()Landroid/util/SparseBooleanArray; HSPLandroid/util/SparseBooleanArray;->delete(I)V -HSPLandroid/util/SparseBooleanArray;->equals(Ljava/lang/Object;)Z HSPLandroid/util/SparseBooleanArray;->get(I)Z HSPLandroid/util/SparseBooleanArray;->get(IZ)Z HSPLandroid/util/SparseBooleanArray;->indexOfKey(I)I @@ -16538,7 +15844,6 @@ HSPLandroid/util/proto/EncodedBuffer;->getRawFixed32At(I)I HSPLandroid/util/proto/EncodedBuffer;->getRawVarint32Size(I)I HSPLandroid/util/proto/EncodedBuffer;->getReadPos()I HSPLandroid/util/proto/EncodedBuffer;->getReadableSize()I -HPLandroid/util/proto/EncodedBuffer;->getSize()I HSPLandroid/util/proto/EncodedBuffer;->getWritePos()I HSPLandroid/util/proto/EncodedBuffer;->readRawByte()B HSPLandroid/util/proto/EncodedBuffer;->readRawFixed32()I @@ -16580,8 +15885,6 @@ HSPLandroid/util/proto/ProtoOutputStream;->editEncodedSize(I)I HSPLandroid/util/proto/ProtoOutputStream;->end(J)V HSPLandroid/util/proto/ProtoOutputStream;->endObjectImpl(JZ)V HSPLandroid/util/proto/ProtoOutputStream;->flush()V -HPLandroid/util/proto/ProtoOutputStream;->getBytes()[B -HPLandroid/util/proto/ProtoOutputStream;->getRawSize()I HSPLandroid/util/proto/ProtoOutputStream;->getTagSize(I)I HSPLandroid/util/proto/ProtoOutputStream;->readRawTag()I HSPLandroid/util/proto/ProtoOutputStream;->start(J)J @@ -16589,10 +15892,8 @@ HSPLandroid/util/proto/ProtoOutputStream;->startObjectImpl(IZ)J HSPLandroid/util/proto/ProtoOutputStream;->write(JI)V HSPLandroid/util/proto/ProtoOutputStream;->write(JJ)V HSPLandroid/util/proto/ProtoOutputStream;->write(JLjava/lang/String;)V -HPLandroid/util/proto/ProtoOutputStream;->writeEnumImpl(II)V+]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream; HSPLandroid/util/proto/ProtoOutputStream;->writeInt32Impl(II)V HSPLandroid/util/proto/ProtoOutputStream;->writeKnownLengthHeader(II)V -HPLandroid/util/proto/ProtoOutputStream;->writeRepeatedInt32Impl(II)V+]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream; HSPLandroid/util/proto/ProtoOutputStream;->writeStringImpl(ILjava/lang/String;)V HSPLandroid/util/proto/ProtoOutputStream;->writeTag(II)V HSPLandroid/util/proto/ProtoOutputStream;->writeUnsignedVarintFromSignedInt(I)V @@ -16607,13 +15908,11 @@ HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lan HSPLandroid/view/AbsSavedState;-><init>(Landroid/os/Parcelable;)V HSPLandroid/view/AbsSavedState;->getSuperState()Landroid/os/Parcelable; HSPLandroid/view/AbsSavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/ActionMode$Callback2;-><init>()V HSPLandroid/view/Choreographer$1;->initialValue()Landroid/view/Choreographer; HSPLandroid/view/Choreographer$1;->initialValue()Ljava/lang/Object; HSPLandroid/view/Choreographer$2;->initialValue()Landroid/view/Choreographer; HSPLandroid/view/Choreographer$2;->initialValue()Ljava/lang/Object; HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;)V -HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;Landroid/view/Choreographer$CallbackQueue-IA;)V HSPLandroid/view/Choreographer$CallbackQueue;->addCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)V HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landroid/view/Choreographer$CallbackRecord; HSPLandroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V @@ -16636,7 +15935,6 @@ HSPLandroid/view/Choreographer$FrameTimeline;-><init>(JJJ)V HSPLandroid/view/Choreographer$FrameTimeline;->getDeadlineNanos()J HSPLandroid/view/Choreographer;->-$$Nest$sfgetVSYNC_CALLBACK_TOKEN()Ljava/lang/Object; HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;I)V -HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;ILandroid/view/Choreographer-IA;)V HSPLandroid/view/Choreographer;->doCallbacks(ILandroid/view/Choreographer$FrameData;J)V HSPLandroid/view/Choreographer;->doFrame(JILandroid/view/DisplayEventReceiver$VsyncEventData;)V HSPLandroid/view/Choreographer;->doScheduleCallback(I)V @@ -16664,11 +15962,9 @@ HSPLandroid/view/Choreographer;->removeFrameCallback(Landroid/view/Choreographer HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V HSPLandroid/view/Choreographer;->scheduleVsyncLocked()V HSPLandroid/view/Choreographer;->setFPSDivisor(I)V -HSPLandroid/view/Choreographer;->traceMessage(Ljava/lang/String;)V HSPLandroid/view/ContextThemeWrapper;-><init>()V HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V -HSPLandroid/view/ContextThemeWrapper;->applyOverrideConfiguration(Landroid/content/res/Configuration;)V HSPLandroid/view/ContextThemeWrapper;->attachBaseContext(Landroid/content/Context;)V HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetManager; HSPLandroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/content/res/Configuration; @@ -16726,7 +16022,6 @@ HSPLandroid/view/Display;->getState()I HSPLandroid/view/Display;->getSupportedColorModes()[I HSPLandroid/view/Display;->getSupportedModes()[Landroid/view/Display$Mode; HSPLandroid/view/Display;->getSupportedWideColorGamut()[Landroid/graphics/ColorSpace; -HSPLandroid/view/Display;->getUniqueId()Ljava/lang/String; HSPLandroid/view/Display;->getWidth()I HSPLandroid/view/Display;->hasAccess(IIII)Z HSPLandroid/view/Display;->isValid()Z @@ -16775,15 +16070,12 @@ HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;[Landroid/graphics/Rect;Landroid/view/DisplayCutout$CutoutPathParserInfo;ZLandroid/view/DisplayCutout-IA;)V HSPLandroid/view/DisplayCutout;->atLeastZero(I)I HSPLandroid/view/DisplayCutout;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayCutout;->getBoundingRects()Ljava/util/List; HSPLandroid/view/DisplayCutout;->getBoundingRectsAll()[Landroid/graphics/Rect; HSPLandroid/view/DisplayCutout;->getCopyOrRef(Landroid/graphics/Rect;Z)Landroid/graphics/Rect; HSPLandroid/view/DisplayCutout;->getSafeInsetBottom()I HSPLandroid/view/DisplayCutout;->getSafeInsetLeft()I HSPLandroid/view/DisplayCutout;->getSafeInsetRight()I HSPLandroid/view/DisplayCutout;->getSafeInsetTop()I -HSPLandroid/view/DisplayCutout;->getSafeInsets()Landroid/graphics/Rect; -HSPLandroid/view/DisplayCutout;->getWaterfallInsets()Landroid/graphics/Insets; HSPLandroid/view/DisplayCutout;->inset(IIII)Landroid/view/DisplayCutout; HSPLandroid/view/DisplayCutout;->insetInsets(IIIILandroid/graphics/Rect;)Landroid/graphics/Rect; HSPLandroid/view/DisplayCutout;->isBoundsEmpty()Z @@ -16812,8 +16104,6 @@ HSPLandroid/view/DisplayInfo;->getLogicalMetrics(Landroid/util/DisplayMetrics;La 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;->getMode()Landroid/view/Display$Mode; -HSPLandroid/view/DisplayInfo;->getNaturalHeight()I -HSPLandroid/view/DisplayInfo;->getNaturalWidth()I HSPLandroid/view/DisplayInfo;->getRefreshRate()F HSPLandroid/view/DisplayInfo;->hasAccess(I)Z HSPLandroid/view/DisplayInfo;->isWideColorGamut()Z @@ -16905,11 +16195,9 @@ HSPLandroid/view/IRemoteAnimationRunner$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/view/ISystemGestureExclusionListener$Stub;-><init>()V HSPLandroid/view/IWindow$Stub;-><init>()V HSPLandroid/view/IWindow$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/IWindow$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLandroid/view/IWindow$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLandroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/view/IWindowManager$Stub$Proxy;->attachWindowContextToDisplayArea(Landroid/os/IBinder;IILandroid/os/Bundle;)Landroid/content/res/Configuration; -HSPLandroid/view/IWindowManager$Stub$Proxy;->detachWindowContextFromWindowContainer(Landroid/os/IBinder;)V HSPLandroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F HSPLandroid/view/IWindowManager$Stub$Proxy;->getWindowInsets(Landroid/view/WindowManager$LayoutParams;ILandroid/view/InsetsState;)Z HSPLandroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z @@ -16948,7 +16236,6 @@ HSPLandroid/view/ImeFocusController;->onTraversal(ZLandroid/view/WindowManager$L HSPLandroid/view/ImeFocusController;->onViewDetachedFromWindow(Landroid/view/View;)V HSPLandroid/view/ImeFocusController;->onViewFocusChanged(Landroid/view/View;Z)V HSPLandroid/view/ImeFocusController;->onWindowDismissed()V -HSPLandroid/view/ImeFocusController;->updateImeFocusable(Landroid/view/WindowManager$LayoutParams;Z)Z HSPLandroid/view/ImeInsetsSourceConsumer;-><init>(Landroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V HSPLandroid/view/ImeInsetsSourceConsumer;->getImm()Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/ImeInsetsSourceConsumer;->hide()V @@ -17035,7 +16322,6 @@ HSPLandroid/view/InsetsAnimationControlImpl;->notifyControlRevoked(I)V HSPLandroid/view/InsetsAnimationControlImpl;->releaseLeashes()V HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FF)V HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FFZ)V -HSPLandroid/view/InsetsAnimationControlImpl;->setReadyDispatched(Z)V HSPLandroid/view/InsetsAnimationControlImpl;->updateLeashesForSide(IIILjava/util/ArrayList;Landroid/view/InsetsState;F)V HSPLandroid/view/InsetsAnimationControlImpl;->updateSurfacePosition(Landroid/util/SparseArray;)V HSPLandroid/view/InsetsAnimationControlRunner;->controlsInternalType(I)Z @@ -17069,15 +16355,11 @@ HSPLandroid/view/InsetsAnimationThreadControlRunner;->lambda$new$0$android-view- HSPLandroid/view/InsetsAnimationThreadControlRunner;->notifyControlRevoked(I)V HSPLandroid/view/InsetsAnimationThreadControlRunner;->updateSurfacePosition(Landroid/util/SparseArray;)V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda10;-><init>(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda10;->run()V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda1;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda3;-><init>(Landroid/view/InsetsController;Landroid/view/InsetsAnimationControlRunner;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;Landroid/view/WindowInsetsAnimationControlListener;)V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda3;->run()V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda4;-><init>()V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda4;->get()Ljava/lang/Object; HSPLandroid/view/InsetsController$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda1;->getInterpolation(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda3;->getInterpolation(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda4;->getInterpolation(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;->initialValue()Landroid/animation/AnimationHandler; @@ -17090,7 +16372,6 @@ HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getInsetsIn HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$2(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$3(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$4(F)F -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getInsetsInterpolator$1$android-view-InsetsController$InternalAnimationControlListener(F)F HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$onReady$0$android-view-InsetsController$InternalAnimationControlListener(Landroid/view/animation/Interpolator;Landroid/view/WindowInsetsAnimationController;Landroid/graphics/Insets;Landroid/graphics/Insets;Landroid/view/animation/Interpolator;Landroid/animation/ValueAnimator;)V HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onAnimationFinish()V HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onCancelled(Landroid/view/WindowInsetsAnimationController;)V @@ -17104,7 +16385,6 @@ HSPLandroid/view/InsetsController;->abortPendingImeControlRequest()V HSPLandroid/view/InsetsController;->applyAnimation(IZZ)V HSPLandroid/view/InsetsController;->applyAnimation(IZZZ)V HSPLandroid/view/InsetsController;->applyLocalVisibilityOverride()V -HSPLandroid/view/InsetsController;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V HSPLandroid/view/InsetsController;->calculateControllableTypes()I HSPLandroid/view/InsetsController;->calculateInsets(ZZIIIII)Landroid/view/WindowInsets; HSPLandroid/view/InsetsController;->calculateVisibleInsets(IIII)Landroid/graphics/Insets; @@ -17128,8 +16408,6 @@ HSPLandroid/view/InsetsController;->hideDirectly(IZIZ)V HSPLandroid/view/InsetsController;->invokeControllableInsetsChangedListeners()I HSPLandroid/view/InsetsController;->isRequestedVisible(I)Z HSPLandroid/view/InsetsController;->lambda$new$2(Landroid/view/InsetsController;Ljava/lang/Integer;)Landroid/view/InsetsSourceConsumer; -HSPLandroid/view/InsetsController;->lambda$new$3$android-view-InsetsController()V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationControlImpl;,Landroid/view/InsetsResizeAnimationRunner;]Landroid/view/WindowInsets;Landroid/view/WindowInsets;]Landroid/view/InsetsController$Host;Landroid/view/ViewRootInsetsControllerHost;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/view/InternalInsetsAnimationController;Landroid/view/InsetsAnimationControlImpl;,Landroid/view/InsetsResizeAnimationRunner;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/InsetsController;->lambda$startAnimation$7$android-view-InsetsController(Landroid/view/InsetsAnimationControlRunner;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;Landroid/view/WindowInsetsAnimationControlListener;)V HSPLandroid/view/InsetsController;->lambda$static$1(FLandroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets; HSPLandroid/view/InsetsController;->notifyControlRevoked(Landroid/view/InsetsSourceConsumer;)V HSPLandroid/view/InsetsController;->notifyFinished(Landroid/view/InsetsAnimationControlRunner;Z)V @@ -17140,22 +16418,16 @@ HSPLandroid/view/InsetsController;->onRequestedVisibilityChanged(Landroid/view/I HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z HSPLandroid/view/InsetsController;->onWindowFocusGained(Z)V HSPLandroid/view/InsetsController;->onWindowFocusLost()V -HSPLandroid/view/InsetsController;->releaseSurfaceControlFromRt(Landroid/view/SurfaceControl;)V HSPLandroid/view/InsetsController;->reportPerceptible(IZ)V -HSPLandroid/view/InsetsController;->scheduleApplyChangeInsets(Landroid/view/InsetsAnimationControlRunner;)V+]Landroid/view/InsetsAnimationControlRunner;Landroid/view/InsetsAnimationControlImpl;]Landroid/view/InsetsController$Host;Landroid/view/ViewRootInsetsControllerHost;]Ljava/lang/Runnable;Landroid/view/InsetsController$$ExternalSyntheticLambda10; -HSPLandroid/view/InsetsController;->setSystemBarsAppearance(II)V HSPLandroid/view/InsetsController;->show(I)V HSPLandroid/view/InsetsController;->show(IZ)V HSPLandroid/view/InsetsController;->showDirectly(IZ)V -HSPLandroid/view/InsetsController;->startAnimation(Landroid/view/InsetsAnimationControlRunner;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)V HSPLandroid/view/InsetsController;->startResizingAnimationIfNeeded(Landroid/view/InsetsState;)V HSPLandroid/view/InsetsController;->updateCompatSysUiVisibility(IZZ)V HSPLandroid/view/InsetsController;->updateDisabledUserAnimationTypes(I)V HSPLandroid/view/InsetsController;->updateRequestedVisibilities()V HSPLandroid/view/InsetsController;->updateState(Landroid/view/InsetsState;)V HSPLandroid/view/InsetsFlags;-><init>()V -HSPLandroid/view/InsetsFrameProvider$1;-><init>()V -HSPLandroid/view/InsetsFrameProvider;-><clinit>()V HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSource; HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/InsetsSource;-><init>(I)V @@ -17383,7 +16655,6 @@ HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFII)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFIIII)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->obtain(JJIFFI)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->obtainNoHistory(Landroid/view/MotionEvent;)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->offsetLocation(FF)V HSPLandroid/view/MotionEvent;->recycle()V HSPLandroid/view/MotionEvent;->setAction(I)V @@ -17441,16 +16712,9 @@ HSPLandroid/view/RoundedCorners;-><clinit>()V HSPLandroid/view/RoundedCorners;-><init>(Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;)V HSPLandroid/view/RoundedCorners;-><init>([Landroid/view/RoundedCorner;)V HSPLandroid/view/RoundedCorners;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/RoundedCorners;->getRoundedCornerBottomRadius(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadius(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadiusAdjustment(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadiusBottomAdjustment(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadiusTopAdjustment(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerTopRadius(Landroid/content/res/Resources;Ljava/lang/String;)I HSPLandroid/view/RoundedCorners;->inset(IIII)Landroid/view/RoundedCorners; HSPLandroid/view/RoundedCorners;->insetRoundedCorner(IIIIIIII)Landroid/view/RoundedCorner; HSPLandroid/view/RoundedCorners;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener;-><init>()V HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;)V HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;Landroid/os/Handler;)V HSPLandroid/view/ScaleGestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z @@ -17480,7 +16744,6 @@ HSPLandroid/view/Surface;->updateNativeObject(J)V HSPLandroid/view/Surface;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl; HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/SurfaceControl$Builder;-><init>()V HSPLandroid/view/SurfaceControl$Builder;-><init>(Landroid/view/SurfaceSession;)V HSPLandroid/view/SurfaceControl$Builder;->build()Landroid/view/SurfaceControl; HSPLandroid/view/SurfaceControl$Builder;->setBLASTLayer()Landroid/view/SurfaceControl$Builder; @@ -17543,23 +16806,15 @@ HSPLandroid/view/SurfaceControl;->readFromParcel(Landroid/os/Parcel;)V HSPLandroid/view/SurfaceControl;->release()V HSPLandroid/view/SurfaceControl;->rotationToBufferTransform(I)I HSPLandroid/view/SurfaceControl;->setTransformHint(I)V -HSPLandroid/view/SurfaceControl;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLandroid/view/SurfaceSession;-><init>()V HSPLandroid/view/SurfaceSession;->finalize()V HSPLandroid/view/SurfaceSession;->kill()V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda0;-><init>(Landroid/view/SurfaceView;[Landroid/view/SurfaceHolder$Callback;Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda0;->onReadyToSync(Landroid/window/SurfaceSyncGroup$SyncBufferCallback;)V HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda1;-><init>(Landroid/view/SurfaceView;)V HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda1;->onScrollChanged()V HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda2;->onPreDraw()Z -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda3;-><init>(Landroid/view/SurfaceView;Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda3;->run()V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda7;-><init>(Landroid/view/SurfaceView;)V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda7;->run()V HSPLandroid/view/SurfaceView$1;-><init>(Landroid/view/SurfaceView;)V HSPLandroid/view/SurfaceView$1;->addCallback(Landroid/view/SurfaceHolder$Callback;)V HSPLandroid/view/SurfaceView$1;->getSurface()Landroid/view/Surface; -HSPLandroid/view/SurfaceView$1;->setFormat(I)V HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;-><init>(Landroid/view/SurfaceView;II)V HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionChanged(JIIII)V HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionLost(J)V @@ -17581,10 +16836,6 @@ HSPLandroid/view/SurfaceView;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/view/SurfaceView;->gatherTransparentRegion(Landroid/graphics/Region;)Z HSPLandroid/view/SurfaceView;->getHolder()Landroid/view/SurfaceHolder; HSPLandroid/view/SurfaceView;->getSurfaceCallbacks()[Landroid/view/SurfaceHolder$Callback; -HSPLandroid/view/SurfaceView;->handleSyncNoBuffer([Landroid/view/SurfaceHolder$Callback;)V -HSPLandroid/view/SurfaceView;->isAboveParent()Z -HSPLandroid/view/SurfaceView;->lambda$handleSyncNoBuffer$3$android-view-SurfaceView(Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/SurfaceView;->lambda$handleSyncNoBuffer$4$android-view-SurfaceView([Landroid/view/SurfaceHolder$Callback;Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup$SyncBufferCallback;)V HSPLandroid/view/SurfaceView;->lambda$new$0$android-view-SurfaceView()Z HSPLandroid/view/SurfaceView;->notifySurfaceDestroyed()V HSPLandroid/view/SurfaceView;->onAttachedToWindow()V @@ -17594,7 +16845,6 @@ HSPLandroid/view/SurfaceView;->onMeasure(II)V HSPLandroid/view/SurfaceView;->onSetSurfacePositionAndScale(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;IIFF)V HSPLandroid/view/SurfaceView;->onWindowVisibilityChanged(I)V HSPLandroid/view/SurfaceView;->performDrawFinished()V -HSPLandroid/view/SurfaceView;->redrawNeededAsync([Landroid/view/SurfaceHolder$Callback;Ljava/lang/Runnable;)V HSPLandroid/view/SurfaceView;->releaseSurfaces(Z)V HSPLandroid/view/SurfaceView;->replacePositionUpdateListener(II)V HSPLandroid/view/SurfaceView;->setFrame(IIII)Z @@ -17609,20 +16859,13 @@ 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/SyncRtSurfaceTransactionApplier$$ExternalSyntheticLambda0;-><init>(Landroid/view/SyncRtSurfaceTransactionApplier;Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier$$ExternalSyntheticLambda0;->onFrameDraw(J)V HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;-><init>(Landroid/view/SurfaceControl;)V HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->build()Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withAlpha(F)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withMatrix(Landroid/graphics/Matrix;)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withVisibility(Z)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;-><init>(Landroid/view/SurfaceControl;IFLandroid/graphics/Matrix;Landroid/graphics/Rect;IFIZLandroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;-><init>(Landroid/view/View;)V HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;[F)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;[Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyTransaction(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->lambda$scheduleApply$0$android-view-SyncRtSurfaceTransactionApplier(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->scheduleApply([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/SyncRtSurfaceTransactionApplier;Landroid/view/SyncRtSurfaceTransactionApplier; HSPLandroid/view/TextureView;-><init>(Landroid/content/Context;)V HSPLandroid/view/TextureView;->applyUpdate()V HSPLandroid/view/TextureView;->destroyHardwareLayer()V @@ -17684,7 +16927,6 @@ HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView; HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V -HSPLandroid/view/TouchDelegate;->onTouchEvent(Landroid/view/MotionEvent;)Z HSPLandroid/view/VelocityTracker;-><init>(I)V HSPLandroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V HSPLandroid/view/VelocityTracker;->clear()V @@ -17736,9 +16978,6 @@ HSPLandroid/view/View$5;->setValue(Ljava/lang/Object;F)V HSPLandroid/view/View$AccessibilityDelegate;-><init>()V HSPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider; HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V -PLandroid/view/View$AttachInfo$InvalidateInfo;-><init>()V -HPLandroid/view/View$AttachInfo$InvalidateInfo;->obtain()Landroid/view/View$AttachInfo$InvalidateInfo;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; -PLandroid/view/View$AttachInfo$InvalidateInfo;->recycle()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; @@ -17818,7 +17057,6 @@ HSPLandroid/view/View;->clearFocus()V HSPLandroid/view/View;->clearFocusInternal(Landroid/view/View;ZZ)V HSPLandroid/view/View;->clearParentsWantFocus()V HSPLandroid/view/View;->clearTranslationState()V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->clearViewTranslationCallback()V HSPLandroid/view/View;->clearViewTranslationResponse()V HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List; HSPLandroid/view/View;->collectUnrestrictedPreferKeepClearRects()Ljava/util/List; @@ -17870,9 +17108,6 @@ HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z HSPLandroid/view/View;->dispatchVisibilityChanged(Landroid/view/View;I)V HSPLandroid/view/View;->dispatchWindowFocusChanged(Z)V HSPLandroid/view/View;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/View;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/View;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds; HSPLandroid/view/View;->dispatchWindowSystemUiVisiblityChanged(I)V HSPLandroid/view/View;->dispatchWindowVisibilityChanged(I)V HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types @@ -17898,7 +17133,6 @@ HSPLandroid/view/View;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/vie HSPLandroid/view/View;->fitSystemWindows(Landroid/graphics/Rect;)Z HSPLandroid/view/View;->fitSystemWindowsInt(Landroid/graphics/Rect;)Z HSPLandroid/view/View;->focusSearch(I)Landroid/view/View; -HSPLandroid/view/View;->forceHasOverlappingRendering(Z)V HSPLandroid/view/View;->forceLayout()V HSPLandroid/view/View;->gatherTransparentRegion(Landroid/graphics/Region;)Z HSPLandroid/view/View;->generateViewId()I @@ -17921,7 +17155,6 @@ HSPLandroid/view/View;->getBottom()I HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;)V HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V HSPLandroid/view/View;->getClipBounds()Landroid/graphics/Rect; -HSPLandroid/view/View;->getClipBounds(Landroid/graphics/Rect;)Z HSPLandroid/view/View;->getClipToOutline()Z HSPLandroid/view/View;->getContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession; HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence; @@ -18004,7 +17237,6 @@ HSPLandroid/view/View;->getScaleY()F HSPLandroid/view/View;->getScrollX()I HSPLandroid/view/View;->getScrollY()I HSPLandroid/view/View;->getSolidColor()I -HSPLandroid/view/View;->getStateListAnimator()Landroid/animation/StateListAnimator; HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types HSPLandroid/view/View;->getSuggestedMinimumHeight()I HSPLandroid/view/View;->getSuggestedMinimumWidth()I @@ -18225,11 +17457,8 @@ HSPLandroid/view/View;->pointInView(FFF)Z HSPLandroid/view/View;->post(Ljava/lang/Runnable;)Z HSPLandroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z HSPLandroid/view/View;->postInvalidate()V -PLandroid/view/View;->postInvalidate(IIII)V HSPLandroid/view/View;->postInvalidateDelayed(J)V -PLandroid/view/View;->postInvalidateDelayed(JIIII)V HSPLandroid/view/View;->postInvalidateOnAnimation()V -HPLandroid/view/View;->postInvalidateOnAnimation(IIII)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 @@ -18267,7 +17496,6 @@ HSPLandroid/view/View;->resetResolvedTextAlignment()V HSPLandroid/view/View;->resetResolvedTextDirection()V HSPLandroid/view/View;->resetRtlProperties()V HSPLandroid/view/View;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/View;->resetSubtreeAutofillIds()V HSPLandroid/view/View;->resolveDrawables()V HSPLandroid/view/View;->resolveLayoutDirection()Z HSPLandroid/view/View;->resolveLayoutParams()V @@ -18313,7 +17541,6 @@ 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;->setDefaultFocusHighlight(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/View;->setDefaultFocusHighlightEnabled(Z)V HSPLandroid/view/View;->setDetached(Z)V HSPLandroid/view/View;->setDisplayListProperties(Landroid/graphics/RenderNode;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; @@ -18325,7 +17552,6 @@ HSPLandroid/view/View;->setFlags(II)V+]Landroid/view/View;megamorphic_types]Land HSPLandroid/view/View;->setFocusable(I)V HSPLandroid/view/View;->setFocusable(Z)V HSPLandroid/view/View;->setFocusableInTouchMode(Z)V -HSPLandroid/view/View;->setForceDarkAllowed(Z)V HSPLandroid/view/View;->setForeground(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/View;->setForegroundGravity(I)V HSPLandroid/view/View;->setFrame(IIII)Z+]Landroid/view/View;megamorphic_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; @@ -18411,7 +17637,6 @@ HSPLandroid/view/View;->setTranslationZ(F)V HSPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V HSPLandroid/view/View;->setVisibility(I)V HSPLandroid/view/View;->setWillNotDraw(Z)V -HSPLandroid/view/View;->setWindowInsetsAnimationCallback(Landroid/view/WindowInsetsAnimation$Callback;)V HSPLandroid/view/View;->setX(F)V HSPLandroid/view/View;->setY(F)V HSPLandroid/view/View;->shouldDrawRoundScrollbar()Z @@ -18423,8 +17648,6 @@ 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;->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;->transformMatrixToLocal(Landroid/graphics/Matrix;)V HSPLandroid/view/View;->unFocus(Landroid/view/View;)V HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V @@ -18578,9 +17801,6 @@ HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets;+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds;+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V HSPLandroid/view/ViewGroup;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z @@ -18652,10 +17872,8 @@ HSPLandroid/view/ViewGroup;->measureChildWithMargins(Landroid/view/View;IIII)V+] HSPLandroid/view/ViewGroup;->measureChildren(II)V HSPLandroid/view/ViewGroup;->newDispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V -HSPLandroid/view/ViewGroup;->offsetChildrenTopAndBottom(I)V+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/view/ViewGroup;missing_types 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;->offsetRectIntoDescendantCoords(Landroid/view/View;Landroid/graphics/Rect;)V HSPLandroid/view/ViewGroup;->onAttachedToWindow()V HSPLandroid/view/ViewGroup;->onChildVisibilityChanged(Landroid/view/View;II)V HSPLandroid/view/ViewGroup;->onCreateDrawableState(I)[I @@ -18696,7 +17914,6 @@ HSPLandroid/view/ViewGroup;->resetResolvedPadding()V HSPLandroid/view/ViewGroup;->resetResolvedTextAlignment()V HSPLandroid/view/ViewGroup;->resetResolvedTextDirection()V HSPLandroid/view/ViewGroup;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/ViewGroup;->resetSubtreeAutofillIds()V+]Landroid/view/View;missing_types HSPLandroid/view/ViewGroup;->resetTouchState()V HSPLandroid/view/ViewGroup;->resolveDrawables()V HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z @@ -18718,7 +17935,6 @@ HSPLandroid/view/ViewGroup;->setLayoutTransition(Landroid/animation/LayoutTransi HSPLandroid/view/ViewGroup;->setMotionEventSplittingEnabled(Z)V HSPLandroid/view/ViewGroup;->setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V HSPLandroid/view/ViewGroup;->setTouchscreenBlocksFocus(Z)V -HSPLandroid/view/ViewGroup;->setWindowInsetsAnimationCallback(Landroid/view/WindowInsetsAnimation$Callback;)V HSPLandroid/view/ViewGroup;->shouldBlockFocusForTouchscreen()Z HSPLandroid/view/ViewGroup;->shouldDelayChildPressedState()Z HSPLandroid/view/ViewGroup;->startViewTransition(Landroid/view/View;)V @@ -18739,7 +17955,6 @@ HSPLandroid/view/ViewOverlay$OverlayViewGroup;->dispatchDraw(Landroid/graphics/C HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(IIII)V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Landroid/graphics/Rect;)V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Z)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentIfNeeded()V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->isEmpty()Z HSPLandroid/view/ViewOverlay$OverlayViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V @@ -18847,7 +18062,6 @@ HSPLandroid/view/ViewRootImpl$InputStage;->shouldDropInputEvent(Landroid/view/Vi HSPLandroid/view/ViewRootImpl$InputStage;->traceEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;J)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>(Landroid/view/ViewRootImpl;)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V -HPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addViewRect(Landroid/view/View$AttachInfo$InvalidateInfo;)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V @@ -18884,7 +18098,6 @@ HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;-><init>(Landroid/view/ViewR HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->maybeUpdatePointerIcon(Landroid/view/MotionEvent;)V HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->performFocusNavigation(Landroid/view/KeyEvent;)Z HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/HandwritingInitiator;Landroid/view/HandwritingInitiator; HSPLandroid/view/ViewRootImpl$ViewPreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V @@ -18917,7 +18130,7 @@ HSPLandroid/view/ViewRootImpl;->-$$Nest$mdispatchResized(Landroid/view/ViewRootI HSPLandroid/view/ViewRootImpl;->-$$Nest$mprofileRendering(Landroid/view/ViewRootImpl;Z)V HSPLandroid/view/ViewRootImpl;->-$$Nest$mreadyToSync(Landroid/view/ViewRootImpl;Landroid/window/SurfaceSyncGroup$SyncBufferCallback;)V HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;)V -HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;Landroid/view/WindowLayout;)V+]Landroid/view/WindowLeaked;Landroid/view/WindowLeaked;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/media/AudioManager;Landroid/media/AudioManager;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;Landroid/view/WindowLayout;)V+]Landroid/view/WindowLeaked;Landroid/view/WindowLeaked;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/media/AudioManager;Landroid/media/AudioManager;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/content/Context;missing_types HSPLandroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V HSPLandroid/view/ViewRootImpl;->addFrameCommitCallbackIfNeeded()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; HSPLandroid/view/ViewRootImpl;->addSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V @@ -18950,8 +18163,6 @@ HSPLandroid/view/ViewRootImpl;->dispatchDispatchSystemUiVisibilityChanged(Landro 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 -PLandroid/view/ViewRootImpl;->dispatchInvalidateRectDelayed(Landroid/view/View$AttachInfo$InvalidateInfo;J)V -PLandroid/view/ViewRootImpl;->dispatchInvalidateRectOnAnimation(Landroid/view/View$AttachInfo$InvalidateInfo;)V HSPLandroid/view/ViewRootImpl;->dispatchMoved(II)V HSPLandroid/view/ViewRootImpl;->dispatchResized(Landroid/window/ClientWindowFrames;ZLandroid/util/MergedConfiguration;Landroid/view/InsetsState;ZZIII)V HSPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)Z @@ -19050,7 +18261,7 @@ HSPLandroid/view/ViewRootImpl;->onPreDraw(Landroid/graphics/RecordingCanvas;)V HSPLandroid/view/ViewRootImpl;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z HSPLandroid/view/ViewRootImpl;->performConfigurationChange(Landroid/util/MergedConfiguration;ZI)V HSPLandroid/view/ViewRootImpl;->performContentCaptureInitialReport()V -HSPLandroid/view/ViewRootImpl;->performDraw()Z+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup$1;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;->performDraw()Z+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/window/SurfaceSyncGroup$SyncBufferCallback;Landroid/window/SurfaceSyncGroup$1; HSPLandroid/view/ViewRootImpl;->performHapticFeedback(IZ)Z HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V HSPLandroid/view/ViewRootImpl;->performMeasure(II)V @@ -19099,7 +18310,6 @@ HSPLandroid/view/ViewRootImpl;->setWindowStopped(Z)V HSPLandroid/view/ViewRootImpl;->shouldDispatchCutout()Z HSPLandroid/view/ViewRootImpl;->shouldUseDisplaySize(Landroid/view/WindowManager$LayoutParams;)Z HSPLandroid/view/ViewRootImpl;->systemGestureExclusionChanged()V -HSPLandroid/view/ViewRootImpl;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; HSPLandroid/view/ViewRootImpl;->unscheduleConsumeBatchedInput()V HSPLandroid/view/ViewRootImpl;->unscheduleTraversals()V HSPLandroid/view/ViewRootImpl;->updateBlastSurfaceIfNeeded()V @@ -19117,19 +18327,9 @@ HSPLandroid/view/ViewRootImpl;->updateOpacity(Landroid/view/WindowManager$Layout HSPLandroid/view/ViewRootImpl;->updateSystemGestureExclusionRectsForView(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl;->useBLAST()Z HSPLandroid/view/ViewRootImpl;->windowFocusChanged(Z)V -HSPLandroid/view/ViewRootInsetsControllerHost$$ExternalSyntheticLambda0;-><init>(Landroid/view/SurfaceControl;)V -HSPLandroid/view/ViewRootInsetsControllerHost$$ExternalSyntheticLambda0;->onFrameDraw(J)V -HSPLandroid/view/ViewRootInsetsControllerHost$1;-><init>(Landroid/view/ViewRootInsetsControllerHost;Ljava/lang/Runnable;)V -HSPLandroid/view/ViewRootInsetsControllerHost$1;->onPreDraw()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->-$$Nest$fgetmViewRoot(Landroid/view/ViewRootInsetsControllerHost;)Landroid/view/ViewRootImpl; HSPLandroid/view/ViewRootInsetsControllerHost;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->addOnPreDrawRunnable(Ljava/lang/Runnable;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/SyncRtSurfaceTransactionApplier;Landroid/view/SyncRtSurfaceTransactionApplier; HSPLandroid/view/ViewRootInsetsControllerHost;->dipToPx(I)I HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets;+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds; HSPLandroid/view/ViewRootInsetsControllerHost;->getHandler()Landroid/os/Handler; HSPLandroid/view/ViewRootInsetsControllerHost;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; HSPLandroid/view/ViewRootInsetsControllerHost;->getSystemBarsAppearance()I @@ -19138,12 +18338,7 @@ HSPLandroid/view/ViewRootInsetsControllerHost;->getTranslator()Landroid/content/ HSPLandroid/view/ViewRootInsetsControllerHost;->getWindowToken()Landroid/os/IBinder; HSPLandroid/view/ViewRootInsetsControllerHost;->hasAnimationCallbacks()Z HSPLandroid/view/ViewRootInsetsControllerHost;->isSystemBarsAppearanceControlled()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->isVisibleToUser()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->lambda$releaseSurfaceControlFromRt$0(Landroid/view/SurfaceControl;J)V HSPLandroid/view/ViewRootInsetsControllerHost;->notifyInsetsChanged()V -HSPLandroid/view/ViewRootInsetsControllerHost;->postInsetsAnimationCallback(Ljava/lang/Runnable;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->releaseSurfaceControlFromRt(Landroid/view/SurfaceControl;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->setSystemBarsAppearance(II)V HSPLandroid/view/ViewRootInsetsControllerHost;->updateCompatSysUiVisibility(IZZ)V HSPLandroid/view/ViewRootInsetsControllerHost;->updateRequestedVisibilities(Landroid/view/InsetsVisibilities;)V HSPLandroid/view/ViewRootRectTracker$ViewInfo;-><init>(Landroid/view/ViewRootRectTracker;Landroid/view/View;)V @@ -19262,20 +18457,16 @@ HSPLandroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/v HSPLandroid/view/WindowInsets$Builder;-><init>()V HSPLandroid/view/WindowInsets$Builder;-><init>(Landroid/view/WindowInsets;)V HSPLandroid/view/WindowInsets$Builder;->build()Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets$Builder;->setInsets(ILandroid/graphics/Insets;)Landroid/view/WindowInsets$Builder; HSPLandroid/view/WindowInsets$Builder;->setSystemWindowInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder; HSPLandroid/view/WindowInsets$Side;->all()I HSPLandroid/view/WindowInsets$Type;->all()I HSPLandroid/view/WindowInsets$Type;->displayCutout()I HSPLandroid/view/WindowInsets$Type;->ime()I HSPLandroid/view/WindowInsets$Type;->indexOf(I)I -HSPLandroid/view/WindowInsets$Type;->mandatorySystemGestures()I HSPLandroid/view/WindowInsets$Type;->navigationBars()I HSPLandroid/view/WindowInsets$Type;->statusBars()I HSPLandroid/view/WindowInsets$Type;->systemBars()I -HSPLandroid/view/WindowInsets$Type;->systemGestures()I HSPLandroid/view/WindowInsets$Type;->toString(I)Ljava/lang/String; -HSPLandroid/view/WindowInsets;->-$$Nest$smsetInsets([Landroid/graphics/Insets;ILandroid/graphics/Insets;)V HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZZLandroid/view/DisplayCutout;Landroid/view/RoundedCorners;Landroid/view/PrivacyIndicatorBounds;IZ)V HSPLandroid/view/WindowInsets;->assignCompatInsets([Landroid/graphics/Insets;Landroid/graphics/Rect;)V HSPLandroid/view/WindowInsets;->consumeDisplayCutout()Landroid/view/WindowInsets; @@ -19307,19 +18498,16 @@ HSPLandroid/view/WindowInsets;->insetInsets([Landroid/graphics/Insets;IIII)[Land HSPLandroid/view/WindowInsets;->insetUnchecked(IIII)Landroid/view/WindowInsets; HSPLandroid/view/WindowInsets;->isConsumed()Z HSPLandroid/view/WindowInsets;->isRound()Z -HSPLandroid/view/WindowInsets;->isVisible(I)Z HSPLandroid/view/WindowInsets;->replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->setInsets([Landroid/graphics/Insets;ILandroid/graphics/Insets;)V HSPLandroid/view/WindowInsets;->shouldAlwaysConsumeSystemBars()Z HSPLandroid/view/WindowInsetsAnimation$Bounds;-><init>(Landroid/graphics/Insets;Landroid/graphics/Insets;)V HSPLandroid/view/WindowInsetsAnimation$Callback;-><init>(I)V -HSPLandroid/view/WindowInsetsAnimation$Callback;->getDispatchMode()I HSPLandroid/view/WindowInsetsAnimation;-><init>(ILandroid/view/animation/Interpolator;J)V HSPLandroid/view/WindowInsetsAnimation;->getTypeMask()I HSPLandroid/view/WindowInsetsAnimation;->setAlpha(F)V HSPLandroid/view/WindowLayout;-><clinit>()V HSPLandroid/view/WindowLayout;-><init>()V -HSPLandroid/view/WindowLayout;->computeFrames(Landroid/view/WindowManager$LayoutParams;Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/graphics/Rect;IIILandroid/view/InsetsVisibilities;FLandroid/window/ClientWindowFrames;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout; +HSPLandroid/view/WindowLayout;->computeFrames(Landroid/view/WindowManager$LayoutParams;Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/graphics/Rect;IIILandroid/view/InsetsVisibilities;FLandroid/window/ClientWindowFrames;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;]Landroid/graphics/Rect;Landroid/graphics/Rect; HSPLandroid/view/WindowLayout;->computeSurfaceSize(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;IILandroid/graphics/Rect;ZLandroid/graphics/Point;)V HSPLandroid/view/WindowLeaked;-><init>(Ljava/lang/String;)V HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/WindowManager$LayoutParams; @@ -19328,7 +18516,6 @@ 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;->forRotation(I)Landroid/view/WindowManager$LayoutParams; HSPLandroid/view/WindowManager$LayoutParams;->getColorMode()I HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsSides()I HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsTypes()I @@ -19383,7 +18570,6 @@ HSPLandroid/view/WindowManagerImpl;->removeViewImmediate(Landroid/view/View;)V HSPLandroid/view/WindowManagerImpl;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V HSPLandroid/view/WindowMetrics;-><init>(Landroid/graphics/Rect;Landroid/view/WindowInsets;)V HSPLandroid/view/WindowMetrics;->getBounds()Landroid/graphics/Rect; -HSPLandroid/view/WindowMetrics;->getWindowInsets()Landroid/view/WindowInsets; HSPLandroid/view/accessibility/AccessibilityManager$1;-><init>(Landroid/view/accessibility/AccessibilityManager;)V HSPLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChanged(J)V HSPLandroid/view/accessibility/AccessibilityManager$1;->setFocusAppearance(II)V @@ -19631,8 +18817,6 @@ HSPLandroid/view/autofill/AutofillId;->resetSessionId()V HSPLandroid/view/autofill/AutofillId;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId; HSPLandroid/view/autofill/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;I)V -PLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/autofill/AutofillManager$$ExternalSyntheticLambda2;->run()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; @@ -19655,8 +18839,6 @@ HSPLandroid/view/autofill/AutofillManager;->hasFillDialogUiFeature()Z HSPLandroid/view/autofill/AutofillManager;->isActiveLocked()Z HSPLandroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z HSPLandroid/view/autofill/AutofillManager;->isEnabled()Z -HSPLandroid/view/autofill/AutofillManager;->lambda$onVisibleForAutofill$2$android-view-autofill-AutofillManager()V -PLandroid/view/autofill/AutofillManager;->lambda$tryAddServiceClientIfNeededLocked$3(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;I)V HSPLandroid/view/autofill/AutofillManager;->notifyValueChanged(Landroid/view/View;)V HSPLandroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;I)V HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofill(Landroid/view/View;)V @@ -19676,7 +18858,6 @@ HSPLandroid/view/autofill/AutofillManager;->resetSessionLocked(Z)V HSPLandroid/view/autofill/AutofillManager;->setSessionFinished(ILjava/util/List;)V HSPLandroid/view/autofill/AutofillManager;->setState(I)V HSPLandroid/view/autofill/AutofillManager;->shouldIgnoreViewEnteredLocked(Landroid/view/autofill/AutofillId;I)Z -HSPLandroid/view/autofill/AutofillManager;->shouldShowAutofillDialog(Landroid/view/View;Landroid/view/autofill/AutofillId;)Z HSPLandroid/view/autofill/AutofillManager;->startAutofillIfNeededLocked(Landroid/view/View;)Z HSPLandroid/view/autofill/AutofillManager;->startSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;I)V HSPLandroid/view/autofill/AutofillManager;->tryAddServiceClientIfNeededLocked()Z @@ -19701,15 +18882,6 @@ HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateSession(ILandroid/ HSPLandroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager; HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asBinder()Landroid/os/IBinder; HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->-$$Nest$fgetmExtras(Landroid/view/contentcapture/ContentCaptureContext$Builder;)Landroid/os/Bundle; -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->-$$Nest$fgetmId(Landroid/view/contentcapture/ContentCaptureContext$Builder;)Landroid/content/LocusId; -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;-><init>(Landroid/content/LocusId;)V -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->setExtras(Landroid/os/Bundle;)Landroid/view/contentcapture/ContentCaptureContext$Builder; -HSPLandroid/view/contentcapture/ContentCaptureContext$Builder;->throwIfDestroyed()V -HSPLandroid/view/contentcapture/ContentCaptureContext;-><init>(Landroid/view/contentcapture/ContentCaptureContext$Builder;)V -HSPLandroid/view/contentcapture/ContentCaptureContext;-><init>(Landroid/view/contentcapture/ContentCaptureContext$Builder;Landroid/view/contentcapture/ContentCaptureContext-IA;)V -HSPLandroid/view/contentcapture/ContentCaptureContext;->fromServer()Z -HSPLandroid/view/contentcapture/ContentCaptureContext;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(II)V HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(IIJ)V HSPLandroid/view/contentcapture/ContentCaptureEvent;->addAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent; @@ -19721,7 +18893,6 @@ HSPLandroid/view/contentcapture/ContentCaptureEvent;->getType()I HSPLandroid/view/contentcapture/ContentCaptureEvent;->mergeEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V HSPLandroid/view/contentcapture/ContentCaptureEvent;->setAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setBounds(Landroid/graphics/Rect;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setClientContext(Landroid/view/contentcapture/ContentCaptureContext;)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setComposingIndex(II)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setInsets(Landroid/graphics/Insets;)Landroid/view/contentcapture/ContentCaptureEvent; HSPLandroid/view/contentcapture/ContentCaptureEvent;->setSelectionIndex(II)Landroid/view/contentcapture/ContentCaptureEvent; @@ -19747,7 +18918,6 @@ HSPLandroid/view/contentcapture/ContentCaptureSession;->isContentCaptureEnabled( HSPLandroid/view/contentcapture/ContentCaptureSession;->newViewStructure(Landroid/view/View;)Landroid/view/ViewStructure; HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewAppeared(Landroid/view/ViewStructure;)V HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V -HSPLandroid/view/contentcapture/DataShareRequest;->getPackageName()Ljava/lang/String; HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->sendEvents(Landroid/content/pm/ParceledListSlice;ILandroid/content/ContentCaptureOptions;)V @@ -19845,8 +19015,6 @@ HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextIdEntry(Ljav HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextLines([I[I)V HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextStyle(FIII)V HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setVisibility(I)V -HSPLandroid/view/contentcapture/ViewNode;->-$$Nest$fgetmFlags(Landroid/view/contentcapture/ViewNode;)J -HSPLandroid/view/contentcapture/ViewNode;->-$$Nest$fputmFlags(Landroid/view/contentcapture/ViewNode;J)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 @@ -19864,7 +19032,6 @@ HSPLandroid/view/inputmethod/BaseInputConnection;->finishComposingText()Z HSPLandroid/view/inputmethod/BaseInputConnection;->getEditable()Landroid/text/Editable; HSPLandroid/view/inputmethod/BaseInputConnection;->getHandler()Landroid/os/Handler; HSPLandroid/view/inputmethod/BaseInputConnection;->getSelectedText(I)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/BaseInputConnection;->getSurroundingText(III)Landroid/view/inputmethod/SurroundingText; HSPLandroid/view/inputmethod/BaseInputConnection;->getTextAfterCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/BaseInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/BaseInputConnection;->removeComposingSpans(Landroid/text/Spannable;)V @@ -19875,21 +19042,13 @@ HSPLandroid/view/inputmethod/BaseInputConnection;->sendKeyEvent(Landroid/view/Ke HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingRegion(II)Z HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingSpans(Landroid/text/Spannable;II)V HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingText(Ljava/lang/CharSequence;I)Z -PLandroid/view/inputmethod/CorrectionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/CorrectionInfo; -PLandroid/view/inputmethod/CorrectionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -PLandroid/view/inputmethod/CorrectionInfo;-><init>(Landroid/os/Parcel;)V -PLandroid/view/inputmethod/CorrectionInfo;-><init>(Landroid/os/Parcel;Landroid/view/inputmethod/CorrectionInfo-IA;)V -HSPLandroid/view/inputmethod/CorrectionInfo;->getNewText()Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/CorrectionInfo;->getOffset()I HSPLandroid/view/inputmethod/CursorAnchorInfo$Builder;-><init>()V HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/EditorInfo; HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/inputmethod/EditorInfo;-><init>()V HSPLandroid/view/inputmethod/EditorInfo;->createCopyInternal()Landroid/view/inputmethod/EditorInfo; -HSPLandroid/view/inputmethod/EditorInfo;->kindofEquals(Landroid/view/inputmethod/EditorInfo;)Z HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingSubText(Ljava/lang/CharSequence;I)V HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingText(Ljava/lang/CharSequence;)V -HSPLandroid/view/inputmethod/EditorInfo;->setSupportedHandwritingGestures(Ljava/util/List;)V HSPLandroid/view/inputmethod/EditorInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/inputmethod/ExtractedTextRequest;-><init>()V HSPLandroid/view/inputmethod/IInputMethodManagerInvoker;-><init>(Lcom/android/internal/view/IInputMethodManager;)V @@ -19907,14 +19066,11 @@ HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInput()V HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInputInternal()V HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelection(IIIIII)V HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelectionInternal(IIIIII)V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->viewClicked(Z)V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->viewClickedInternal(Z)V HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InlineSuggestionsRequest; HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/inputmethod/InlineSuggestionsRequest;-><init>(Landroid/os/Parcel;)V HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->onConstructed()V HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/inputmethod/InputConnection;->takeSnapshot()Landroid/view/inputmethod/TextSnapshot; HSPLandroid/view/inputmethod/InputConnectionWrapper;-><init>(Landroid/view/inputmethod/InputConnection;Z)V HSPLandroid/view/inputmethod/InputConnectionWrapper;->beginBatchEdit()Z HSPLandroid/view/inputmethod/InputConnectionWrapper;->closeConnection()V @@ -19924,7 +19080,6 @@ HSPLandroid/view/inputmethod/InputConnectionWrapper;->endBatchEdit()Z HSPLandroid/view/inputmethod/InputConnectionWrapper;->finishComposingText()Z HSPLandroid/view/inputmethod/InputConnectionWrapper;->getHandler()Landroid/os/Handler; HSPLandroid/view/inputmethod/InputConnectionWrapper;->getSelectedText(I)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/InputConnectionWrapper;->getSurroundingText(III)Landroid/view/inputmethod/SurroundingText; HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextAfterCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextBeforeCursor(II)Ljava/lang/CharSequence; HSPLandroid/view/inputmethod/InputConnectionWrapper;->reportFullscreenMode(Z)Z @@ -19943,19 +19098,12 @@ HSPLandroid/view/inputmethod/InputMethodManager$2;-><init>(Landroid/view/inputme HSPLandroid/view/inputmethod/InputMethodManager$2;->onBindMethod(Lcom/android/internal/inputmethod/InputBindResult;)V HSPLandroid/view/inputmethod/InputMethodManager$2;->onUnbindMethod(II)V HSPLandroid/view/inputmethod/InputMethodManager$2;->reportFullscreenMode(Z)V -HSPLandroid/view/inputmethod/InputMethodManager$2;->scheduleStartInputIfNecessary(Z)V HSPLandroid/view/inputmethod/InputMethodManager$2;->setActive(ZZZ)V HSPLandroid/view/inputmethod/InputMethodManager$BindState;-><init>(Lcom/android/internal/inputmethod/InputBindResult;)V HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl$$ExternalSyntheticLambda0;-><init>()V HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->closeCurrentIme()V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishComposingText()V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishInput()V HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishInputAndReportToIme()V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->hasActiveConnection(Landroid/view/View;)Z HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->isCurrentRootView(Landroid/view/ViewRootImpl;)Z -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->setCurrentRootView(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->startInput(ILandroid/view/View;III)Z HSPLandroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0;-><init>(Landroid/view/ImeFocusController;Z)V HSPLandroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0;->run()V HSPLandroid/view/inputmethod/InputMethodManager$H;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/os/Looper;)V @@ -19963,7 +19111,6 @@ HSPLandroid/view/inputmethod/InputMethodManager$H;->handleMessage(Landroid/os/Me HSPLandroid/view/inputmethod/InputMethodManager$H;->lambda$handleMessage$0(Landroid/view/ImeFocusController;Z)V HSPLandroid/view/inputmethod/InputMethodManager$ImeInputEventSender;->onInputEventFinished(IZ)V HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;->run()V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmDelegate(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/inputmethod/InputMethodManager$DelegateImpl; HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmFullscreenMode(Landroid/view/inputmethod/InputMethodManager;)Z HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmImeInsetsConsumer(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/ImeInsetsSourceConsumer; HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmRestartOnNextWindowFocus(Landroid/view/inputmethod/InputMethodManager;)Z @@ -20087,14 +19234,12 @@ HSPLandroid/view/textclassifier/TextClassificationContext;->getPackageName()Ljav HSPLandroid/view/textclassifier/TextClassificationContext;->getWidgetType()Ljava/lang/String; HSPLandroid/view/textclassifier/TextClassificationContext;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V HSPLandroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V -PLandroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V HSPLandroid/view/textclassifier/TextClassificationManager;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants; HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants; HSPLandroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier(I)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier()Landroid/view/textclassifier/TextClassifier; -PLandroid/view/textclassifier/TextClassificationManager;->lambda$new$0$android-view-textclassifier-TextClassificationManager(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier; HSPLandroid/view/textclassifier/TextClassificationSession;-><init>(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassifier;)V HSPLandroid/view/textclassifier/TextClassificationSession;->checkDestroyedAndRun(Ljava/util/function/Supplier;)Ljava/lang/Object; HSPLandroid/view/textclassifier/TextClassificationSession;->isDestroyed()Z @@ -20111,22 +19256,10 @@ HSPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel; HSPLandroid/view/textclassifier/TextClassifierEvent;->getEventContext()Landroid/view/textclassifier/TextClassificationContext; HSPLandroid/view/textclassifier/TextClassifierEvent;->getParcelToken()I HSPLandroid/view/textclassifier/TextClassifierEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextLinks$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks; -HSPLandroid/view/textclassifier/TextLinks$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextLinks$Request$Builder;-><init>(Ljava/lang/CharSequence;)V -HSPLandroid/view/textclassifier/TextLinks$Request$Builder;->build()Landroid/view/textclassifier/TextLinks$Request; HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/time/ZonedDateTime;Landroid/os/Bundle;)V -HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/time/ZonedDateTime;Landroid/os/Bundle;Landroid/view/textclassifier/TextLinks$Request-IA;)V HSPLandroid/view/textclassifier/TextLinks$Request;->getText()Ljava/lang/CharSequence; HSPLandroid/view/textclassifier/TextLinks$Request;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V HSPLandroid/view/textclassifier/TextLinks$Request;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextLinks$TextLink$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$TextLink; -HSPLandroid/view/textclassifier/TextLinks$TextLink$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextLinks$TextLink;->-$$Nest$smreadFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$TextLink; -HSPLandroid/view/textclassifier/TextLinks$TextLink;-><init>(IILandroid/view/textclassifier/EntityConfidence;Landroid/os/Bundle;Landroid/text/style/URLSpan;)V+]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;]Landroid/view/textclassifier/EntityConfidence;Landroid/view/textclassifier/EntityConfidence; -HSPLandroid/view/textclassifier/TextLinks$TextLink;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$TextLink; -HSPLandroid/view/textclassifier/TextLinks;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/TextLinks;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextLinks-IA;)V HSPLandroid/view/textclassifier/TextLinks;->getLinks()Ljava/util/Collection; HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SentenceSuggestionsInfo; HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -20139,29 +19272,17 @@ HSPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/os/Parcel;)V HSPLandroid/view/textservice/SpellCheckerInfo;->getId()Ljava/lang/String; HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype; HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeCount()I -HSPLandroid/view/textservice/SpellCheckerSession$$ExternalSyntheticLambda0;-><init>(Landroid/view/textservice/SpellCheckerSession;[Landroid/view/textservice/SentenceSuggestionsInfo;)V -HSPLandroid/view/textservice/SpellCheckerSession$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;-><init>(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;)V HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;-><init>(Landroid/view/textservice/SpellCheckerSession;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->getSpellCheckerSession()Landroid/view/textservice/SpellCheckerSession; HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processCloseLocked()V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processOrEnqueueTask(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;)V HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processTask(Lcom/android/internal/textservice/ISpellCheckerSession;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;Z)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->getExtras()Landroid/os/Bundle; -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->getLocale()Ljava/util/Locale; -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->getSupportedAttributes()I -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;->shouldReferToSpellCheckerLanguageSettings()Z -HSPLandroid/view/textservice/SpellCheckerSession;-><init>(Landroid/view/textservice/SpellCheckerInfo;Landroid/view/textservice/TextServicesManager;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Ljava/util/concurrent/Executor;)V HSPLandroid/view/textservice/SpellCheckerSession;->close()V HSPLandroid/view/textservice/SpellCheckerSession;->finalize()V HSPLandroid/view/textservice/SpellCheckerSession;->getSentenceSuggestions([Landroid/view/textservice/TextInfo;I)V HSPLandroid/view/textservice/SpellCheckerSession;->getSpellCheckerSessionListener()Lcom/android/internal/textservice/ISpellCheckerSessionListener; HSPLandroid/view/textservice/SpellCheckerSession;->getTextServicesSessionListener()Lcom/android/internal/textservice/ITextServicesSessionListener; -HSPLandroid/view/textservice/SpellCheckerSession;->handleOnGetSentenceSuggestionsMultiple([Landroid/view/textservice/SentenceSuggestionsInfo;)V -HSPLandroid/view/textservice/SpellCheckerSession;->lambda$handleOnGetSentenceSuggestionsMultiple$1$android-view-textservice-SpellCheckerSession([Landroid/view/textservice/SentenceSuggestionsInfo;)V HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerSubtype; HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V @@ -20175,7 +19296,6 @@ HSPLandroid/view/textservice/TextServicesManager;->finishSpellCheckerService(Lco HSPLandroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype; HSPLandroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z HSPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession; -HSPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;Ljava/util/concurrent/Executor;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;)Landroid/view/textservice/SpellCheckerSession; HSPLandroid/view/textservice/TextServicesManager;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/webkit/ConsoleMessage;->message()Ljava/lang/String; HSPLandroid/webkit/CookieManager;-><init>()V @@ -20231,7 +19351,6 @@ HSPLandroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings; HSPLandroid/webkit/WebView;->loadDataWithBaseURL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V HSPLandroid/webkit/WebView;->onAttachedToWindow()V -HSPLandroid/webkit/WebView;->onCheckIsTextEditor()Z HSPLandroid/webkit/WebView;->onDetachedFromWindowInternal()V HSPLandroid/webkit/WebView;->onDraw(Landroid/graphics/Canvas;)V HSPLandroid/webkit/WebView;->onMeasure(II)V @@ -20282,10 +19401,8 @@ HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parc HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/widget/AbsListView$3;->run()V HSPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V -PLandroid/widget/AbsListView$CheckForTap;->run()V HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>()V HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>(Landroid/widget/AbsListView$DeviceConfigChangeListener-IA;)V -PLandroid/widget/AbsListView$DeviceConfigChangeListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V HSPLandroid/widget/AbsListView$PerformClick;->run()V HSPLandroid/widget/AbsListView$RecycleBin;->addScrapView(Landroid/view/View;I)V HSPLandroid/widget/AbsListView$RecycleBin;->clear()V @@ -20312,7 +19429,6 @@ HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I+]Landroid/view/V HSPLandroid/widget/AbsListView;->computeVerticalScrollRange()I HSPLandroid/widget/AbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/widget/AbsListView;->dispatchSetPressed(Z)V -HSPLandroid/widget/AbsListView;->doesTouchStopStretch()Z HSPLandroid/widget/AbsListView;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect;]Landroid/widget/AbsListView;Landroid/widget/ExpandableListView;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; HSPLandroid/widget/AbsListView;->drawableStateChanged()V HSPLandroid/widget/AbsListView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; @@ -20350,11 +19466,9 @@ HSPLandroid/widget/AbsListView;->performItemClick(Landroid/view/View;IJ)Z HSPLandroid/widget/AbsListView;->pointToPosition(II)I HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;)V HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;ZFF)V -HSPLandroid/widget/AbsListView;->releaseGlow(II)I+]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect; HSPLandroid/widget/AbsListView;->reportScrollStateChange(I)V HSPLandroid/widget/AbsListView;->requestLayout()V HSPLandroid/widget/AbsListView;->resetList()V -HSPLandroid/widget/AbsListView;->scrollIfNeeded(IILandroid/view/MotionEvent;)V+]Landroid/view/VelocityTracker;Landroid/view/VelocityTracker;]Landroid/widget/EdgeEffect;Landroid/widget/EdgeEffect;]Landroid/view/View;missing_types]Landroid/widget/AbsListView;missing_types]Landroid/view/ViewParent;Landroid/widget/FrameLayout;,Landroid/widget/LinearLayout; HSPLandroid/widget/AbsListView;->setChoiceMode(I)V HSPLandroid/widget/AbsListView;->setFastScrollAlwaysVisible(Z)V HSPLandroid/widget/AbsListView;->setFastScrollEnabled(Z)V @@ -20374,7 +19488,6 @@ HSPLandroid/widget/AbsListView;->setupDeviceConfigProperties()V HSPLandroid/widget/AbsListView;->shouldShowSelector()Z HSPLandroid/widget/AbsListView;->startScrollIfNeeded(IILandroid/view/MotionEvent;)Z HSPLandroid/widget/AbsListView;->touchModeDrawsInPressedState()Z -HSPLandroid/widget/AbsListView;->trackMotionScroll(II)Z+]Landroid/view/View;missing_types]Landroid/widget/AbsListView$RecycleBin;Landroid/widget/AbsListView$RecycleBin;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/widget/AbsListView;missing_types HSPLandroid/widget/AbsListView;->updateScrollIndicators()V HSPLandroid/widget/AbsListView;->updateSelectorState()V HSPLandroid/widget/AbsListView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z @@ -20488,7 +19601,6 @@ HSPLandroid/widget/CompoundButton;->setButtonDrawable(Landroid/graphics/drawable HSPLandroid/widget/CompoundButton;->setChecked(Z)V HSPLandroid/widget/CompoundButton;->setDefaultStateDescription()V HSPLandroid/widget/CompoundButton;->setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V -HSPLandroid/widget/CompoundButton;->setStateDescription(Ljava/lang/CharSequence;)V HSPLandroid/widget/CompoundButton;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;)V HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V @@ -20527,15 +19639,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 -PLandroid/widget/Editor$CorrectionHighlighter;-><init>(Landroid/widget/Editor;)V -HPLandroid/widget/Editor$CorrectionHighlighter;->draw(Landroid/graphics/Canvas;I)V+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -PLandroid/widget/Editor$CorrectionHighlighter;->highlight(Landroid/view/inputmethod/CorrectionInfo;)V -HPLandroid/widget/Editor$CorrectionHighlighter;->invalidate(Z)V+]Landroid/graphics/Path;Landroid/graphics/Path; -PLandroid/widget/Editor$CorrectionHighlighter;->stopAnimation()V -HPLandroid/widget/Editor$CorrectionHighlighter;->updatePaint()Z+]Landroid/graphics/Paint;Landroid/graphics/Paint; -HPLandroid/widget/Editor$CorrectionHighlighter;->updatePath()Z+]Landroid/graphics/Path;Landroid/graphics/Path;]Landroid/text/Layout;Landroid/text/DynamicLayout;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder; HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V -PLandroid/widget/Editor$EditOperation;->-$$Nest$fputmFrozen(Landroid/widget/Editor$EditOperation;Z)V 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 @@ -20545,10 +19649,7 @@ HSPLandroid/widget/Editor$EditOperation;->mergeReplaceWith(Landroid/widget/Edito HSPLandroid/widget/Editor$EditOperation;->mergeWith(Landroid/widget/Editor$EditOperation;)Z HSPLandroid/widget/Editor$EditOperation;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/widget/Editor$HandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)V -HPLandroid/widget/Editor$HandleView;->dismissMagnifier()V HSPLandroid/widget/Editor$HandleView;->getHorizontal(Landroid/text/Layout;I)F -HPLandroid/widget/Editor$HandleView;->getHorizontalOffset()I -HPLandroid/widget/Editor$HandleView;->getPreferredWidth()I HSPLandroid/widget/Editor$HandleView;->hide()V HSPLandroid/widget/Editor$HandleView;->invalidate()V HSPLandroid/widget/Editor$HandleView;->isAtRtlRun(Landroid/text/Layout;I)Z @@ -20607,17 +19708,11 @@ HSPLandroid/widget/Editor$UndoInputFilter;->beginBatchEdit()V HSPLandroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z HSPLandroid/widget/Editor$UndoInputFilter;->endBatchEdit()V HSPLandroid/widget/Editor$UndoInputFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; -PLandroid/widget/Editor$UndoInputFilter;->freezeLastEdit()V -PLandroid/widget/Editor$UndoInputFilter;->getLastEdit()Landroid/widget/Editor$EditOperation; HSPLandroid/widget/Editor$UndoInputFilter;->handleEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;IIZ)V HSPLandroid/widget/Editor$UndoInputFilter;->recordEdit(Landroid/widget/Editor$EditOperation;I)V HSPLandroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Parcel;)V HSPLandroid/widget/Editor$UndoInputFilter;->saveInstanceState(Landroid/os/Parcel;)V -HPLandroid/widget/Editor;->-$$Nest$fgetmMagnifierAnimator(Landroid/widget/Editor;)Landroid/widget/Editor$MagnifierMotionAnimator; HSPLandroid/widget/Editor;->-$$Nest$fgetmTextView(Landroid/widget/Editor;)Landroid/widget/TextView; -PLandroid/widget/Editor;->-$$Nest$fgetmUndoManager(Landroid/widget/Editor;)Landroid/content/UndoManager; -PLandroid/widget/Editor;->-$$Nest$fgetmUndoOwner(Landroid/widget/Editor;)Landroid/content/UndoOwner; -PLandroid/widget/Editor;->-$$Nest$fputmCorrectionHighlighter(Landroid/widget/Editor;Landroid/widget/Editor$CorrectionHighlighter;)V 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 @@ -20659,7 +19754,6 @@ HSPLandroid/widget/Editor;->loadHandleDrawables(Z)V HSPLandroid/widget/Editor;->makeBlink()V HSPLandroid/widget/Editor;->maybeFireScheduledRestartInputForSetText()V HSPLandroid/widget/Editor;->onAttachedToWindow()V -PLandroid/widget/Editor;->onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V HSPLandroid/widget/Editor;->onDetachedFromWindow()V HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V HSPLandroid/widget/Editor;->onFocusChanged(ZI)V @@ -20780,12 +19874,6 @@ HSPLandroid/widget/GridLayout;->setRowCount(I)V HSPLandroid/widget/GridLayout;->setRowOrderPreserved(Z)V HSPLandroid/widget/GridLayout;->setUseDefaultMargins(Z)V HSPLandroid/widget/GridLayout;->validateLayoutParams()V -HSPLandroid/widget/HeaderViewListAdapter;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V -HSPLandroid/widget/HeaderViewListAdapter;->areAllListInfosSelectable(Ljava/util/ArrayList;)Z -HSPLandroid/widget/HeaderViewListAdapter;->getCount()I -HSPLandroid/widget/HeaderViewListAdapter;->getFootersCount()I -HSPLandroid/widget/HeaderViewListAdapter;->getHeadersCount()I -HSPLandroid/widget/HeaderViewListAdapter;->hasStableIds()Z HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/HorizontalScrollView$SavedState; HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/widget/HorizontalScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V @@ -20931,7 +20019,6 @@ HSPLandroid/widget/ListPopupWindow;->setPromptPosition(I)V HSPLandroid/widget/ListPopupWindow;->setPromptView(Landroid/view/View;)V HSPLandroid/widget/ListPopupWindow;->setSoftInputMode(I)V HSPLandroid/widget/ListPopupWindow;->setWidth(I)V -HSPLandroid/widget/ListView$FixedViewInfo;-><init>(Landroid/widget/ListView;)V HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V @@ -20966,11 +20053,8 @@ HSPLandroid/widget/ListView;->resetList()V HSPLandroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V HSPLandroid/widget/ListView;->setCacheColorHint(I)V HSPLandroid/widget/ListView;->setDivider(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ListView;->setDividerHeight(I)V HSPLandroid/widget/ListView;->setSelection(I)V HSPLandroid/widget/ListView;->setupChild(Landroid/view/View;IIZIZZ)V -HSPLandroid/widget/ListView;->trackMotionScroll(II)Z -HSPLandroid/widget/ListView;->wrapHeaderListAdapterInternal(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)Landroid/widget/HeaderViewListAdapter; HSPLandroid/widget/OverScroller$SplineOverScroller;-><init>(Landroid/content/Context;)V HSPLandroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V HSPLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z @@ -20999,34 +20083,15 @@ HSPLandroid/widget/OverScroller;->getFinalX()I HSPLandroid/widget/OverScroller;->getFinalY()I HSPLandroid/widget/OverScroller;->isFinished()Z HSPLandroid/widget/OverScroller;->springBack(IIIIII)Z -HSPLandroid/widget/OverScroller;->startScroll(IIII)V HSPLandroid/widget/OverScroller;->startScroll(IIIII)V -HSPLandroid/widget/PopupWindow$3;->onTransitionEnd(Landroid/transition/Transition;)V HSPLandroid/widget/PopupWindow$PopupBackgroundView;->onCreateDrawableState(I)[I -HSPLandroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda1;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition$TransitionListener;Landroid/transition/Transition;Landroid/view/View;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda1;->run()V -HSPLandroid/widget/PopupWindow$PopupDecorView$1$1;-><init>(Landroid/widget/PopupWindow$PopupDecorView$1;Landroid/graphics/Rect;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$1$1;->onGetEpicenter(Landroid/transition/Transition;)Landroid/graphics/Rect; -HSPLandroid/widget/PopupWindow$PopupDecorView$1;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$1;->onGlobalLayout()V -HSPLandroid/widget/PopupWindow$PopupDecorView$2;-><init>(Landroid/widget/PopupWindow$PopupDecorView;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$2;->onTransitionEnd(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView$3;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/graphics/Rect;)V -HSPLandroid/widget/PopupWindow$PopupDecorView;->-$$Nest$fgetmCleanupAfterExit(Landroid/widget/PopupWindow$PopupDecorView;)Ljava/lang/Runnable; -HSPLandroid/widget/PopupWindow$PopupDecorView;->-$$Nest$mstartEnterTransition(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition;)V HSPLandroid/widget/PopupWindow$PopupDecorView;->cancelTransitions()V HSPLandroid/widget/PopupWindow$PopupDecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/PopupWindow$PopupDecorView;->lambda$startExitTransition$0$android-widget-PopupWindow$PopupDecorView(Landroid/transition/Transition$TransitionListener;Landroid/transition/Transition;Landroid/view/View;)V HSPLandroid/widget/PopupWindow$PopupDecorView;->onAttachedToWindow()V HSPLandroid/widget/PopupWindow$PopupDecorView;->onDetachedFromWindow()V -HSPLandroid/widget/PopupWindow$PopupDecorView;->requestEnterTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView;->startEnterTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow$PopupDecorView;->startExitTransition(Landroid/transition/Transition;Landroid/view/View;Landroid/graphics/Rect;Landroid/transition/Transition$TransitionListener;)V -HSPLandroid/widget/PopupWindow;->-$$Nest$mdismissImmediate(Landroid/widget/PopupWindow;Landroid/view/View;Landroid/view/ViewGroup;Landroid/view/View;)V HSPLandroid/widget/PopupWindow;->-$$Nest$munregisterBackCallback(Landroid/widget/PopupWindow;Landroid/window/OnBackInvokedDispatcher;)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;II)V HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;IIZ)V HSPLandroid/widget/PopupWindow;->attachToAnchor(Landroid/view/View;III)V @@ -21036,7 +20101,6 @@ HSPLandroid/widget/PopupWindow;->createDecorView(Landroid/view/View;)Landroid/wi HSPLandroid/widget/PopupWindow;->createPopupLayoutParams(Landroid/os/IBinder;)Landroid/view/WindowManager$LayoutParams; HSPLandroid/widget/PopupWindow;->detachFromAnchor()V HSPLandroid/widget/PopupWindow;->dismiss()V -HSPLandroid/widget/PopupWindow;->dismissImmediate(Landroid/view/View;Landroid/view/ViewGroup;Landroid/view/View;)V HSPLandroid/widget/PopupWindow;->findDropDownPosition(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z HSPLandroid/widget/PopupWindow;->getAnchor()Landroid/view/View; HSPLandroid/widget/PopupWindow;->getAppRootView(Landroid/view/View;)Landroid/view/View; @@ -21044,29 +20108,21 @@ HSPLandroid/widget/PopupWindow;->getBackground()Landroid/graphics/drawable/Drawa HSPLandroid/widget/PopupWindow;->getContentView()Landroid/view/View; HSPLandroid/widget/PopupWindow;->getDecorViewLayoutParams()Landroid/view/WindowManager$LayoutParams; HSPLandroid/widget/PopupWindow;->getHeight()I -HSPLandroid/widget/PopupWindow;->getInputMethodMode()I -HSPLandroid/widget/PopupWindow;->getMaxAvailableHeight(Landroid/view/View;IZ)I HSPLandroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition; -HSPLandroid/widget/PopupWindow;->getTransitionEpicenter()Landroid/graphics/Rect; HSPLandroid/widget/PopupWindow;->getWidth()I HSPLandroid/widget/PopupWindow;->hasContentView()Z -HSPLandroid/widget/PopupWindow;->hasDecorView()Z HSPLandroid/widget/PopupWindow;->invokePopup(Landroid/view/WindowManager$LayoutParams;)V HSPLandroid/widget/PopupWindow;->isShowing()Z HSPLandroid/widget/PopupWindow;->isSplitTouchEnabled()Z HSPLandroid/widget/PopupWindow;->preparePopup(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/widget/PopupWindow;->setAnimationStyle(I)V HSPLandroid/widget/PopupWindow;->setAttachedInDecor(Z)V HSPLandroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/PopupWindow;->setClippingEnabled(Z)V HSPLandroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V HSPLandroid/widget/PopupWindow;->setEnterTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow;->setEpicenterBounds(Landroid/graphics/Rect;)V HSPLandroid/widget/PopupWindow;->setExitTransition(Landroid/transition/Transition;)V HSPLandroid/widget/PopupWindow;->setFocusable(Z)V HSPLandroid/widget/PopupWindow;->setHeight(I)V HSPLandroid/widget/PopupWindow;->setInputMethodMode(I)V -HSPLandroid/widget/PopupWindow;->setIsClippedToScreen(Z)V HSPLandroid/widget/PopupWindow;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V HSPLandroid/widget/PopupWindow;->setOutsideTouchable(Z)V HSPLandroid/widget/PopupWindow;->setSoftInputMode(I)V @@ -21084,8 +20140,6 @@ HSPLandroid/widget/PopupWindow;->update(IIIIZ)V HSPLandroid/widget/PopupWindow;->update(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V HSPLandroid/widget/PopupWindow;->updateAboveAnchor(Z)V HSPLandroid/widget/ProgressBar$2;-><init>(Landroid/widget/ProgressBar;Ljava/lang/String;)V -HSPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>()V -HSPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>(Landroid/widget/ProgressBar$ProgressTintInfo-IA;)V HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/ProgressBar$SavedState; HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/widget/ProgressBar$SavedState;->writeToParcel(Landroid/os/Parcel;I)V @@ -21096,7 +20150,6 @@ HSPLandroid/widget/ProgressBar;->applyIndeterminateTint()V HSPLandroid/widget/ProgressBar;->applyPrimaryProgressTint()V HSPLandroid/widget/ProgressBar;->applyProgressBackgroundTint()V HSPLandroid/widget/ProgressBar;->applyProgressTints()V -HSPLandroid/widget/ProgressBar;->applySecondaryProgressTint()V HSPLandroid/widget/ProgressBar;->doRefreshProgress(IIZZZ)V HSPLandroid/widget/ProgressBar;->drawTrack(Landroid/graphics/Canvas;)V HSPLandroid/widget/ProgressBar;->drawableHotspotChanged(FF)V @@ -21135,7 +20188,6 @@ HSPLandroid/widget/ProgressBar;->setMin(I)V HSPLandroid/widget/ProgressBar;->setProgress(I)V HSPLandroid/widget/ProgressBar;->setProgressDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/widget/ProgressBar;->setProgressInternal(IZZ)Z -HSPLandroid/widget/ProgressBar;->setProgressTintList(Landroid/content/res/ColorStateList;)V HSPLandroid/widget/ProgressBar;->setSecondaryProgress(I)V HSPLandroid/widget/ProgressBar;->setVisualProgress(IF)V HSPLandroid/widget/ProgressBar;->startAnimation()V @@ -21199,7 +20251,6 @@ HSPLandroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;L HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z HSPLandroid/widget/RelativeLayout;->queryCompatibilityModes(Landroid/content/Context;)V HSPLandroid/widget/RelativeLayout;->requestLayout()V -HSPLandroid/widget/RelativeLayout;->setGravity(I)V HSPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z HSPLandroid/widget/RelativeLayout;->sortChildren()V HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/RemoteViews; @@ -21239,18 +20290,11 @@ HSPLandroid/widget/RemoteViews$SetOnClickResponse;->getActionTag()I HSPLandroid/widget/RemoteViews$SetOnClickResponse;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/widget/RemoteViews$TextViewSizeAction;->getActionTag()I HSPLandroid/widget/RemoteViews$TextViewSizeAction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;Landroid/content/pm/ApplicationInfo;I)V+]Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;->setHierarchyRootData(Landroid/widget/RemoteViews$HierarchyRootData;)V -HSPLandroid/widget/RemoteViews;->-$$Nest$fgetmApplyFlags(Landroid/widget/RemoteViews;)I -HSPLandroid/widget/RemoteViews;->-$$Nest$mconfigureAsChild(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews$HierarchyRootData;)V -HSPLandroid/widget/RemoteViews;->-$$Nest$mgetHierarchyRootData(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews$HierarchyRootData; HSPLandroid/widget/RemoteViews;->-$$Nest$smgetPackageUserKey(Landroid/content/pm/ApplicationInfo;)Landroid/util/Pair; HSPLandroid/widget/RemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$HierarchyRootData;Landroid/content/pm/ApplicationInfo;I)V -HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$HierarchyRootData;Landroid/content/pm/ApplicationInfo;ILandroid/widget/RemoteViews-IA;)V HSPLandroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V HSPLandroid/widget/RemoteViews;->addAction(Landroid/widget/RemoteViews$Action;)V -HSPLandroid/widget/RemoteViews;->addFlags(I)V HSPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View; HSPLandroid/widget/RemoteViews;->configureAsChild(Landroid/widget/RemoteViews$HierarchyRootData;)V HSPLandroid/widget/RemoteViews;->configureDescendantsAsChildren()V @@ -21330,7 +20374,6 @@ HSPLandroid/widget/ScrollView;->shouldDisplayEdgeEffects()Z HSPLandroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->getInterpolation(F)F HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->viscousFluid(F)F -HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;)V HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V HSPLandroid/widget/Scroller;->abortAnimation()V @@ -21361,33 +20404,21 @@ HSPLandroid/widget/Space;->draw(Landroid/graphics/Canvas;)V HSPLandroid/widget/Space;->getDefaultSize2(II)I HSPLandroid/widget/Space;->onMeasure(II)V HSPLandroid/widget/SpellChecker$1;->run()V -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->following(I)I+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper; -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->isBoundary(I)Z+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper; -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->preceding(I)I+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper; -HSPLandroid/widget/SpellChecker$SentenceIteratorWrapper;->setCharSequence(Ljava/lang/CharSequence;II)V+]Ljava/text/BreakIterator;Ljava/text/IcuIteratorWrapper;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder; HSPLandroid/widget/SpellChecker$SpellParser;->isFinished()Z HSPLandroid/widget/SpellChecker$SpellParser;->parse()V -HSPLandroid/widget/SpellChecker$SpellParser;->parse(IIZ)V+]Landroid/widget/SpellChecker$SpellParser;Landroid/widget/SpellChecker$SpellParser; -HSPLandroid/widget/SpellChecker$SpellParser;->setRangeSpan(Landroid/text/Editable;II)V HSPLandroid/widget/SpellChecker$SpellParser;->stop()V -HSPLandroid/widget/SpellChecker;->-$$Nest$fgetmTextView(Landroid/widget/SpellChecker;)Landroid/widget/TextView; HSPLandroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V HSPLandroid/widget/SpellChecker;->closeSession()V -HSPLandroid/widget/SpellChecker;->detectSentenceBoundary(Ljava/lang/CharSequence;II)Landroid/util/Range;+]Landroid/widget/SpellChecker$SentenceIteratorWrapper;Landroid/widget/SpellChecker$SentenceIteratorWrapper;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder; -HSPLandroid/widget/SpellChecker;->findSeparator(Ljava/lang/CharSequence;II)I -HSPLandroid/widget/SpellChecker;->isSeparator(I)Z HSPLandroid/widget/SpellChecker;->isSessionActive()Z HSPLandroid/widget/SpellChecker;->nextSpellCheckSpanIndex()I HSPLandroid/widget/SpellChecker;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V HSPLandroid/widget/SpellChecker;->onGetSuggestionsInternal(Landroid/view/textservice/SuggestionsInfo;II)Landroid/text/style/SpellCheckSpan; HSPLandroid/widget/SpellChecker;->onSpellCheckSpanRemoved(Landroid/text/style/SpellCheckSpan;)V -HSPLandroid/widget/SpellChecker;->removeErrorSuggestionSpan(Landroid/text/Editable;IILandroid/widget/SpellChecker$RemoveReason;)Z HSPLandroid/widget/SpellChecker;->resetSession()V HSPLandroid/widget/SpellChecker;->setLocale(Ljava/util/Locale;)V HSPLandroid/widget/SpellChecker;->spellCheck()V HSPLandroid/widget/SpellChecker;->spellCheck(II)V HSPLandroid/widget/SpellChecker;->spellCheck(IIZ)V -HSPLandroid/widget/SpellChecker;->spellCheck(Z)V+]Landroid/view/textservice/SpellCheckerSession;Landroid/view/textservice/SpellCheckerSession;]Landroid/text/style/SpellCheckSpan;Landroid/text/style/SpellCheckSpan;]Landroid/text/Editable;Landroid/text/SpannableStringBuilder; HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IIILandroid/content/res/Resources$Theme;)V HSPLandroid/widget/Spinner;->onDetachedFromWindow()V @@ -21505,7 +20536,6 @@ HSPLandroid/widget/TextView;->getLineSpacingMultiplier()F HSPLandroid/widget/TextView;->getMaxEms()I HSPLandroid/widget/TextView;->getMaxLines()I HSPLandroid/widget/TextView;->getMinEms()I -HSPLandroid/widget/TextView;->getMinHeight()I HSPLandroid/widget/TextView;->getMinWidth()I HSPLandroid/widget/TextView;->getOffsetAtCoordinate(IF)I HSPLandroid/widget/TextView;->getOffsetForPosition(FF)I @@ -21570,7 +20600,6 @@ HSPLandroid/widget/TextView;->nullLayouts()V HSPLandroid/widget/TextView;->onAttachedToWindow()V HSPLandroid/widget/TextView;->onBeginBatchEdit()V HSPLandroid/widget/TextView;->onCheckIsTextEditor()Z -PLandroid/widget/TextView;->onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V HSPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Configuration;)V HSPLandroid/widget/TextView;->onCreateDrawableState(I)[I HSPLandroid/widget/TextView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection; @@ -21718,11 +20747,7 @@ HSPLandroid/widget/TextViewOnReceiveContentListener;->clearInputConnectionInfo() HSPLandroid/widget/TextViewOnReceiveContentListener;->getFallbackMimeTypesForAutofill(Landroid/widget/TextView;)[Ljava/lang/String; HSPLandroid/widget/TextViewOnReceiveContentListener;->isUsageOfImeCommitContentEnabled(Landroid/view/View;)Z HSPLandroid/widget/TextViewOnReceiveContentListener;->setInputConnectionInfo(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V -PLandroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda0;->run()V -HSPLandroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda1;->run()V HSPLandroid/widget/Toast$CallbackBinder;->getCallbacks()Ljava/util/List; -PLandroid/widget/Toast$CallbackBinder;->lambda$onToastHidden$1$android-widget-Toast$CallbackBinder()V -HSPLandroid/widget/Toast$CallbackBinder;->lambda$onToastShown$0$android-widget-Toast$CallbackBinder()V HSPLandroid/widget/Toast$CallbackBinder;->onToastHidden()V HSPLandroid/widget/Toast$CallbackBinder;->onToastShown()V HSPLandroid/widget/Toast$TN;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Binder;Ljava/util/List;Landroid/os/Looper;)V @@ -21825,26 +20850,19 @@ HSPLandroid/window/ProxyOnBackInvokedDispatcher;->unregisterOnBackInvokedCallbac HSPLandroid/window/SizeConfigurationBuckets$1;-><init>()V HSPLandroid/window/SizeConfigurationBuckets;-><clinit>()V HSPLandroid/window/SizeConfigurationBuckets;-><init>([Landroid/content/res/Configuration;)V -HSPLandroid/window/SizeConfigurationBuckets;->areNonSizeLayoutFieldsUnchanged(II)Z -HSPLandroid/window/SizeConfigurationBuckets;->filterDiff(ILandroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/window/SizeConfigurationBuckets;)I HSPLandroid/window/SizeConfigurationBuckets;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0;-><init>(Landroid/window/SurfaceSyncGroup;Ljava/util/function/Consumer;)V HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLandroid/window/SurfaceSyncGroup$1;-><init>(Landroid/window/SurfaceSyncGroup;)V HSPLandroid/window/SurfaceSyncGroup$1;->onBufferReady(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/window/SurfaceSyncGroup$SyncTarget;->onSyncComplete()V HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmLock(Landroid/window/SurfaceSyncGroup;)Ljava/lang/Object; HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmPendingSyncs(Landroid/window/SurfaceSyncGroup;)Ljava/util/Set; HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmTransaction(Landroid/window/SurfaceSyncGroup;)Landroid/view/SurfaceControl$Transaction; HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$mcheckIfSyncIsComplete(Landroid/window/SurfaceSyncGroup;)V HSPLandroid/window/SurfaceSyncGroup;-><clinit>()V -HSPLandroid/window/SurfaceSyncGroup;-><init>()V HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/util/function/Consumer;)V+]Ljava/util/function/Supplier;Landroid/view/InsetsController$$ExternalSyntheticLambda4; HSPLandroid/window/SurfaceSyncGroup;->addToSync(Landroid/window/SurfaceSyncGroup$SyncTarget;)Z -HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V -HSPLandroid/window/SurfaceSyncGroup;->lambda$new$0(Landroid/view/SurfaceControl$Transaction;)V +HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V+]Landroid/window/SurfaceSyncGroup$SyncTarget;Landroid/view/ViewRootImpl$9;,Landroid/view/SurfaceView$$ExternalSyntheticLambda0;]Ljava/util/function/Consumer;Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/ArraySet; HSPLandroid/window/SurfaceSyncGroup;->lambda$new$1$android-window-SurfaceSyncGroup(Ljava/util/function/Consumer;Landroid/view/SurfaceControl$Transaction;)V HSPLandroid/window/SurfaceSyncGroup;->markSyncReady()V HSPLandroid/window/TaskAppearedInfo;-><init>(Landroid/app/ActivityManager$RunningTaskInfo;Landroid/view/SurfaceControl;)V @@ -21853,7 +20871,6 @@ HSPLandroid/window/TaskSnapshot;->getColorSpace()Landroid/graphics/ColorSpace; HSPLandroid/window/TaskSnapshot;->getContentInsets()Landroid/graphics/Rect; HSPLandroid/window/TaskSnapshot;->getHardwareBuffer()Landroid/hardware/HardwareBuffer; HSPLandroid/window/TaskSnapshot;->getId()J -HSPLandroid/window/TaskSnapshot;->getLetterboxInsets()Landroid/graphics/Rect; HSPLandroid/window/TaskSnapshot;->getOrientation()I HSPLandroid/window/TaskSnapshot;->getRotation()I HSPLandroid/window/TaskSnapshot;->getTaskSize()Landroid/graphics/Point; @@ -21864,7 +20881,6 @@ HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel; HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/window/WindowContainerToken;-><init>(Landroid/os/Parcel;)V HSPLandroid/window/WindowContainerToken;->asBinder()Landroid/os/IBinder; -HSPLandroid/window/WindowContainerToken;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/window/WindowContext;-><init>(Landroid/content/Context;ILandroid/os/Bundle;)V HSPLandroid/window/WindowContext;->attachToDisplayArea()V HSPLandroid/window/WindowContext;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V @@ -21872,7 +20888,6 @@ HSPLandroid/window/WindowContext;->getSystemService(Ljava/lang/String;)Ljava/lan HSPLandroid/window/WindowContext;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V HSPLandroid/window/WindowContextController;-><init>(Landroid/window/WindowTokenClient;)V HSPLandroid/window/WindowContextController;->attachToDisplayArea(IILandroid/os/Bundle;)V -HSPLandroid/window/WindowContextController;->detachIfNeeded()V HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;-><init>(Z)V HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->checkApplicationCallbackRegistration(ILandroid/window/OnBackInvokedCallback;)Z HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0;-><init>(Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;)V @@ -21911,7 +20926,6 @@ HSPLandroid/window/WindowTokenClient;-><clinit>()V HSPLandroid/window/WindowTokenClient;-><init>()V HSPLandroid/window/WindowTokenClient;->attachContext(Landroid/content/Context;)V HSPLandroid/window/WindowTokenClient;->attachToDisplayArea(IILandroid/os/Bundle;)Z -HSPLandroid/window/WindowTokenClient;->detachFromWindowContainerIfNeeded()V HSPLandroid/window/WindowTokenClient;->getWindowManagerService()Landroid/view/IWindowManager; HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;I)V HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;IZ)V @@ -21979,7 +20993,6 @@ HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;-><init>()V HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getCountryCode()I HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getFixedLine()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getGeneralDesc()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getId()Ljava/lang/String; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getInternationalPrefix()Ljava/lang/String; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getIntlNumberFormatList()Ljava/util/List; HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getLeadingDigits()Ljava/lang/String; @@ -22045,7 +21058,6 @@ HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCode(I)Lco HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCodeSource(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setNationalNumber(J)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setRawInput(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/internal/GeoEntityUtility;->isGeoEntity(Ljava/lang/String;)Z HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->match(Ljava/lang/CharSequence;Ljava/util/regex/Pattern;Z)Z HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z @@ -22053,21 +21065,6 @@ HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->get(Ljava/lang/ HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/i18n/phonenumbers/internal/RegexCache;-><init>(I)V HSPLcom/android/i18n/phonenumbers/internal/RegexCache;->getPatternForRegex(Ljava/lang/String;)Ljava/util/regex/Pattern; -HSPLcom/android/i18n/phonenumbers/metadata/init/ClassPathResourceMetadataLoader;->loadMetadata(Ljava/lang/String;)Ljava/io/InputStream; -HSPLcom/android/i18n/phonenumbers/metadata/init/MetadataParser;->close(Ljava/io/InputStream;)V -HSPLcom/android/i18n/phonenumbers/metadata/init/MetadataParser;->parse(Ljava/io/InputStream;)Ljava/util/Collection; -HSPLcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;->bootstrapMetadata(Ljava/lang/String;)V -HSPLcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;->getOrBootstrap(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/metadata/source/MetadataContainer;+]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap; -HSPLcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;->read(Ljava/lang/String;)Ljava/util/Collection; -HSPLcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;->accept(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)V -HSPLcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;->getMetadataBy(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$1;->getKeyOf(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Ljava/lang/Object; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$1;->getKeyOf(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;->accept(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)V -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;->getKeyProvider()Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$KeyProvider; -HSPLcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;->getMetadataBy(Ljava/lang/Object;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentHashMap; -HSPLcom/android/i18n/phonenumbers/metadata/source/MetadataSourceImpl;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;+]Lcom/android/i18n/phonenumbers/metadata/source/PhoneMetadataFileNameProvider;Lcom/android/i18n/phonenumbers/metadata/source/MultiFileModeFileNameProvider;]Lcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;Lcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;]Lcom/android/i18n/phonenumbers/metadata/source/MetadataBootstrappingGuard;Lcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard; -HSPLcom/android/i18n/phonenumbers/metadata/source/MultiFileModeFileNameProvider;->getFor(Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern; HSPLcom/android/i18n/system/AppSpecializationHooks;->handleCompatChangesBeforeBindingApplication()V HSPLcom/android/i18n/system/ZygoteHooks;->handleCompatChangesBeforeBindingApplication()V HSPLcom/android/i18n/system/ZygoteHooks;->onEndPreload()V @@ -22238,7 +21235,6 @@ HSPLcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V HSPLcom/android/internal/app/IAppOpsCallback$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperationRaw(IILjava/lang/String;Ljava/lang/String;)I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->extractAsyncOps(Ljava/lang/String;)Ljava/util/List; HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getPackagesForOps([I)Ljava/util/List; @@ -22295,11 +21291,7 @@ HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLcom/android/internal/graphics/ColorUtils;->HSLToColor([F)I HSPLcom/android/internal/graphics/ColorUtils;->RGBToHSL(III[F)V -HSPLcom/android/internal/graphics/ColorUtils;->RGBToXYZ(III[D)V -HSPLcom/android/internal/graphics/ColorUtils;->calculateLuminance(I)D HSPLcom/android/internal/graphics/ColorUtils;->colorToHSL(I[F)V -HSPLcom/android/internal/graphics/ColorUtils;->colorToXYZ(I[D)V -HSPLcom/android/internal/graphics/ColorUtils;->getTempDouble3Array()[D+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;-><init>()V HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->getFrameTime()J HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V @@ -22308,16 +21300,9 @@ HSPLcom/android/internal/graphics/cam/Cam;->fromInt(I)Lcom/android/internal/grap HSPLcom/android/internal/graphics/cam/Cam;->fromIntInFrame(ILcom/android/internal/graphics/cam/Frame;)Lcom/android/internal/graphics/cam/Cam; HSPLcom/android/internal/graphics/cam/Cam;->getChroma()F HSPLcom/android/internal/graphics/cam/Cam;->getHue()F -HSPLcom/android/internal/graphics/cam/Cam;->getInt(FFFLcom/android/internal/graphics/cam/Frame;)I HSPLcom/android/internal/graphics/cam/CamUtils;-><clinit>()V -HSPLcom/android/internal/graphics/cam/CamUtils;->argbFromLinrgbComponents(DDD)I -HSPLcom/android/internal/graphics/cam/CamUtils;->argbFromRgb(III)I -HSPLcom/android/internal/graphics/cam/CamUtils;->clampInt(III)I -HSPLcom/android/internal/graphics/cam/CamUtils;->delinearized(D)I HSPLcom/android/internal/graphics/cam/CamUtils;->linearized(I)F -HSPLcom/android/internal/graphics/cam/CamUtils;->signum(D)I HSPLcom/android/internal/graphics/cam/CamUtils;->xyzFromInt(I)[F -HSPLcom/android/internal/graphics/cam/CamUtils;->yFromLstar(D)D HSPLcom/android/internal/graphics/cam/Frame;-><clinit>()V HSPLcom/android/internal/graphics/cam/Frame;-><init>(FFFFFF[FFFF)V HSPLcom/android/internal/graphics/cam/Frame;->getAw()F @@ -22331,11 +21316,6 @@ HSPLcom/android/internal/graphics/cam/Frame;->getNcb()F HSPLcom/android/internal/graphics/cam/Frame;->getRgbD()[F HSPLcom/android/internal/graphics/cam/Frame;->getZ()F HSPLcom/android/internal/graphics/cam/Frame;->make([FFFFZ)Lcom/android/internal/graphics/cam/Frame; -HSPLcom/android/internal/graphics/cam/HctSolver;-><clinit>()V -HSPLcom/android/internal/graphics/cam/HctSolver;->findResultByJ(DDD)I+]Lcom/android/internal/graphics/cam/Frame;Lcom/android/internal/graphics/cam/Frame; -HSPLcom/android/internal/graphics/cam/HctSolver;->inverseChromaticAdaptation(D)D -HSPLcom/android/internal/graphics/cam/HctSolver;->sanitizeDegreesDouble(D)D -HSPLcom/android/internal/graphics/cam/HctSolver;->solveToInt(DDD)I HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;Landroid/content/res/Resources;)V HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->addDrawable(Landroid/graphics/drawable/Drawable;)I HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->canApplyTheme()Z @@ -22372,20 +21352,17 @@ HSPLcom/android/internal/infra/IAndroidFuture$Stub;->onTransact(ILandroid/os/Par HSPLcom/android/internal/inputmethod/EditableInputConnection;-><init>(Landroid/widget/TextView;)V HSPLcom/android/internal/inputmethod/EditableInputConnection;->beginBatchEdit()Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->closeConnection()V -PLcom/android/internal/inputmethod/EditableInputConnection;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->commitText(Ljava/lang/CharSequence;I)Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->endBatchEdit()Z HSPLcom/android/internal/inputmethod/EditableInputConnection;->endComposingRegionEditInternal()V HSPLcom/android/internal/inputmethod/EditableInputConnection;->getEditable()Landroid/text/Editable; HSPLcom/android/internal/inputmethod/EditableInputConnection;->setImeConsumesInput(Z)Z HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->finishInput()V HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->viewClicked(Z)V HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/inputmethod/IInputMethodSession; HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;-><init>()V HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;->asBinder()Landroid/os/IBinder; @@ -22437,7 +21414,7 @@ HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onComple 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+]Ljava/util/concurrent/Executor;Landroid/os/HandlerExecutor;]Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Landroid/location/LocationManager$LocationListenerTransport$1;]Ljava/util/function/Supplier;Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2; +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;]Ljava/util/function/Supplier;Landroid/location/LocationManager$LocationListenerTransport$$ExternalSyntheticLambda2; 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; @@ -22476,31 +21453,17 @@ HSPLcom/android/internal/os/BackgroundThread;-><init>()V HSPLcom/android/internal/os/BackgroundThread;->ensureThreadLocked()V HSPLcom/android/internal/os/BackgroundThread;->getExecutor()Ljava/util/concurrent/Executor; HSPLcom/android/internal/os/BackgroundThread;->getHandler()Landroid/os/Handler; -HSPLcom/android/internal/os/BinderCallsStats$1;-><init>(Lcom/android/internal/os/BinderCallsStats;)V -HSPLcom/android/internal/os/BinderCallsStats$Injector;-><init>()V -HSPLcom/android/internal/os/BinderCallsStats$Injector;->getHandler()Landroid/os/Handler; -HSPLcom/android/internal/os/BinderCallsStats$Injector;->getLatencyObserver(I)Lcom/android/internal/os/BinderLatencyObserver; -HSPLcom/android/internal/os/BinderCallsStats$Injector;->getRandomGenerator()Ljava/util/Random; HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;-><init>(Landroid/content/Context;Lcom/android/internal/os/BinderCallsStats;)V HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->configureLatencyObserver(Landroid/util/KeyValueListParser;Lcom/android/internal/os/BinderLatencyObserver;)V HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->onChange()V -HSPLcom/android/internal/os/BinderCallsStats;-><init>(Lcom/android/internal/os/BinderCallsStats$Injector;I)V HSPLcom/android/internal/os/BinderCallsStats;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V HSPLcom/android/internal/os/BinderCallsStats;->callStarted(Landroid/os/Binder;II)Lcom/android/internal/os/BinderInternal$CallSession; HSPLcom/android/internal/os/BinderCallsStats;->canCollect()Z+]Lcom/android/internal/os/CachedDeviceState$Readonly;Lcom/android/internal/os/CachedDeviceState$Readonly; HSPLcom/android/internal/os/BinderCallsStats;->getElapsedRealtimeMicro()J -HSPLcom/android/internal/os/BinderCallsStats;->getLatencyObserver()Lcom/android/internal/os/BinderLatencyObserver; HSPLcom/android/internal/os/BinderCallsStats;->getNativeTid()I HSPLcom/android/internal/os/BinderCallsStats;->noteBinderThreadNativeIds()V HSPLcom/android/internal/os/BinderCallsStats;->noteNativeThreadId()V+]Landroid/util/IntArray;Landroid/util/IntArray;]Lcom/android/internal/os/BinderCallsStats;Lcom/android/internal/os/BinderCallsStats; -HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V+]Lcom/android/internal/os/BinderCallsStats$UidEntry;Lcom/android/internal/os/BinderCallsStats$UidEntry;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/internal/os/BinderCallsStats;Lcom/android/internal/os/BinderCallsStats;]Lcom/android/internal/os/BinderLatencyObserver;Lcom/android/internal/os/BinderLatencyObserver; -HSPLcom/android/internal/os/BinderCallsStats;->reset()V -HSPLcom/android/internal/os/BinderCallsStats;->setAddDebugEntries(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setCollectLatencyData(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setDetailedTracking(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setIgnoreBatteryStatus(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setTrackDirectCallerUid(Z)V -HSPLcom/android/internal/os/BinderCallsStats;->setTrackScreenInteractive(Z)V +HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V+]Lcom/android/internal/os/BinderLatencyObserver;Lcom/android/internal/os/BinderLatencyObserver;]Lcom/android/internal/os/BinderCallsStats$UidEntry;Lcom/android/internal/os/BinderCallsStats$UidEntry;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/internal/os/BinderCallsStats;Lcom/android/internal/os/BinderCallsStats; HSPLcom/android/internal/os/BinderCallsStats;->shouldRecordDetailedData()Z+]Ljava/util/Random;Ljava/util/Random; HSPLcom/android/internal/os/BinderDeathDispatcher;->linkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)I HSPLcom/android/internal/os/BinderInternal$GcWatcher;-><init>()V @@ -22511,7 +21474,6 @@ HSPLcom/android/internal/os/BinderInternal;->forceGc(Ljava/lang/String;)V HSPLcom/android/internal/os/BinderLatencyBuckets;-><init>(IIF)V HSPLcom/android/internal/os/BinderLatencyBuckets;->sampleToBucket(I)I HSPLcom/android/internal/os/BinderLatencyObserver$1;-><init>(Lcom/android/internal/os/BinderLatencyObserver;)V -HPLcom/android/internal/os/BinderLatencyObserver$1;->run()V HSPLcom/android/internal/os/BinderLatencyObserver$Injector;-><init>()V HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getHandler()Landroid/os/Handler; HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getRandomGenerator()Ljava/util/Random; @@ -22521,15 +21483,9 @@ HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->equals(Ljava/lan HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getBinderClass()Ljava/lang/Class; HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getTransactionCode()I HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->hashCode()I+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Class;Ljava/lang/Class; -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$fgetmLatencyHistograms(Lcom/android/internal/os/BinderLatencyObserver;)Landroid/util/ArrayMap; -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$fgetmLock(Lcom/android/internal/os/BinderLatencyObserver;)Ljava/lang/Object; -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$mfillApiStatsProto(Lcom/android/internal/os/BinderLatencyObserver;Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Ljava/lang/String;[I)V -PLcom/android/internal/os/BinderLatencyObserver;->-$$Nest$mnoteLatencyDelayed(Lcom/android/internal/os/BinderLatencyObserver;)V HSPLcom/android/internal/os/BinderLatencyObserver;-><init>(Lcom/android/internal/os/BinderLatencyObserver$Injector;I)V HSPLcom/android/internal/os/BinderLatencyObserver;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/internal/os/BinderLatencyBuckets;Lcom/android/internal/os/BinderLatencyBuckets;]Lcom/android/internal/os/BinderLatencyObserver;Lcom/android/internal/os/BinderLatencyObserver; -HPLcom/android/internal/os/BinderLatencyObserver;->fillApiStatsProto(Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Ljava/lang/String;[I)V+]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream;]Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;]Ljava/lang/Class;Ljava/lang/Class; HSPLcom/android/internal/os/BinderLatencyObserver;->getElapsedRealtimeMicro()J -PLcom/android/internal/os/BinderLatencyObserver;->getMaxAtomSizeBytes()I HSPLcom/android/internal/os/BinderLatencyObserver;->noteLatencyDelayed()V HSPLcom/android/internal/os/BinderLatencyObserver;->reset()V HSPLcom/android/internal/os/BinderLatencyObserver;->setHistogramBucketsParams(IIF)V @@ -22538,10 +21494,6 @@ HSPLcom/android/internal/os/BinderLatencyObserver;->setSamplingInterval(I)V HSPLcom/android/internal/os/BinderLatencyObserver;->setShardingModulo(I)V HSPLcom/android/internal/os/BinderLatencyObserver;->shouldCollect(Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;)Z+]Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;Lcom/android/internal/os/BinderLatencyObserver$LatencyDims; HSPLcom/android/internal/os/BinderLatencyObserver;->shouldKeepSample()Z+]Ljava/util/Random;Ljava/util/Random; -PLcom/android/internal/os/BinderLatencyObserver;->writeAtomToStatsd(Landroid/util/proto/ProtoOutputStream;)V -PLcom/android/internal/os/BinderTransactionNameResolver;-><init>()V -HPLcom/android/internal/os/BinderTransactionNameResolver;->getMethodName(Ljava/lang/Class;I)Ljava/lang/String; -PLcom/android/internal/os/BinderTransactionNameResolver;->noDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/os/CachedDeviceState$Readonly;->isCharging()Z HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;IZLjava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; @@ -22561,7 +21513,6 @@ HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundl HSPLcom/android/internal/os/IResultReceiver$Stub;-><init>()V HSPLcom/android/internal/os/IResultReceiver$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/os/IResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IResultReceiver; -HSPLcom/android/internal/os/IResultReceiver$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/os/IResultReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->nextLine()Ljava/nio/CharBuffer; HSPLcom/android/internal/os/KernelCpuProcStringReader;->asLongs(Ljava/nio/CharBuffer;[J)I @@ -22810,7 +21761,6 @@ HSPLcom/android/internal/policy/PhoneWindow;->generateDecor(I)Lcom/android/inter HSPLcom/android/internal/policy/PhoneWindow;->generateLayout(Lcom/android/internal/policy/DecorView;)Landroid/view/ViewGroup; HSPLcom/android/internal/policy/PhoneWindow;->getCurrentFocus()Landroid/view/View; HSPLcom/android/internal/policy/PhoneWindow;->getDecorView()Landroid/view/View; -HSPLcom/android/internal/policy/PhoneWindow;->getInsetsController()Landroid/view/WindowInsetsController; HSPLcom/android/internal/policy/PhoneWindow;->getLayoutInflater()Landroid/view/LayoutInflater; HSPLcom/android/internal/policy/PhoneWindow;->getNavigationBarColor()I HSPLcom/android/internal/policy/PhoneWindow;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher; @@ -22854,7 +21804,6 @@ HSPLcom/android/internal/policy/PhoneWindow;->setTitleColor(I)V HSPLcom/android/internal/policy/PhoneWindow;->setVolumeControlStream(I)V HSPLcom/android/internal/policy/PhoneWindow;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z HSPLcom/android/internal/policy/PhoneWindow;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLcom/android/internal/policy/ScreenDecorationsUtils;->getWindowCornerRadius(Landroid/content/Context;)F HSPLcom/android/internal/policy/ScreenDecorationsUtils;->supportsRoundedCornersOnWindows(Landroid/content/res/Resources;)Z HSPLcom/android/internal/protolog/BaseProtoLogImpl;-><init>(Ljava/io/File;Ljava/lang/String;ILcom/android/internal/protolog/ProtoLogViewerConfigReader;)V HSPLcom/android/internal/protolog/BaseProtoLogImpl;->addLogGroupEnum([Lcom/android/internal/protolog/common/IProtoLogGroup;)V @@ -22868,12 +21817,9 @@ HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid HSPLcom/android/internal/statusbar/NotificationVisibility;->recycle()V HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallCapablePhoneAccounts(ZLjava/lang/String;Ljava/lang/String;)Landroid/content/pm/ParceledListSlice; HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallStateUsingPackage(Ljava/lang/String;Ljava/lang/String;)I HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCurrentTtyMode(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultDialerPackage(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;)Landroid/telecom/PhoneAccount; HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInCall(Ljava/lang/String;Ljava/lang/String;)Z HSPLcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService; HSPLcom/android/internal/telecom/IVideoProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IVideoProvider; @@ -22890,13 +21836,10 @@ HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getConfigFo HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ICarrierConfigLoader; HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;-><init>()V HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;-><init>()V HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getMaxTransactionId()I -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getTransactionName(I)Ljava/lang/String; HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->asBinder()Landroid/os/IBinder; @@ -22938,7 +21881,6 @@ HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisp HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMeidForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(I)Ljava/lang/String; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getServiceStateForSubscriber(IZZLjava/lang/String;Ljava/lang/String;)Landroid/telephony/ServiceState; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSignalStrength(I)Landroid/telephony/SignalStrength; HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrierId(I)I HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionSpecificCarrierId(I)I @@ -22958,7 +21900,6 @@ HSPLcom/android/internal/telephony/SmsApplication;->getApplicationForPackage(Lja HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName; HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplicationAsUser(Landroid/content/Context;ZI)Landroid/content/ComponentName; HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsPackage(Landroid/content/Context;I)Ljava/lang/String; -HSPLcom/android/internal/telephony/SmsApplication;->getIncomingUserId(Landroid/content/Context;)I HSPLcom/android/internal/telephony/SmsApplication;->tryFixExclusiveSmsAppops(Landroid/content/Context;Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Z)Z HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadDeviceIdentifiers(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadPhoneState(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z @@ -22970,11 +21911,9 @@ HSPLcom/android/internal/telephony/TelephonyPermissions;->reportAccessDeniedToRe HSPLcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String; HSPLcom/android/internal/telephony/util/HandlerExecutor;-><init>(Landroid/os/Handler;)V HSPLcom/android/internal/telephony/util/HandlerExecutor;->execute(Ljava/lang/Runnable;)V -HSPLcom/android/internal/telephony/util/TelephonyUtils;->dataStateToString(I)Ljava/lang/String; HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onClose()V HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V -HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;-><init>()V HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asBinder()Landroid/os/IBinder; HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V @@ -22982,28 +21921,9 @@ HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurren HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype; HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getSpellCheckerService(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;I)V HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCheckerEnabled(I)Z -HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;-><init>()V 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$1;-><init>(Landroid/view/View;Landroid/graphics/Rect;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$1;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$State;-><init>()V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$State;-><init>(IIF)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;-><init>()V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;-><init>(Lcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator-IA;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;->evaluate(FLcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;)Lcom/android/internal/transition/EpicenterTranslateClipReveal$State; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;-><init>(C)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;->set(Landroid/view/View;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;->set(Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureStartValues(Landroid/transition/TransitionValues;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureValues(Landroid/transition/TransitionValues;)V -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->createRectAnimator(Landroid/view/View;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;FLcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;FLandroid/transition/TransitionValues;Landroid/animation/TimeInterpolator;Landroid/animation/TimeInterpolator;Landroid/animation/TimeInterpolator;)Landroid/animation/Animator; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->getBestRect(Landroid/transition/TransitionValues;)Landroid/graphics/Rect; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->getEpicenterOrCenter(Landroid/graphics/Rect;)Landroid/graphics/Rect; -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->onAppear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator; HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;J)V HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;JLjava/lang/String;J)V HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;JLjava/lang/String;J)V @@ -23052,7 +21972,6 @@ HSPLcom/android/internal/util/AsyncChannel;->sendMessage(Landroid/os/Message;)V HSPLcom/android/internal/util/BitUtils;->packBits([I)J HSPLcom/android/internal/util/BitUtils;->unpackBits(J)[I HSPLcom/android/internal/util/CollectionUtils;->add(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List; -HSPLcom/android/internal/util/CollectionUtils;->emptyIfNull(Ljava/util/List;)Ljava/util/List; HSPLcom/android/internal/util/CollectionUtils;->emptyIfNull(Ljava/util/Set;)Ljava/util/Set; HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/List;)Ljava/lang/Object; HSPLcom/android/internal/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z @@ -23107,7 +22026,6 @@ HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIJII)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(IILjava/lang/String;IZ)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V -PLcom/android/internal/util/FrameworkStatsLog;->write(I[BFIIIF)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; @@ -23123,11 +22041,6 @@ HSPLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String HSPLcom/android/internal/util/IntPair;->first(J)I HSPLcom/android/internal/util/IntPair;->of(II)J HSPLcom/android/internal/util/IntPair;->second(J)I -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/internal/util/LatencyTracker;)V -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda1;->run()V -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda2;-><init>(Lcom/android/internal/util/LatencyTracker;)V -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V -HSPLcom/android/internal/util/LatencyTracker;->$r8$lambda$DRnZbV-_f67FVGSzCjRFLX6dnUQ(Lcom/android/internal/util/LatencyTracker;Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/internal/util/LatencyTracker;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker; HSPLcom/android/internal/util/LatencyTracker;->getNameOfAction(I)Ljava/lang/String; HSPLcom/android/internal/util/LatencyTracker;->isEnabled()Z @@ -23160,7 +22073,6 @@ HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;->unparcel(Landroi HSPLcom/android/internal/util/Parcelling$Cache;->get(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling; HSPLcom/android/internal/util/Parcelling$Cache;->getOrCreate(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling; HSPLcom/android/internal/util/Parcelling$Cache;->put(Lcom/android/internal/util/Parcelling;)Lcom/android/internal/util/Parcelling; -HSPLcom/android/internal/util/PerfettoTrigger;->trigger(Ljava/lang/String;)V HSPLcom/android/internal/util/Preconditions;->checkArgument(Z)V HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/String;[Ljava/lang/Object;)V @@ -23362,10 +22274,6 @@ HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getCredentialType(I)I HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; HSPLcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings; HSPLcom/android/internal/widget/LockPatternUtils$1;-><init>(Lcom/android/internal/widget/LockPatternUtils;)V -HSPLcom/android/internal/widget/LockPatternUtils$1;->apply(Ljava/lang/Integer;)Ljava/lang/Integer; -HSPLcom/android/internal/widget/LockPatternUtils$1;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/internal/widget/LockPatternUtils$1;->shouldBypassCache(Ljava/lang/Integer;)Z -HSPLcom/android/internal/widget/LockPatternUtils$1;->shouldBypassCache(Ljava/lang/Object;)Z HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onIsNonStrongBiometricAllowedChanged(ZI)V HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onStrongAuthRequiredChanged(II)V HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;->handleMessage(Landroid/os/Message;)V @@ -23384,7 +22292,6 @@ HSPLcom/android/internal/widget/LockPatternUtils;->getKeyguardStoredPasswordQual HSPLcom/android/internal/widget/LockPatternUtils;->getLockSettings()Lcom/android/internal/widget/ILockSettings; HSPLcom/android/internal/widget/LockPatternUtils;->getPowerButtonInstantlyLocks(I)Z HSPLcom/android/internal/widget/LockPatternUtils;->getString(Ljava/lang/String;I)Ljava/lang/String; -HSPLcom/android/internal/widget/LockPatternUtils;->getUserManager(I)Landroid/os/UserManager;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/content/Context;Landroid/app/ContextImpl; HSPLcom/android/internal/widget/LockPatternUtils;->hasSeparateChallenge(I)Z HSPLcom/android/internal/widget/LockPatternUtils;->isManagedProfile(I)Z HSPLcom/android/internal/widget/LockPatternUtils;->isOwnerInfoEnabled(I)Z @@ -23400,7 +22307,6 @@ HSPLcom/android/net/module/util/MacAddressUtils;->isMacAddress([B)Z HSPLcom/android/net/module/util/MacAddressUtils;->longAddrFromByteAddr([B)J HSPLcom/android/net/module/util/NetUtils;->maskRawAddress([BI)V HSPLcom/android/net/module/util/NetworkCapabilitiesUtils;-><clinit>()V -HSPLcom/android/net/module/util/NetworkCapabilitiesUtils;->unpackBits(J)[I HSPLcom/android/okhttp/Address;-><init>(Ljava/lang/String;ILcom/android/okhttp/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lcom/android/okhttp/CertificatePinner;Lcom/android/okhttp/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V HSPLcom/android/okhttp/Address;->equals(Ljava/lang/Object;)Z HSPLcom/android/okhttp/Address;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner; @@ -24431,7 +23337,6 @@ HSPLcom/google/android/gles_jni/EGLContextImpl;->equals(Ljava/lang/Object;)Z HSPLcom/google/android/gles_jni/EGLDisplayImpl;->equals(Ljava/lang/Object;)Z HSPLcom/google/android/gles_jni/EGLImpl;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext; HSPLcom/google/android/gles_jni/EGLImpl;->eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface; -HSPLcom/google/android/gles_jni/EGLImpl;->eglGetCurrentContext()Ljavax/microedition/khronos/egl/EGLContext; HSPLcom/google/android/gles_jni/EGLImpl;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay; HSPLcom/google/android/gles_jni/EGLSurfaceImpl;-><init>(J)V HSPLdalvik/system/AppSpecializationHooks;->handleCompatChangesBeforeBindingApplication()V @@ -25597,6 +24502,7 @@ HSPLjava/lang/Long;->longValue()J HSPLjava/lang/Long;->lowestOneBit(J)J HSPLjava/lang/Long;->numberOfLeadingZeros(J)I HSPLjava/lang/Long;->numberOfTrailingZeros(J)I +HSPLjava/lang/Long;->parseLong(Ljava/lang/CharSequence;III)J+]Ljava/lang/CharSequence;Ljava/lang/String; HSPLjava/lang/Long;->parseLong(Ljava/lang/String;)J HSPLjava/lang/Long;->parseLong(Ljava/lang/String;I)J HSPLjava/lang/Long;->reverse(J)J @@ -25683,7 +24589,6 @@ HSPLjava/lang/Process;-><init>()V HSPLjava/lang/ProcessBuilder$NullInputStream;->available()I HSPLjava/lang/ProcessBuilder$NullInputStream;->read()I HSPLjava/lang/ProcessBuilder;-><init>([Ljava/lang/String;)V -HSPLjava/lang/ProcessBuilder;->command()Ljava/util/List; HSPLjava/lang/ProcessBuilder;->directory(Ljava/io/File;)Ljava/lang/ProcessBuilder; HSPLjava/lang/ProcessBuilder;->environment([Ljava/lang/String;)Ljava/lang/ProcessBuilder; HSPLjava/lang/ProcessBuilder;->start()Ljava/lang/Process; @@ -25758,8 +24663,6 @@ HSPLjava/lang/String;->indexOf(II)I 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 -HSPLjava/lang/String;->indexOf([CIILjava/lang/String;I)I -HSPLjava/lang/String;->indexOf([CII[CIII)I HSPLjava/lang/String;->isEmpty()Z HSPLjava/lang/String;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; HSPLjava/lang/String;->join(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String; @@ -25768,7 +24671,6 @@ HSPLjava/lang/String;->lastIndexOf(II)I HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;)I HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;I)I HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;I)I -HSPLjava/lang/String;->lastIndexOf([CIILjava/lang/String;I)I HSPLjava/lang/String;->lastIndexOf([CII[CIII)I HSPLjava/lang/String;->length()I HSPLjava/lang/String;->matches(Ljava/lang/String;)Z @@ -27031,12 +25933,12 @@ 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(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 @@ -27949,7 +26851,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; @@ -28253,6 +27155,7 @@ HSPLjava/util/ArrayList$ArrayListSpliterator;->forEachRemaining(Ljava/util/funct HSPLjava/util/ArrayList$ArrayListSpliterator;->getFence()I HSPLjava/util/ArrayList$ArrayListSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z HSPLjava/util/ArrayList$Itr;-><init>(Ljava/util/ArrayList;)V +HSPLjava/util/ArrayList$Itr;->checkForComodification()V HSPLjava/util/ArrayList$Itr;->hasNext()Z HSPLjava/util/ArrayList$Itr;->next()Ljava/lang/Object; HSPLjava/util/ArrayList$Itr;->remove()V @@ -28263,32 +27166,45 @@ HSPLjava/util/ArrayList$ListItr;->previous()Ljava/lang/Object; HSPLjava/util/ArrayList$ListItr;->set(Ljava/lang/Object;)V HSPLjava/util/ArrayList$SubList$1;->hasNext()Z HSPLjava/util/ArrayList$SubList$1;->next()Ljava/lang/Object; +HSPLjava/util/ArrayList$SubList;->checkForComodification()V HSPLjava/util/ArrayList$SubList;->get(I)Ljava/lang/Object; HSPLjava/util/ArrayList$SubList;->iterator()Ljava/util/Iterator; HSPLjava/util/ArrayList$SubList;->listIterator(I)Ljava/util/ListIterator; HSPLjava/util/ArrayList$SubList;->removeRange(II)V HSPLjava/util/ArrayList$SubList;->size()I HSPLjava/util/ArrayList$SubList;->subList(II)Ljava/util/List; +HSPLjava/util/ArrayList$SubList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; HSPLjava/util/ArrayList;->-$$Nest$fgetsize(Ljava/util/ArrayList;)I HSPLjava/util/ArrayList;-><init>()V HSPLjava/util/ArrayList;-><init>(I)V HSPLjava/util/ArrayList;-><init>(Ljava/util/Collection;)V HSPLjava/util/ArrayList;->add(ILjava/lang/Object;)V HSPLjava/util/ArrayList;->add(Ljava/lang/Object;)Z +HSPLjava/util/ArrayList;->add(Ljava/lang/Object;[Ljava/lang/Object;I)V HSPLjava/util/ArrayList;->addAll(ILjava/util/Collection;)Z HSPLjava/util/ArrayList;->addAll(Ljava/util/Collection;)Z +HSPLjava/util/ArrayList;->checkForComodification(I)V HSPLjava/util/ArrayList;->clear()V HSPLjava/util/ArrayList;->clone()Ljava/lang/Object; HSPLjava/util/ArrayList;->contains(Ljava/lang/Object;)Z+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLjava/util/ArrayList;->elementData(I)Ljava/lang/Object; HSPLjava/util/ArrayList;->ensureCapacity(I)V +HSPLjava/util/ArrayList;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/util/Collections$UnmodifiableRandomAccessList;,Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$SingletonList;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLjava/util/ArrayList;->forEach(Ljava/util/function/Consumer;)V HSPLjava/util/ArrayList;->get(I)Ljava/lang/Object; +HSPLjava/util/ArrayList;->grow()[Ljava/lang/Object; +HSPLjava/util/ArrayList;->grow(I)[Ljava/lang/Object; +HSPLjava/util/ArrayList;->hashCode()I +HSPLjava/util/ArrayList;->hashCodeRange(II)I+]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Integer; HSPLjava/util/ArrayList;->indexOf(Ljava/lang/Object;)I+]Ljava/lang/Object;missing_types +HSPLjava/util/ArrayList;->indexOfRange(Ljava/lang/Object;II)I HSPLjava/util/ArrayList;->isEmpty()Z HSPLjava/util/ArrayList;->iterator()Ljava/util/Iterator; HSPLjava/util/ArrayList;->lastIndexOf(Ljava/lang/Object;)I HSPLjava/util/ArrayList;->listIterator()Ljava/util/ListIterator; HSPLjava/util/ArrayList;->listIterator(I)Ljava/util/ListIterator; +HSPLjava/util/ArrayList;->newCapacity(I)I +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 @@ -28403,9 +27319,6 @@ HSPLjava/util/Base64$Decoder;->decode(Ljava/lang/String;)[B HSPLjava/util/Base64$Decoder;->decode([B)[B HSPLjava/util/Base64$Decoder;->decode0([BII[B)I HSPLjava/util/Base64$Decoder;->outLength([BII)I -HSPLjava/util/Base64$Encoder;->encode([B)[B -HSPLjava/util/Base64$Encoder;->encode0([BII[B)I -HSPLjava/util/Base64$Encoder;->outLength(I)I HSPLjava/util/Base64;->getDecoder()Ljava/util/Base64$Decoder; HSPLjava/util/Base64;->getEncoder()Ljava/util/Base64$Encoder; HSPLjava/util/Base64;->getMimeDecoder()Ljava/util/Base64$Decoder; @@ -29168,7 +28081,7 @@ HSPLjava/util/ImmutableCollections$SetN;->probe(Ljava/lang/Object;)I+]Ljava/lang HSPLjava/util/ImmutableCollections;-><clinit>()V HSPLjava/util/ImmutableCollections;->emptyList()Ljava/util/List; 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;Ljava/util/AbstractList$Itr;,Landroid/util/MapCollections$ArrayIterator; +HSPLjava/util/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/function/Consumer;missing_types]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/AbstractList$Itr; HSPLjava/util/JumboEnumSet$EnumSetIterator;-><init>(Ljava/util/JumboEnumSet;)V HSPLjava/util/JumboEnumSet$EnumSetIterator;->hasNext()Z HSPLjava/util/JumboEnumSet$EnumSetIterator;->next()Ljava/lang/Enum; @@ -29217,7 +28130,6 @@ HSPLjava/util/LinkedHashMap;->clear()V HSPLjava/util/LinkedHashMap;->eldest()Ljava/util/Map$Entry; HSPLjava/util/LinkedHashMap;->entrySet()Ljava/util/Set; HSPLjava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;missing_types -HSPLjava/util/LinkedHashMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLjava/util/LinkedHashMap;->keySet()Ljava/util/Set; HSPLjava/util/LinkedHashMap;->linkNodeLast(Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V HSPLjava/util/LinkedHashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node; @@ -29776,7 +28688,7 @@ 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;+]Ljava/util/TreeMap;Ljava/util/TreeMap;]Ljava/lang/Comparable;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long;]Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry; +HSPLjava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;]Ljava/util/TreeMap;Ljava/util/TreeMap;]Ljava/lang/Comparable;Ljava/lang/String;,Ljava/lang/Integer;,Ljava/lang/Long; HSPLjava/util/TreeMap;->putAll(Ljava/util/Map;)V HSPLjava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; HSPLjava/util/TreeMap;->rightOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry; @@ -30509,10 +29421,12 @@ HSPLjava/util/concurrent/atomic/AtomicReference;->weakCompareAndSetVolatile(Ljav HSPLjava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object; +HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getAcquire(I)Ljava/lang/Object; HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getAndSet(ILjava/lang/Object;)Ljava/lang/Object; HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->length()I HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->set(ILjava/lang/Object;)V +HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->setRelease(ILjava/lang/Object;)V HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z @@ -31213,7 +30127,7 @@ HSPLjava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional; HSPLjava/util/stream/ReferencePipeline;->findFirst()Ljava/util/Optional; HSPLjava/util/stream/ReferencePipeline;->flatMap(Ljava/util/function/Function;)Ljava/util/stream/Stream; HSPLjava/util/stream/ReferencePipeline;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)Z+]Ljava/util/Spliterator;megamorphic_types]Ljava/util/stream/Sink;Ljava/util/stream/ReferencePipeline$2$1;,Ljava/util/stream/MatchOps$1MatchSink;,Ljava/util/stream/ReferencePipeline$7$1; +HSPLjava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)Z+]Ljava/util/Spliterator;megamorphic_types]Ljava/util/stream/Sink;Ljava/util/stream/ReferencePipeline$7$1;,Ljava/util/stream/ReferencePipeline$2$1;,Ljava/util/stream/ReferencePipeline$3$1;,Ljava/util/stream/MatchOps$1MatchSink; HSPLjava/util/stream/ReferencePipeline;->lambda$count$2(Ljava/lang/Object;)J HSPLjava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder; HSPLjava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream; @@ -34145,6 +33059,7 @@ Landroid/app/SystemServiceRegistry$133; Landroid/app/SystemServiceRegistry$134; Landroid/app/SystemServiceRegistry$135; Landroid/app/SystemServiceRegistry$136; +Landroid/app/SystemServiceRegistry$137; Landroid/app/SystemServiceRegistry$13; Landroid/app/SystemServiceRegistry$14; Landroid/app/SystemServiceRegistry$15; @@ -34617,7 +33532,6 @@ Landroid/app/usage/IUsageStatsManager; Landroid/app/usage/StorageStats$1; Landroid/app/usage/StorageStats; Landroid/app/usage/StorageStatsManager; -Landroid/app/usage/TimeSparseArray; Landroid/app/usage/UsageEvents$1; Landroid/app/usage/UsageEvents$Event; Landroid/app/usage/UsageEvents; @@ -35360,6 +34274,7 @@ Landroid/graphics/CanvasProperty; Landroid/graphics/Color; Landroid/graphics/ColorFilter$NoImagePreloadHolder; Landroid/graphics/ColorFilter; +Landroid/graphics/ColorMatrix; Landroid/graphics/ColorMatrixColorFilter; Landroid/graphics/ColorSpace$$ExternalSyntheticLambda0; Landroid/graphics/ColorSpace$$ExternalSyntheticLambda1; @@ -40632,6 +39547,7 @@ Landroid/telephony/SmsMessage$MessageClass; Landroid/telephony/SmsMessage$NoEmsSupportConfig; Landroid/telephony/SmsMessage; Landroid/telephony/SubscriptionInfo$1; +Landroid/telephony/SubscriptionInfo$Builder; Landroid/telephony/SubscriptionInfo; Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda0; Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda10; @@ -40711,6 +39627,7 @@ Landroid/telephony/TelephonyManager$17; Landroid/telephony/TelephonyManager$18; Landroid/telephony/TelephonyManager$19; Landroid/telephony/TelephonyManager$1; +Landroid/telephony/TelephonyManager$20; Landroid/telephony/TelephonyManager$2; Landroid/telephony/TelephonyManager$3; Landroid/telephony/TelephonyManager$4; @@ -42315,6 +41232,8 @@ Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder; Landroid/view/inputmethod/InputMethodSubtype; Landroid/view/inputmethod/InputMethodSubtypeArray; Landroid/view/inputmethod/InsertGesture; +Landroid/view/inputmethod/JoinOrSplitGesture; +Landroid/view/inputmethod/RemoveSpaceGesture; Landroid/view/inputmethod/SelectGesture; Landroid/view/inputmethod/SparseRectFArray$1; Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder; @@ -42929,6 +41848,7 @@ Landroid/window/OnBackInvokedDispatcher; Landroid/window/ProxyOnBackInvokedDispatcher; Landroid/window/RemoteTransition$1; Landroid/window/RemoteTransition; +Landroid/window/ScreenCapture$CaptureArgs$1; Landroid/window/ScreenCapture$CaptureArgs; Landroid/window/ScreenCapture$DisplayCaptureArgs; Landroid/window/ScreenCapture$LayerCaptureArgs; @@ -43796,6 +42716,7 @@ Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations; Lcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry; Lcom/android/internal/inputmethod/SubtypeLocaleUtils; Lcom/android/internal/jank/DisplayResolutionTracker; +Lcom/android/internal/jank/EventLogTags; Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda0; Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda2; Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda3; @@ -47809,6 +46730,7 @@ Ljava/util/ArrayList$ArrayListSpliterator; Ljava/util/ArrayList$Itr; Ljava/util/ArrayList$ListItr; Ljava/util/ArrayList$SubList$1; +Ljava/util/ArrayList$SubList$2; Ljava/util/ArrayList$SubList; Ljava/util/ArrayList; Ljava/util/ArrayPrefixHelpers$CumulateTask; @@ -47978,6 +46900,7 @@ Ljava/util/ImmutableCollections$ListItr; Ljava/util/ImmutableCollections$ListN; Ljava/util/ImmutableCollections$Map1; Ljava/util/ImmutableCollections$MapN; +Ljava/util/ImmutableCollections$Set12; Ljava/util/ImmutableCollections$SetN; Ljava/util/ImmutableCollections; Ljava/util/InputMismatchException; @@ -49373,6 +48296,7 @@ Lsun/util/calendar/AbstractCalendar; Lsun/util/calendar/BaseCalendar$Date; Lsun/util/calendar/BaseCalendar; Lsun/util/calendar/CalendarDate; +Lsun/util/calendar/CalendarSystem$GregorianHolder; Lsun/util/calendar/CalendarSystem; Lsun/util/calendar/CalendarUtils; Lsun/util/calendar/Era; diff --git a/config/preloaded-classes b/config/preloaded-classes index 0e86d5f6c1f0..f750249f3408 100644 --- a/config/preloaded-classes +++ b/config/preloaded-classes @@ -1181,7 +1181,6 @@ android.app.usage.IUsageStatsManager android.app.usage.StorageStats$1 android.app.usage.StorageStats android.app.usage.StorageStatsManager -android.app.usage.TimeSparseArray android.app.usage.UsageEvents$1 android.app.usage.UsageEvents$Event android.app.usage.UsageEvents @@ -4702,6 +4701,7 @@ android.media.AudioManager$ServiceEventHandlerDelegate android.media.AudioManager android.media.AudioManagerInternal$RingerModeDelegate android.media.AudioManagerInternal +android.media.AudioMetadata android.media.AudioMixPort android.media.AudioMixPortConfig android.media.AudioPatch @@ -4737,9 +4737,11 @@ android.media.AudioSystem android.media.AudioTimestamp android.media.AudioTrack$1 android.media.AudioTrack$2 +android.media.AudioTrack$NativePositionEventHandlerDelegate android.media.AudioTrack$TunerConfiguration android.media.AudioTrack android.media.AudioTrackRoutingProxy +android.media.CallbackUtil$LazyListenerManager android.media.CamcorderProfile android.media.CameraProfile android.media.DecoderCapabilities @@ -4845,7 +4847,6 @@ android.media.MediaCodec$OutputFrame android.media.MediaCodec$ParameterDescriptor android.media.MediaCodec$PersistentSurface android.media.MediaCodec$QueueRequest -android.media.MediaCodec android.media.MediaCodecInfo$AudioCapabilities android.media.MediaCodecInfo$CodecCapabilities android.media.MediaCodecInfo$CodecProfileLevel @@ -4854,10 +4855,10 @@ android.media.MediaCodecInfo$Feature android.media.MediaCodecInfo$VideoCapabilities$$ExternalSyntheticLambda0 android.media.MediaCodecInfo$VideoCapabilities$PerformancePoint android.media.MediaCodecInfo$VideoCapabilities -android.media.MediaCodecInfo android.media.MediaCodecList android.media.MediaCrypto android.media.MediaCryptoException +android.media.MediaDataSource android.media.MediaDescrambler android.media.MediaDescription$1 android.media.MediaDescription$Builder @@ -4942,6 +4943,7 @@ android.media.MediaRouter$Static$1$1 android.media.MediaRouter$Static$1 android.media.MediaRouter$Static$Client$$ExternalSyntheticLambda0 android.media.MediaRouter$Static$Client$$ExternalSyntheticLambda1 +android.media.MediaRouter$Static$Client$1 android.media.MediaRouter$Static$Client android.media.MediaRouter$Static android.media.MediaRouter$UserRouteInfo$SessionVolumeProvider diff --git a/core/api/current.txt b/core/api/current.txt index 9c6dac27f0c9..be3036060905 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -34,6 +34,7 @@ package android { field public static final String BIND_COMPANION_DEVICE_SERVICE = "android.permission.BIND_COMPANION_DEVICE_SERVICE"; field public static final String BIND_CONDITION_PROVIDER_SERVICE = "android.permission.BIND_CONDITION_PROVIDER_SERVICE"; field public static final String BIND_CONTROLS = "android.permission.BIND_CONTROLS"; + field public static final String BIND_CREDENTIAL_PROVIDER_SERVICE = "android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE"; field public static final String BIND_DEVICE_ADMIN = "android.permission.BIND_DEVICE_ADMIN"; field public static final String BIND_DREAM_SERVICE = "android.permission.BIND_DREAM_SERVICE"; field public static final String BIND_INCALL_SERVICE = "android.permission.BIND_INCALL_SERVICE"; @@ -23192,6 +23193,7 @@ package android.media { method public int describeContents(); method @Nullable public String getClientPackageName(); method public int getConnectionState(); + method @NonNull public java.util.Set<java.lang.String> getDeduplicationIds(); method @Nullable public CharSequence getDescription(); method @Nullable public android.os.Bundle getExtras(); method @NonNull public java.util.List<java.lang.String> getFeatures(); @@ -23225,6 +23227,7 @@ package android.media { method @NonNull public android.media.MediaRoute2Info.Builder clearFeatures(); method @NonNull public android.media.MediaRoute2Info.Builder setClientPackageName(@Nullable String); method @NonNull public android.media.MediaRoute2Info.Builder setConnectionState(int); + method @NonNull public android.media.MediaRoute2Info.Builder setDeduplicationIds(@NonNull java.util.Set<java.lang.String>); method @NonNull public android.media.MediaRoute2Info.Builder setDescription(@Nullable CharSequence); method @NonNull public android.media.MediaRoute2Info.Builder setExtras(@Nullable android.os.Bundle); method @NonNull public android.media.MediaRoute2Info.Builder setIconUri(@Nullable android.net.Uri); @@ -39317,6 +39320,7 @@ package android.service.notification { method public final void setNotificationsShown(String[]); method public final void snoozeNotification(String, long); method public final void updateNotificationChannel(@NonNull String, @NonNull android.os.UserHandle, @NonNull android.app.NotificationChannel); + field public static final String ACTION_SETTINGS_HOME = "android.service.notification.action.SETTINGS_HOME"; field public static final int FLAG_FILTER_TYPE_ALERTING = 2; // 0x2 field public static final int FLAG_FILTER_TYPE_CONVERSATIONS = 1; // 0x1 field public static final int FLAG_FILTER_TYPE_ONGOING = 8; // 0x8 @@ -41723,10 +41727,12 @@ package android.telephony { field public static final String KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG = "opportunistic_network_ping_pong_time_long"; field public static final String KEY_PING_TEST_BEFORE_DATA_SWITCH_BOOL = "ping_test_before_data_switch_bool"; field public static final String KEY_PREFER_2G_BOOL = "prefer_2g_bool"; + field public static final String KEY_PREMIUM_CAPABILITY_MAXIMUM_NOTIFICATION_COUNT_INT_ARRAY = "premium_capability_maximum_notification_count_int_array"; field public static final String KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG = "premium_capability_notification_backoff_hysteresis_time_millis_long"; field public static final String KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG = "premium_capability_notification_display_timeout_millis_long"; field public static final String KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG = "premium_capability_purchase_condition_backoff_hysteresis_time_millis_long"; field public static final String KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING = "premium_capability_purchase_url_string"; + field public static final String KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL = "premium_capability_supported_on_lte_bool"; field public static final String KEY_PREVENT_CLIR_ACTIVATION_AND_DEACTIVATION_CODE_BOOL = "prevent_clir_activation_and_deactivation_code_bool"; field public static final String KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY = "radio_restart_failure_causes_int_array"; field public static final String KEY_RCS_CONFIG_SERVER_URL_STRING = "rcs_config_server_url_string"; @@ -41790,6 +41796,8 @@ package android.telephony { field public static final String KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL = "voicemail_notification_persistent_bool"; field public static final String KEY_VOICE_PRIVACY_DISABLE_UI_BOOL = "voice_privacy_disable_ui_bool"; field public static final String KEY_VOLTE_REPLACEMENT_RAT_INT = "volte_replacement_rat_int"; + field public static final String KEY_VONR_ENABLED_BOOL = "vonr_enabled_bool"; + field public static final String KEY_VONR_SETTING_VISIBILITY_BOOL = "vonr_setting_visibility_bool"; field public static final String KEY_VT_UPGRADE_SUPPORTED_FOR_DOWNGRADED_RTT_CALL_BOOL = "vt_upgrade_supported_for_downgraded_rtt_call"; field public static final String KEY_VVM_CELLULAR_DATA_REQUIRED_BOOL = "vvm_cellular_data_required_bool"; field public static final String KEY_VVM_CLIENT_PREFIX_STRING = "vvm_client_prefix_string"; @@ -44003,7 +44011,7 @@ package android.telephony { field public static final int PHONE_TYPE_GSM = 1; // 0x1 field public static final int PHONE_TYPE_NONE = 0; // 0x0 field public static final int PHONE_TYPE_SIP = 3; // 0x3 - field public static final int PREMIUM_CAPABILITY_REALTIME_INTERACTIVE_TRAFFIC = 1; // 0x1 + field public static final int PREMIUM_CAPABILITY_PRIORITIZE_LATENCY = 34; // 0x22 field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS = 4; // 0x4 field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED = 3; // 0x3 field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED = 7; // 0x7 @@ -44011,12 +44019,13 @@ package android.telephony { field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED = 10; // 0xa field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED = 13; // 0xd field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE = 12; // 0xc + field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA = 14; // 0xe + field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN = 5; // 0x5 field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED = 11; // 0xb field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS = 1; // 0x1 field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED = 2; // 0x2 field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT = 9; // 0x9 field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED = 6; // 0x6 - field public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_DISABLED = 5; // 0x5 field public static final int SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION = 2; // 0x2 field public static final int SET_OPPORTUNISTIC_SUB_NO_OPPORTUNISTIC_SUB_AVAILABLE = 3; // 0x3 field public static final int SET_OPPORTUNISTIC_SUB_REMOTE_SERVICE_EXCEPTION = 4; // 0x4 @@ -45398,7 +45407,7 @@ package android.text { method public final int getParagraphLeft(int); method public final int getParagraphRight(int); method public float getPrimaryHorizontal(int); - method @Nullable public android.util.Range<java.lang.Integer> getRangeForRect(@NonNull android.graphics.RectF, @NonNull android.text.SegmentFinder, @NonNull android.text.Layout.TextInclusionStrategy); + method @Nullable public int[] getRangeForRect(@NonNull android.graphics.RectF, @NonNull android.text.SegmentFinder, @NonNull android.text.Layout.TextInclusionStrategy); method public float getSecondaryHorizontal(int); method public void getSelectionPath(int, int, android.graphics.Path); method public final float getSpacingAdd(); @@ -50934,6 +50943,7 @@ package android.view { method public int getScaledDoubleTapSlop(); method public int getScaledEdgeSlop(); method public int getScaledFadingEdgeLength(); + method public int getScaledHandwritingGestureLineMargin(); method public int getScaledHandwritingSlop(); method public float getScaledHorizontalScrollFactor(); method public int getScaledHoverSlop(); diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 7c1c8ba7410c..c170f74b41c3 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -401,6 +401,7 @@ package android { public static final class R.dimen { field public static final int config_restrictedIconSize = 17104903; // 0x1050007 + field public static final int config_viewConfigurationHandwritingGestureLineMargin; } public static final class R.drawable { @@ -7076,6 +7077,7 @@ package android.media.tv.tuner { method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_SHARED_FILTER) public static android.media.tv.tuner.filter.SharedFilter openSharedFilter(@NonNull android.content.Context, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.filter.SharedFilterCallback); method @Nullable public android.media.tv.tuner.filter.TimeFilter openTimeFilter(); method public int removeOutputPid(@IntRange(from=0) int); + method public int requestFrontendById(int); method public int scan(@NonNull android.media.tv.tuner.frontend.FrontendSettings, int, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.ScanCallback); method public int setLnaEnabled(boolean); method public int setMaxNumberOfFrontends(int, @IntRange(from=0) int); @@ -11979,7 +11981,7 @@ package android.service.voice { public final class HotwordAudioStream implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.media.AudioFormat getAudioFormat(); - method @NonNull public android.os.ParcelFileDescriptor getAudioStream(); + method @NonNull public android.os.ParcelFileDescriptor getAudioStreamParcelFileDescriptor(); method @NonNull public android.os.PersistableBundle getMetadata(); method @Nullable public android.media.AudioTimestamp getTimestamp(); method public void writeToParcel(@NonNull android.os.Parcel, int); @@ -11990,7 +11992,7 @@ package android.service.voice { ctor public HotwordAudioStream.Builder(@NonNull android.media.AudioFormat, @NonNull android.os.ParcelFileDescriptor); method @NonNull public android.service.voice.HotwordAudioStream build(); method @NonNull public android.service.voice.HotwordAudioStream.Builder setAudioFormat(@NonNull android.media.AudioFormat); - method @NonNull public android.service.voice.HotwordAudioStream.Builder setAudioStream(@NonNull android.os.ParcelFileDescriptor); + method @NonNull public android.service.voice.HotwordAudioStream.Builder setAudioStreamParcelFileDescriptor(@NonNull android.os.ParcelFileDescriptor); method @NonNull public android.service.voice.HotwordAudioStream.Builder setMetadata(@NonNull android.os.PersistableBundle); method @NonNull public android.service.voice.HotwordAudioStream.Builder setTimestamp(@NonNull android.media.AudioTimestamp); } diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 1e4023eeee18..186e5be92524 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -134,7 +134,7 @@ package android.app { method public static void resumeAppSwitches() throws android.os.RemoteException; method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public void scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int); method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}) public void setStopUserOnSwitch(int); - method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public boolean startUserInBackgroundOnSecondaryDisplay(int, int); + method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}) public boolean startUserInBackgroundOnSecondaryDisplay(int, int); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public boolean stopUser(int, boolean); method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public boolean updateMccMncConfiguration(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.DUMP) public void waitForBroadcastIdle(); diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 576b572dcc9a..cb7b478d73b4 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -4401,7 +4401,7 @@ public class ActivityManager { */ @TestApi @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, - android.Manifest.permission.CREATE_USERS}) + android.Manifest.permission.INTERACT_ACROSS_USERS}) public boolean startUserInBackgroundOnSecondaryDisplay(@UserIdInt int userId, int displayId) { if (!UserManager.isUsersOnSecondaryDisplaysEnabled()) { diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java index 81aa6da3d6a2..b8030702c244 100644 --- a/core/java/android/app/ActivityManagerInternal.java +++ b/core/java/android/app/ActivityManagerInternal.java @@ -420,10 +420,11 @@ public abstract class ActivityManagerInternal { public abstract int broadcastIntentInPackage(String packageName, @Nullable String featureId, int uid, int realCallingUid, int realCallingPid, Intent intent, String resolvedType, - IIntentReceiver resultTo, int resultCode, String resultData, Bundle resultExtras, - String requiredPermission, Bundle bOptions, boolean serialized, boolean sticky, - @UserIdInt int userId, boolean allowBackgroundActivityStarts, - @Nullable IBinder backgroundActivityStartsToken, @Nullable int[] broadcastAllowList); + IApplicationThread resultToThread, IIntentReceiver resultTo, int resultCode, + String resultData, Bundle resultExtras, String requiredPermission, Bundle bOptions, + boolean serialized, boolean sticky, @UserIdInt int userId, + boolean allowBackgroundActivityStarts, @Nullable IBinder backgroundActivityStartsToken, + @Nullable int[] broadcastAllowList); public abstract ComponentName startServiceInPackage(int uid, Intent service, String resolvedType, boolean fgRequired, String callingPackage, diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 7a9f3c1c4c76..67d441611e63 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -658,7 +658,8 @@ public final class ActivityThread extends ClientTransactionHandler "Received config update for non-existing activity"); } activity.mMainThread.handleActivityConfigurationChanged( - ActivityClientRecord.this, overrideConfig, newDisplayId); + ActivityClientRecord.this, overrideConfig, newDisplayId, + false /* alwaysReportChange */); } @Override @@ -5859,13 +5860,13 @@ public final class ActivityThread extends ClientTransactionHandler * @return {@link Configuration} instance sent to client, null if not sent. */ private Configuration performConfigurationChangedForActivity(ActivityClientRecord r, - Configuration newBaseConfig, int displayId) { + Configuration newBaseConfig, int displayId, boolean alwaysReportChange) { r.tmpConfig.setTo(newBaseConfig); if (r.overrideConfig != null) { r.tmpConfig.updateFrom(r.overrideConfig); } final Configuration reportedConfig = performActivityConfigurationChanged(r.activity, - r.tmpConfig, r.overrideConfig, displayId); + r.tmpConfig, r.overrideConfig, displayId, alwaysReportChange); freeTextLayoutCachesIfNeeded(r.activity.mCurrentConfig.diff(r.tmpConfig)); return reportedConfig; } @@ -5881,7 +5882,8 @@ public final class ActivityThread extends ClientTransactionHandler * @return Configuration sent to client, null if no changes and not moved to different display. */ private Configuration performActivityConfigurationChanged(Activity activity, - Configuration newConfig, Configuration amOverrideConfig, int displayId) { + Configuration newConfig, Configuration amOverrideConfig, int displayId, + boolean alwaysReportChange) { final IBinder activityToken = activity.getActivityToken(); // WindowConfiguration differences aren't considered as public, check it separately. @@ -5900,9 +5902,9 @@ public final class ActivityThread extends ClientTransactionHandler final boolean shouldUpdateResources = hasPublicResConfigChange || shouldUpdateResources(activityToken, currentResConfig, newConfig, amOverrideConfig, movedToDifferentDisplay, hasPublicResConfigChange); - final boolean shouldReportChange = shouldReportChange(activity.mCurrentConfig, newConfig, - r != null ? r.mSizeConfigurations : null, - activity.mActivityInfo.getRealConfigChanged()); + final boolean shouldReportChange = shouldReportChange( + activity.mCurrentConfig, newConfig, r != null ? r.mSizeConfigurations : null, + activity.mActivityInfo.getRealConfigChanged(), alwaysReportChange); // Nothing significant, don't proceed with updating and reporting. if (!shouldUpdateResources && !shouldReportChange) { return null; @@ -5962,12 +5964,18 @@ public final class ActivityThread extends ClientTransactionHandler @VisibleForTesting public static boolean shouldReportChange(@Nullable Configuration currentConfig, @NonNull Configuration newConfig, @Nullable SizeConfigurationBuckets sizeBuckets, - int handledConfigChanges) { + int handledConfigChanges, boolean alwaysReportChange) { final int publicDiff = currentConfig.diffPublicOnly(newConfig); // Don't report the change if there's no public diff between current and new config. if (publicDiff == 0) { return false; } + + // Report the change regardless if the changes across size-config-buckets. + if (alwaysReportChange) { + return true; + } + final int diffWithBucket = SizeConfigurationBuckets.filterDiff(publicDiff, currentConfig, newConfig, sizeBuckets); // Compare to the diff which filter the change without crossing size buckets with @@ -6094,6 +6102,18 @@ public final class ActivityThread extends ClientTransactionHandler } } + @Override + public void handleActivityConfigurationChanged(ActivityClientRecord r, + @NonNull Configuration overrideConfig, int displayId) { + handleActivityConfigurationChanged(r, overrideConfig, displayId, + // This is the only place that uses alwaysReportChange=true. The entry point should + // be from ActivityConfigurationChangeItem or MoveToDisplayItem, so the server side + // has confirmed the activity should handle the configuration instead of relaunch. + // If Activity#onConfigurationChanged is called unexpectedly, then we can know it is + // something wrong from server side. + true /* alwaysReportChange */); + } + /** * Handle new activity configuration and/or move to a different display. This method is a noop * if {@link #updatePendingActivityConfiguration(IBinder, Configuration)} has been @@ -6104,9 +6124,8 @@ public final class ActivityThread extends ClientTransactionHandler * @param displayId Id of the display where activity was moved to, -1 if there was no move and * value didn't change. */ - @Override - public void handleActivityConfigurationChanged(ActivityClientRecord r, - @NonNull Configuration overrideConfig, int displayId) { + void handleActivityConfigurationChanged(ActivityClientRecord r, + @NonNull Configuration overrideConfig, int displayId, boolean alwaysReportChange) { synchronized (mPendingOverrideConfigs) { final Configuration pendingOverrideConfig = mPendingOverrideConfigs.get(r.token); if (overrideConfig.isOtherSeqNewer(pendingOverrideConfig)) { @@ -6150,7 +6169,8 @@ public final class ActivityThread extends ClientTransactionHandler } final Configuration reportedConfig = performConfigurationChangedForActivity(r, mConfigurationController.getCompatConfiguration(), - movedToDifferentDisplay ? displayId : r.activity.getDisplayId()); + movedToDifferentDisplay ? displayId : r.activity.getDisplayId(), + alwaysReportChange); // Notify the ViewRootImpl instance about configuration changes. It may have initiated this // update to make sure that resources are updated before updating itself. if (viewRoot != null) { diff --git a/core/java/android/app/ApplicationExitInfo.java b/core/java/android/app/ApplicationExitInfo.java index a8d8c75601aa..5517c57d1f1e 100644 --- a/core/java/android/app/ApplicationExitInfo.java +++ b/core/java/android/app/ApplicationExitInfo.java @@ -1196,7 +1196,8 @@ public final class ApplicationExitInfo implements Parcelable { return sb.toString(); } - private static String reasonCodeToString(@Reason int reason) { + /** @hide */ + public static String reasonCodeToString(@Reason int reason) { switch (reason) { case REASON_EXIT_SELF: return "EXIT_SELF"; diff --git a/core/java/android/app/BroadcastOptions.java b/core/java/android/app/BroadcastOptions.java index c2df8022af0f..cc4650a7df71 100644 --- a/core/java/android/app/BroadcastOptions.java +++ b/core/java/android/app/BroadcastOptions.java @@ -16,6 +16,7 @@ package android.app; +import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; @@ -34,6 +35,10 @@ import android.os.PowerExemptionManager; import android.os.PowerExemptionManager.ReasonCode; import android.os.PowerExemptionManager.TempAllowListType; +import com.android.internal.util.Preconditions; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.Objects; /** @@ -57,8 +62,11 @@ public class BroadcastOptions extends ComponentOptions { private long mRequireCompatChangeId = CHANGE_INVALID; private boolean mRequireCompatChangeEnabled = true; private boolean mIsAlarmBroadcast = false; + private boolean mIsInteractiveBroadcast = false; private long mIdForResponseEvent; private @Nullable IntentFilter mRemoveMatchingFilter; + private @DeliveryGroupPolicy int mDeliveryGroupPolicy; + private @Nullable String mDeliveryGroupKey; /** * Change ID which is invalid. @@ -161,6 +169,13 @@ public class BroadcastOptions extends ComponentOptions { "android:broadcast.is_alarm"; /** + * Corresponds to {@link #setInteractiveBroadcast(boolean)} + * @hide + */ + public static final String KEY_INTERACTIVE_BROADCAST = + "android:broadcast.is_interactive"; + + /** * @hide * @deprecated Use {@link android.os.PowerExemptionManager# * TEMPORARY_ALLOW_LIST_TYPE_FOREGROUND_SERVICE_ALLOWED} instead. @@ -190,6 +205,46 @@ public class BroadcastOptions extends ComponentOptions { private static final String KEY_REMOVE_MATCHING_FILTER = "android:broadcast.removeMatchingFilter"; + /** + * Corresponds to {@link #setDeliveryGroupPolicy(int)}. + */ + private static final String KEY_DELIVERY_GROUP_POLICY = + "android:broadcast.deliveryGroupPolicy"; + + /** + * Corresponds to {@link #setDeliveryGroupKey(String, String)}. + */ + private static final String KEY_DELIVERY_GROUP_KEY = + "android:broadcast.deliveryGroupKey"; + + /** + * The list of delivery group policies which specify how multiple broadcasts belonging to + * the same delivery group has to be handled. + * @hide + */ + @IntDef(flag = true, prefix = { "DELIVERY_GROUP_POLICY_" }, value = { + DELIVERY_GROUP_POLICY_ALL, + DELIVERY_GROUP_POLICY_MOST_RECENT, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface DeliveryGroupPolicy {} + + /** + * Delivery group policy that indicates that all the broadcasts in the delivery group + * need to be delivered as is. + * + * @hide + */ + public static final int DELIVERY_GROUP_POLICY_ALL = 0; + + /** + * Delivery group policy that indicates that only the most recent broadcast in the delivery + * group need to be delivered and the rest can be dropped. + * + * @hide + */ + public static final int DELIVERY_GROUP_POLICY_MOST_RECENT = 1; + public static BroadcastOptions makeBasic() { BroadcastOptions opts = new BroadcastOptions(); return opts; @@ -234,8 +289,12 @@ public class BroadcastOptions extends ComponentOptions { mRequireCompatChangeEnabled = opts.getBoolean(KEY_REQUIRE_COMPAT_CHANGE_ENABLED, true); mIdForResponseEvent = opts.getLong(KEY_ID_FOR_RESPONSE_EVENT); mIsAlarmBroadcast = opts.getBoolean(KEY_ALARM_BROADCAST, false); + mIsInteractiveBroadcast = opts.getBoolean(KEY_INTERACTIVE_BROADCAST, false); mRemoveMatchingFilter = opts.getParcelable(KEY_REMOVE_MATCHING_FILTER, IntentFilter.class); + mDeliveryGroupPolicy = opts.getInt(KEY_DELIVERY_GROUP_POLICY, + DELIVERY_GROUP_POLICY_ALL); + mDeliveryGroupKey = opts.getString(KEY_DELIVERY_GROUP_KEY); } /** @@ -549,6 +608,27 @@ public class BroadcastOptions extends ComponentOptions { } /** + * When set, this broadcast will be understood as having originated from + * some direct interaction by the user such as a notification tap or button + * press. Only the OS itself may use this option. + * @hide + * @param broadcastIsInteractive + * @see #isInteractiveBroadcast() + */ + public void setInteractiveBroadcast(boolean broadcastIsInteractive) { + mIsInteractiveBroadcast = broadcastIsInteractive; + } + + /** + * Did this broadcast originate with a direct user interaction? + * @return true if this broadcast is the result of an interaction, false otherwise + * @hide + */ + public boolean isInteractiveBroadcast() { + return mIsInteractiveBroadcast; + } + + /** * Did this broadcast originate from a push message from the server? * * @return true if this broadcast is a push message, false otherwise. @@ -639,6 +719,41 @@ public class BroadcastOptions extends ComponentOptions { } /** + * Set delivery group policy for this broadcast to specify how multiple broadcasts belonging to + * the same delivery group has to be handled. + * + * @hide + */ + public void setDeliveryGroupPolicy(@DeliveryGroupPolicy int policy) { + mDeliveryGroupPolicy = policy; + } + + /** @hide */ + public @DeliveryGroupPolicy int getDeliveryGroupPolicy() { + return mDeliveryGroupPolicy; + } + + /** + * Set namespace and key to identify the delivery group that this broadcast belongs to. + * If no namespace and key is set, then by default {@link Intent#filterEquals(Intent)} will be + * used to identify the delivery group. + * + * @hide + */ + public void setDeliveryGroupKey(@NonNull String namespace, @NonNull String key) { + Preconditions.checkArgument(!namespace.contains("/"), + "namespace should not contain '/'"); + Preconditions.checkArgument(!key.contains("/"), + "key should not contain '/'"); + mDeliveryGroupKey = namespace + "/" + key; + } + + /** @hide */ + public String getDeliveryGroupKey() { + return mDeliveryGroupKey; + } + + /** * Returns the created options as a Bundle, which can be passed to * {@link android.content.Context#sendBroadcast(android.content.Intent) * Context.sendBroadcast(Intent)} and related methods. @@ -658,6 +773,9 @@ public class BroadcastOptions extends ComponentOptions { if (mIsAlarmBroadcast) { b.putBoolean(KEY_ALARM_BROADCAST, true); } + if (mIsInteractiveBroadcast) { + b.putBoolean(KEY_INTERACTIVE_BROADCAST, true); + } if (mMinManifestReceiverApiLevel != 0) { b.putInt(KEY_MIN_MANIFEST_RECEIVER_API_LEVEL, mMinManifestReceiverApiLevel); } @@ -686,6 +804,12 @@ public class BroadcastOptions extends ComponentOptions { if (mRemoveMatchingFilter != null) { b.putParcelable(KEY_REMOVE_MATCHING_FILTER, mRemoveMatchingFilter); } + if (mDeliveryGroupPolicy != DELIVERY_GROUP_POLICY_ALL) { + b.putInt(KEY_DELIVERY_GROUP_POLICY, mDeliveryGroupPolicy); + } + if (mDeliveryGroupKey != null) { + b.putString(KEY_DELIVERY_GROUP_KEY, mDeliveryGroupKey); + } return b.isEmpty() ? null : b; } } diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl index 6404a1f59135..7475ef8ec577 100644 --- a/core/java/android/app/IActivityManager.aidl +++ b/core/java/android/app/IActivityManager.aidl @@ -556,7 +556,8 @@ interface IActivityManager { void startConfirmDeviceCredentialIntent(in Intent intent, in Bundle options); @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) void sendIdleJobTrigger(); - int sendIntentSender(in IIntentSender target, in IBinder whitelistToken, int code, + int sendIntentSender(in IApplicationThread caller, in IIntentSender target, + in IBinder whitelistToken, int code, in Intent intent, in String resolvedType, in IIntentReceiver finishedReceiver, in String requiredPermission, in Bundle options); boolean isBackgroundRestricted(in String packageName); diff --git a/core/java/android/app/LocaleManager.java b/core/java/android/app/LocaleManager.java index 794c6946f7a8..be53a6249788 100644 --- a/core/java/android/app/LocaleManager.java +++ b/core/java/android/app/LocaleManager.java @@ -127,6 +127,7 @@ public class LocaleManager { * <p>This API can be used by an app's installer * (per {@link android.content.pm.InstallSourceInfo#getInstallingPackageName}) to retrieve * the app's locales. + * <p>This API can be used by the current input method to retrieve locales of another packages. * All other cases require {@code android.Manifest.permission#READ_APP_SPECIFIC_LOCALES}. * Apps should generally retrieve their own locales via their in-process LocaleLists, * or by calling {@link #getApplicationLocales()}. diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 74eb1c526777..f9ef3cc7e1f6 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -8467,8 +8467,8 @@ public class Notification implements Parcelable } int maxAvatarSize = resources.getDimensionPixelSize( - isLowRam ? R.dimen.notification_person_icon_max_size - : R.dimen.notification_person_icon_max_size_low_ram); + isLowRam ? R.dimen.notification_person_icon_max_size_low_ram + : R.dimen.notification_person_icon_max_size); if (mUser != null && mUser.getIcon() != null) { mUser.getIcon().scaleDownIfNecessary(maxAvatarSize, maxAvatarSize); } diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java index bc78df59ff12..db47a4cdefc0 100644 --- a/core/java/android/app/PendingIntent.java +++ b/core/java/android/app/PendingIntent.java @@ -1009,7 +1009,9 @@ public final class PendingIntent implements Parcelable { options = activityOptions.toBundle(); } - return ActivityManager.getService().sendIntentSender( + final IApplicationThread app = ActivityThread.currentActivityThread() + .getApplicationThread(); + return ActivityManager.getService().sendIntentSender(app, mTarget, mWhitelistToken, code, intent, resolvedType, onFinished != null ? new FinishedDispatcher(this, onFinished, handler) diff --git a/core/java/android/app/PropertyInvalidatedCache.java b/core/java/android/app/PropertyInvalidatedCache.java index a51b9d3956df..27f9f54d9522 100644 --- a/core/java/android/app/PropertyInvalidatedCache.java +++ b/core/java/android/app/PropertyInvalidatedCache.java @@ -1406,6 +1406,17 @@ public class PropertyInvalidatedCache<Query, Result> { } /** + * Return the number of entries in the cache. This is used for testing and has package-only + * visibility. + * @hide + */ + public int size() { + synchronized (mLock) { + return mCache.size(); + } + } + + /** * Returns a list of caches alive at the current time. */ @GuardedBy("sGlobalLock") @@ -1612,8 +1623,12 @@ public class PropertyInvalidatedCache<Query, Result> { * @hide */ public static void onTrimMemory() { - for (PropertyInvalidatedCache pic : getActiveCaches()) { - pic.clear(); + ArrayList<PropertyInvalidatedCache> activeCaches; + synchronized (sGlobalLock) { + activeCaches = getActiveCaches(); + } + for (int i = 0; i < activeCaches.size(); i++) { + activeCaches.get(i).clear(); } } } diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java index ea80369983a5..95e9c22373de 100644 --- a/core/java/android/app/WallpaperManager.java +++ b/core/java/android/app/WallpaperManager.java @@ -2078,6 +2078,21 @@ public class WallpaperManager { } /** + * Set the live wallpaper for the given screen(s). + * + * This can only be called by packages with android.permission.SET_WALLPAPER_COMPONENT + * permission. The caller must hold the INTERACT_ACROSS_USERS_FULL permission to change + * another user's wallpaper. + * + * @hide + */ + @RequiresPermission(android.Manifest.permission.SET_WALLPAPER_COMPONENT) + public boolean setWallpaperComponentWithFlags(@NonNull ComponentName name, + @SetWallpaperFlags int which) { + return setWallpaperComponent(name); + } + + /** * Set the display position of the current wallpaper within any larger space, when * that wallpaper is visible behind the given window. The X and Y offsets * are floating point numbers ranging from 0 to 1, representing where the diff --git a/core/java/android/app/backup/BackupManager.java b/core/java/android/app/backup/BackupManager.java index 88a7c0f910d3..d2c797255b0d 100644 --- a/core/java/android/app/backup/BackupManager.java +++ b/core/java/android/app/backup/BackupManager.java @@ -29,7 +29,6 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Build; -import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.RemoteException; @@ -1123,18 +1122,4 @@ public class BackupManager { }); } } - - private class BackupManagerMonitorWrapper extends IBackupManagerMonitor.Stub { - final BackupManagerMonitor mMonitor; - - BackupManagerMonitorWrapper(BackupManagerMonitor monitor) { - mMonitor = monitor; - } - - @Override - public void onEvent(final Bundle event) throws RemoteException { - mMonitor.onEvent(event); - } - } - } diff --git a/core/java/android/app/backup/BackupManagerMonitorWrapper.java b/core/java/android/app/backup/BackupManagerMonitorWrapper.java new file mode 100644 index 000000000000..0b189958ef0a --- /dev/null +++ b/core/java/android/app/backup/BackupManagerMonitorWrapper.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.app.backup; + +import android.os.Bundle; +import android.os.RemoteException; + +/** + * Wrapper around {@link BackupManagerMonitor} that helps with IPC between the caller of backup + * APIs and the backup service. + * + * The caller implements {@link BackupManagerMonitor} and passes it into framework APIs that run on + * the caller's process. Those framework APIs will then wrap it around this class when doing the + * actual IPC. + */ +class BackupManagerMonitorWrapper extends IBackupManagerMonitor.Stub { + private final BackupManagerMonitor mMonitor; + + BackupManagerMonitorWrapper(BackupManagerMonitor monitor) { + mMonitor = monitor; + } + + @Override + public void onEvent(final Bundle event) throws RemoteException { + mMonitor.onEvent(event); + } +} diff --git a/core/java/android/app/backup/BackupRestoreEventLogger.java b/core/java/android/app/backup/BackupRestoreEventLogger.java new file mode 100644 index 000000000000..b789b38c966e --- /dev/null +++ b/core/java/android/app/backup/BackupRestoreEventLogger.java @@ -0,0 +1,280 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.app.backup; + +import android.annotation.IntDef; +import android.annotation.NonNull; +import android.annotation.Nullable; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +// TODO(b/244436184): Make this @SystemApi +/** + * Class to log B&R stats for each data type that is backed up and restored by the calling app. + * + * The logger instance is designed to accept a limited number of unique + * {link @BackupRestoreDataType} values, as determined by the underlying implementation. Apps are + * expected to have a small pre-defined set of data type values they use. Attempts to log too many + * unique values will be rejected. + * + * @hide + */ +public class BackupRestoreEventLogger { + /** + * Max number of unique data types for which an instance of this logger can store info. Attempts + * to use more distinct data type values will be rejected. + */ + public static final int DATA_TYPES_ALLOWED = 15; + + /** + * Operation types for which this logger can be used. + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + OperationType.BACKUP, + OperationType.RESTORE + }) + @interface OperationType { + int BACKUP = 1; + int RESTORE = 2; + } + + /** + * Denotes that the annotated element identifies a data type as required by the logging methods + * of {@code BackupRestoreEventLogger} + */ + @Retention(RetentionPolicy.SOURCE) + public @interface BackupRestoreDataType {} + + /** + * Denotes that the annotated element identifies an error type as required by the logging + * methods of {@code BackupRestoreEventLogger} + */ + @Retention(RetentionPolicy.SOURCE) + public @interface BackupRestoreError {} + + private final int mOperationType; + + /** + * @param operationType type of the operation for which logging will be performed. See + * {@link OperationType}. Attempts to use logging methods that don't match + * the specified operation type will be rejected (e.g. use backup methods + * for a restore logger and vice versa). + */ + public BackupRestoreEventLogger(@OperationType int operationType) { + mOperationType = operationType; + } + + /** + * Report progress during a backup operation. Call this method for each distinct data type that + * your {@code BackupAgent} implementation handles for any items of that type that have been + * successfully backed up. Repeated calls to this method with the same {@code dataType} will + * increase the total count of items associated with this data type by {@code count}. + * + * This method should be called from a {@link BackupAgent} implementation during an ongoing + * backup operation. + * + * @param dataType the type of data being backed. + * @param count number of items of the given type that have been successfully backed up. + * + * @return boolean, indicating whether the log has been accepted. + */ + public boolean logItemsBackedUp(@NonNull @BackupRestoreDataType String dataType, int count) { + return true; + } + + /** + * Report errors during a backup operation. Call this method whenever items of a certain data + * type failed to back up. Repeated calls to this method with the same {@code dataType} / + * {@code error} will increase the total count of items associated with this data type / error + * by {@code count}. + * + * This method should be called from a {@link BackupAgent} implementation during an ongoing + * backup operation. + * + * @param dataType the type of data being backed. + * @param count number of items of the given type that have failed to back up. + * @param error optional, the error that has caused the failure. + * + * @return boolean, indicating whether the log has been accepted. + */ + public boolean logItemsBackupFailed(@NonNull @BackupRestoreDataType String dataType, int count, + @Nullable @BackupRestoreError String error) { + return true; + } + + /** + * Report metadata associated with a data type that is currently being backed up, e.g. name of + * the selected wallpaper file / package. Repeated calls to this method with the same {@code + * dataType} will overwrite the previously supplied {@code metaData} value. + * + * The logger does not store or transmit the provided metadata value. Instead, it’s replaced + * with the SHA-256 hash of the provided string. + * + * This method should be called from a {@link BackupAgent} implementation during an ongoing + * backup operation. + * + * @param dataType the type of data being backed up. + * @param metaData the metadata associated with the data type. + * + * @return boolean, indicating whether the log has been accepted. + */ + public boolean logBackupMetaData(@NonNull @BackupRestoreDataType String dataType, + @NonNull String metaData) { + return true; + } + + /** + * Report progress during a restore operation. Call this method for each distinct data type that + * your {@code BackupAgent} implementation handles if any items of that type have been + * successfully restored. Repeated calls to this method with the same {@code dataType} will + * increase the total count of items associated with this data type by {@code count}. + * + * This method should either be called from a {@link BackupAgent} implementation during an + * ongoing restore operation or during any delayed restore actions the package had scheduled + * earlier (e.g. complete the restore once a certain dependency becomes available on the + * device). + * + * @param dataType the type of data being restored. + * @param count number of items of the given type that have been successfully restored. + * + * @return boolean, indicating whether the log has been accepted. + */ + public boolean logItemsRestored(@NonNull @BackupRestoreDataType String dataType, int count) { + return true; + } + + /** + * Report errors during a restore operation. Call this method whenever items of a certain data + * type failed to restore. Repeated calls to this method with the same {@code dataType} / + * {@code error} will increase the total count of items associated with this data type / error + * by {@code count}. + * + * This method should either be called from a {@link BackupAgent} implementation during an + * ongoing restore operation or during any delayed restore actions the package had scheduled + * earlier (e.g. complete the restore once a certain dependency becomes available on the + * device). + * + * @param dataType the type of data being restored. + * @param count number of items of the given type that have failed to restore. + * @param error optional, the error that has caused the failure. + * + * @return boolean, indicating whether the log has been accepted. + */ + public boolean logItemsRestoreFailed(@NonNull @BackupRestoreDataType String dataType, int count, + @Nullable @BackupRestoreError String error) { + return true; + } + + /** + * Report metadata associated with a data type that is currently being restored, e.g. name of + * the selected wallpaper file / package. Repeated calls to this method with the same + * {@code dataType} will overwrite the previously supplied {@code metaData} value. + * + * The logger does not store or transmit the provided metadata value. Instead, it’s replaced + * with the SHA-256 hash of the provided string. + * + * This method should either be called from a {@link BackupAgent} implementation during an + * ongoing restore operation or during any delayed restore actions the package had scheduled + * earlier (e.g. complete the restore once a certain dependency becomes available on the + * device). + * + * @param dataType the type of data being restored. + * @param metadata the metadata associated with the data type. + * + * @return boolean, indicating whether the log has been accepted. + */ + public boolean logRestoreMetadata(@NonNull @BackupRestoreDataType String dataType, + @NonNull String metadata) { + return true; + } + + /** + * Get the contents of this logger. This method should only be used by B&R code in Android + * Framework. + * + * @hide + */ + public List<DataTypeResult> getLoggingResults() { + return Collections.emptyList(); + } + + /** + * Get the operation type for which this logger was created. This method should only be used + * by B&R code in Android Framework. + * + * @hide + */ + public @OperationType int getOperationType() { + return mOperationType; + } + + /** + * Encapsulate logging results for a single data type. + */ + public static class DataTypeResult { + @BackupRestoreDataType + private final String mDataType; + private final int mSuccessCount; + private final Map<String, Integer> mErrors; + private final byte[] mMetadataHash; + + public DataTypeResult(String dataType, int successCount, + Map<String, Integer> errors, byte[] metadataHash) { + mDataType = dataType; + mSuccessCount = successCount; + mErrors = errors; + mMetadataHash = metadataHash; + } + + @NonNull + @BackupRestoreDataType + public String getDataType() { + return mDataType; + } + + /** + * @return number of items of the given data type that have been successfully backed up or + * restored. + */ + public int getSuccessCount() { + return mSuccessCount; + } + + /** + * @return mapping of {@link BackupRestoreError} to the count of items that are affected by + * the error. + */ + @NonNull + public Map<String, Integer> getErrors() { + return mErrors; + } + + /** + * @return SHA-256 hash of the metadata or {@code null} of no metadata has been logged for + * this data type. + */ + @Nullable + public byte[] getMetadataHash() { + return mMetadataHash; + } + } +} diff --git a/core/java/android/app/backup/BackupTransport.java b/core/java/android/app/backup/BackupTransport.java index f6de72b43de6..90e9df47bc4b 100644 --- a/core/java/android/app/backup/BackupTransport.java +++ b/core/java/android/app/backup/BackupTransport.java @@ -656,6 +656,20 @@ public class BackupTransport { } /** + * Ask the transport for a {@link IBackupManagerMonitor} instance which will be used by the + * framework to report logging events back to the transport. + * + * <p>Backups requested from outside the framework may pass in a monitor with the request, + * however backups initiated by the framework will call this method to retrieve one. + * + * @hide + */ + @Nullable + public BackupManagerMonitor getBackupManagerMonitor() { + return null; + } + + /** * Bridge between the actual IBackupTransport implementation and the stable API. If the * binder interface needs to change, we use this layer to translate so that we can * (if appropriate) decouple those framework-side changes from the BackupTransport @@ -952,5 +966,15 @@ public class BackupTransport { callback.onOperationCompleteWithStatus(BackupTransport.TRANSPORT_ERROR); } } + + @Override + public void getBackupManagerMonitor(AndroidFuture<IBackupManagerMonitor> resultFuture) { + try { + BackupManagerMonitor result = BackupTransport.this.getBackupManagerMonitor(); + resultFuture.complete(new BackupManagerMonitorWrapper(result)); + } catch (RuntimeException e) { + resultFuture.cancel(/* mayInterruptIfRunning */ true); + } + } } } diff --git a/core/java/android/app/backup/RestoreSession.java b/core/java/android/app/backup/RestoreSession.java index 933670415f2e..fe68ec193642 100644 --- a/core/java/android/app/backup/RestoreSession.java +++ b/core/java/android/app/backup/RestoreSession.java @@ -20,7 +20,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.content.Context; -import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.RemoteException; @@ -393,17 +392,4 @@ public class RestoreSession { mHandler.obtainMessage(MSG_RESTORE_FINISHED, error, 0)); } } - - private class BackupManagerMonitorWrapper extends IBackupManagerMonitor.Stub { - final BackupManagerMonitor mMonitor; - - BackupManagerMonitorWrapper(BackupManagerMonitor monitor) { - mMonitor = monitor; - } - - @Override - public void onEvent(final Bundle event) throws RemoteException { - mMonitor.onEvent(event); - } - } } diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index cc303fb1f413..24e47bf9e47c 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -418,14 +418,7 @@ public class AppWidgetHost { AppWidgetHostView view = onCreateView(context, appWidgetId, appWidget); view.setInteractionHandler(mInteractionHandler); view.setAppWidget(appWidgetId, appWidget); - addListener(appWidgetId, view); - RemoteViews views; - try { - views = sService.getAppWidgetViews(mContextOpPackageName, appWidgetId); - } catch (RemoteException e) { - throw new RuntimeException("system server dead?", e); - } - view.updateAppWidget(views); + setListener(appWidgetId, view); return view; } @@ -513,13 +506,19 @@ public class AppWidgetHost { * The AppWidgetHost retains a pointer to the newly-created listener. * @param appWidgetId The ID of the app widget for which to add the listener * @param listener The listener interface that deals with actions towards the widget view - * * @hide */ - public void addListener(int appWidgetId, @NonNull AppWidgetHostListener listener) { + public void setListener(int appWidgetId, @NonNull AppWidgetHostListener listener) { synchronized (mListeners) { mListeners.put(appWidgetId, listener); } + RemoteViews views = null; + try { + views = sService.getAppWidgetViews(mContextOpPackageName, appWidgetId); + } catch (RemoteException e) { + throw new RuntimeException("system server dead?", e); + } + listener.updateAppWidget(views); } /** diff --git a/core/java/android/companion/virtual/IVirtualDevice.aidl b/core/java/android/companion/virtual/IVirtualDevice.aidl index e7f191665302..295d69d4b27d 100644 --- a/core/java/android/companion/virtual/IVirtualDevice.aidl +++ b/core/java/android/companion/virtual/IVirtualDevice.aidl @@ -88,6 +88,7 @@ interface IVirtualDevice { IBinder token, in Point screenSize); void unregisterInputDevice(IBinder token); + int getInputDeviceId(IBinder token); boolean sendDpadKeyEvent(IBinder token, in VirtualKeyEvent event); boolean sendKeyEvent(IBinder token, in VirtualKeyEvent event); boolean sendButtonEvent(IBinder token, in VirtualMouseButtonEvent event); diff --git a/core/java/android/content/IntentSender.java b/core/java/android/content/IntentSender.java index b1252fd0b21f..8853b705d67e 100644 --- a/core/java/android/content/IntentSender.java +++ b/core/java/android/content/IntentSender.java @@ -18,6 +18,8 @@ package android.content; import android.annotation.Nullable; import android.app.ActivityManager; +import android.app.ActivityThread; +import android.app.IApplicationThread; import android.app.ActivityManager.PendingIntentInfo; import android.compat.annotation.UnsupportedAppUsage; import android.os.Bundle; @@ -194,7 +196,9 @@ public class IntentSender implements Parcelable { String resolvedType = intent != null ? intent.resolveTypeIfNeeded(context.getContentResolver()) : null; - int res = ActivityManager.getService().sendIntentSender(mTarget, mWhitelistToken, + final IApplicationThread app = ActivityThread.currentActivityThread() + .getApplicationThread(); + int res = ActivityManager.getService().sendIntentSender(app, mTarget, mWhitelistToken, code, intent, resolvedType, onFinished != null ? new FinishedDispatcher(this, onFinished, handler) diff --git a/core/java/com/android/internal/util/function/pooled/PooledFunction.java b/core/java/android/credentials/ui/Constants.java index 1f166fafc7e6..aeeede744188 100644 --- a/core/java/com/android/internal/util/function/pooled/PooledFunction.java +++ b/core/java/android/credentials/ui/Constants.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 The Android Open Source Project + * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,23 +14,20 @@ * limitations under the License. */ -package com.android.internal.util.function.pooled; - -import java.util.function.Function; +package android.credentials.ui; /** - * {@link Function} + {@link PooledLambda} + * Constants for the ui protocol that doesn't fit into other individual data structures. * - * @see PooledLambda * @hide */ -public interface PooledFunction<A, R> extends PooledLambda, Function<A, R> { +public class Constants { /** - * Ignores the result - */ - PooledConsumer<A> asConsumer(); + * The intent extra key for the {@code ResultReceiver} object when launching the UX + * activities. + */ + public static final String EXTRA_RESULT_RECEIVER = + "android.credentials.ui.extra.RESULT_RECEIVER"; - /** @inheritDoc */ - PooledFunction<A, R> recycleOnUse(); } diff --git a/core/java/android/credentials/ui/IntentFactory.java b/core/java/android/credentials/ui/IntentFactory.java new file mode 100644 index 000000000000..9a038d137434 --- /dev/null +++ b/core/java/android/credentials/ui/IntentFactory.java @@ -0,0 +1,68 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.credentials.ui; + +import android.content.ComponentName; +import android.content.Intent; +import android.os.Parcel; +import android.os.ResultReceiver; + +import java.util.ArrayList; + +/** + * Helpers for generating the intents and related extras parameters to launch the UI activities. + * + * @hide + */ +public class IntentFactory { + /** Generate a new launch intent to the . */ + public static Intent newIntent(RequestInfo requestInfo, + ArrayList<ProviderData> providerDataList, ResultReceiver resultReceiver) { + Intent intent = new Intent(); + // TODO: define these as proper config strings. + String activityName = "com.androidauth.tatiaccountselector/.CredentialSelectorActivity"; + // String activityName = "com.android.credentialmanager/.CredentialSelectorActivity"; + intent.setComponent(ComponentName.unflattenFromString(activityName)); + + intent.putParcelableArrayListExtra( + ProviderData.EXTRA_PROVIDER_DATA_LIST, providerDataList); + intent.putExtra(RequestInfo.EXTRA_REQUEST_INFO, requestInfo); + intent.putExtra(Constants.EXTRA_RESULT_RECEIVER, + toIpcFriendlyResultReceiver(resultReceiver)); + + return intent; + } + + /** + * Convert an instance of a "locally-defined" ResultReceiver to an instance of + * {@link android.os.ResultReceiver} itself, which the receiving process will be able to + * unmarshall. + */ + private static <T extends ResultReceiver> ResultReceiver toIpcFriendlyResultReceiver( + T resultReceiver) { + final Parcel parcel = Parcel.obtain(); + resultReceiver.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + + final ResultReceiver ipcFriendly = ResultReceiver.CREATOR.createFromParcel(parcel); + parcel.recycle(); + + return ipcFriendly; + } + + private IntentFactory() {} +} diff --git a/core/java/android/credentials/ui/ProviderData.java b/core/java/android/credentials/ui/ProviderData.java index 18e6ba430589..35e12fa43b28 100644 --- a/core/java/android/credentials/ui/ProviderData.java +++ b/core/java/android/credentials/ui/ProviderData.java @@ -16,8 +16,10 @@ package android.credentials.ui; +import android.annotation.CurrentTimeMillisLong; import android.annotation.NonNull; import android.annotation.Nullable; +import android.graphics.drawable.Icon; import android.os.Parcel; import android.os.Parcelable; @@ -41,7 +43,11 @@ public class ProviderData implements Parcelable { "android.credentials.ui.extra.PROVIDER_DATA_LIST"; @NonNull - private final String mPackageName; + private final String mProviderId; + @NonNull + private final String mProviderDisplayName; + @NonNull + private final Icon mIcon; @NonNull private final List<Entry> mCredentialEntries; @NonNull @@ -49,21 +55,36 @@ public class ProviderData implements Parcelable { @Nullable private final Entry mAuthenticationEntry; + private final @CurrentTimeMillisLong long mLastUsedTimeMillis; + public ProviderData( - @NonNull String packageName, - @NonNull List<Entry> credentialEntries, - @NonNull List<Entry> actionChips, - @Nullable Entry authenticationEntry) { - mPackageName = packageName; + @NonNull String providerId, @NonNull String providerDisplayName, + @NonNull Icon icon, @NonNull List<Entry> credentialEntries, + @NonNull List<Entry> actionChips, @Nullable Entry authenticationEntry, + @CurrentTimeMillisLong long lastUsedTimeMillis) { + mProviderId = providerId; + mProviderDisplayName = providerDisplayName; + mIcon = icon; mCredentialEntries = credentialEntries; mActionChips = actionChips; mAuthenticationEntry = authenticationEntry; + mLastUsedTimeMillis = lastUsedTimeMillis; + } + + /** Returns the unique provider id. */ + @NonNull + public String getProviderId() { + return mProviderId; + } + + @NonNull + public String getProviderDisplayName() { + return mProviderDisplayName; } - /** Returns the provider package name. */ @NonNull - public String getPackageName() { - return mPackageName; + public Icon getIcon() { + return mIcon; } @NonNull @@ -81,10 +102,23 @@ public class ProviderData implements Parcelable { return mAuthenticationEntry; } + /** Returns the time when the provider was last used. */ + public @CurrentTimeMillisLong long getLastUsedTimeMillis() { + return mLastUsedTimeMillis; + } + protected ProviderData(@NonNull Parcel in) { - String packageName = in.readString8(); - mPackageName = packageName; - AnnotationValidations.validate(NonNull.class, null, mPackageName); + String providerId = in.readString8(); + mProviderId = providerId; + AnnotationValidations.validate(NonNull.class, null, mProviderId); + + String providerDisplayName = in.readString8(); + mProviderDisplayName = providerDisplayName; + AnnotationValidations.validate(NonNull.class, null, mProviderDisplayName); + + Icon icon = in.readTypedObject(Icon.CREATOR); + mIcon = icon; + AnnotationValidations.validate(NonNull.class, null, mIcon); List<Entry> credentialEntries = new ArrayList<>(); in.readTypedList(credentialEntries, Entry.CREATOR); @@ -98,14 +132,20 @@ public class ProviderData implements Parcelable { Entry authenticationEntry = in.readTypedObject(Entry.CREATOR); mAuthenticationEntry = authenticationEntry; + + long lastUsedTimeMillis = in.readLong(); + mLastUsedTimeMillis = lastUsedTimeMillis; } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { - dest.writeString8(mPackageName); + dest.writeString8(mProviderId); + dest.writeString8(mProviderDisplayName); + dest.writeTypedObject(mIcon, flags); dest.writeTypedList(mCredentialEntries); dest.writeTypedList(mActionChips); dest.writeTypedObject(mAuthenticationEntry, flags); + dest.writeLong(mLastUsedTimeMillis); } @Override @@ -124,4 +164,83 @@ public class ProviderData implements Parcelable { return new ProviderData[size]; } }; + + /** + * Builder for {@link ProviderData}. + * + * @hide + */ + public static class Builder { + private @NonNull String mProviderId; + private @NonNull String mProviderDisplayName; + private @NonNull Icon mIcon; + private @NonNull List<Entry> mCredentialEntries = new ArrayList<>(); + private @NonNull List<Entry> mActionChips = new ArrayList<>(); + private @Nullable Entry mAuthenticationEntry = null; + private @CurrentTimeMillisLong long mLastUsedTimeMillis = 0L; + + /** Constructor with required properties. */ + public Builder(@NonNull String providerId, @NonNull String providerDisplayName, + @NonNull Icon icon) { + mProviderId = providerId; + mProviderDisplayName = providerDisplayName; + mIcon = icon; + } + + /** Sets the unique provider id. */ + @NonNull + public Builder setProviderId(@NonNull String providerId) { + mProviderId = providerId; + return this; + } + + /** Sets the provider display name to be displayed to the user. */ + @NonNull + public Builder setProviderDisplayName(@NonNull String providerDisplayName) { + mProviderDisplayName = providerDisplayName; + return this; + } + + /** Sets the provider icon to be displayed to the user. */ + @NonNull + public Builder setIcon(@NonNull Icon icon) { + mIcon = icon; + return this; + } + + /** Sets the list of save / get credential entries to be displayed to the user. */ + @NonNull + public Builder setCredentialEntries(@NonNull List<Entry> credentialEntries) { + mCredentialEntries = credentialEntries; + return this; + } + + /** Sets the list of action chips to be displayed to the user. */ + @NonNull + public Builder setActionChips(@NonNull List<Entry> actionChips) { + mActionChips = actionChips; + return this; + } + + /** Sets the authentication entry to be displayed to the user. */ + @NonNull + public Builder setAuthenticationEntry(@Nullable Entry authenticationEntry) { + mAuthenticationEntry = authenticationEntry; + return this; + } + + /** Sets the time when the provider was last used. */ + @NonNull + public Builder setLastUsedTimeMillis(@CurrentTimeMillisLong long lastUsedTimeMillis) { + mLastUsedTimeMillis = lastUsedTimeMillis; + return this; + } + + /** Builds a {@link ProviderData}. */ + @NonNull + public ProviderData build() { + return new ProviderData(mProviderId, mProviderDisplayName, mIcon, mCredentialEntries, + mActionChips, mAuthenticationEntry, mLastUsedTimeMillis); + } + } } diff --git a/core/java/android/credentials/ui/RequestInfo.java b/core/java/android/credentials/ui/RequestInfo.java index 5de6d73945eb..eddb519051a9 100644 --- a/core/java/android/credentials/ui/RequestInfo.java +++ b/core/java/android/credentials/ui/RequestInfo.java @@ -36,12 +36,6 @@ public class RequestInfo implements Parcelable { */ public static final @NonNull String EXTRA_REQUEST_INFO = "android.credentials.ui.extra.REQUEST_INFO"; - /** - * The intent extra key for the {@code ResultReceiver} object when launching the UX - * activities. - */ - public static final @NonNull String EXTRA_RESULT_RECEIVER = - "android.credentials.ui.extra.RESULT_RECEIVER"; /** Type value for an executeGetCredential request. */ public static final @NonNull String TYPE_GET = "android.credentials.ui.TYPE_GET"; diff --git a/core/java/android/credentials/ui/UserSelectionResult.java b/core/java/android/credentials/ui/UserSelectionResult.java index 0927fb830a0b..2ac559381c6e 100644 --- a/core/java/android/credentials/ui/UserSelectionResult.java +++ b/core/java/android/credentials/ui/UserSelectionResult.java @@ -43,11 +43,16 @@ public class UserSelectionResult implements Parcelable { @NonNull private final IBinder mRequestToken; + @NonNull + private final String mProviderId; + // TODO: consider switching to string or other types, depending on the service implementation. private final int mEntryId; - public UserSelectionResult(@NonNull IBinder requestToken, int entryId) { + public UserSelectionResult(@NonNull IBinder requestToken, @NonNull String providerId, + int entryId) { mRequestToken = requestToken; + mProviderId = providerId; mEntryId = entryId; } @@ -57,23 +62,33 @@ public class UserSelectionResult implements Parcelable { return mRequestToken; } + /** Returns provider package name whose entry was selected by the user. */ + @NonNull + public String getProviderId() { + return mProviderId; + } + /** Returns the id of the visual entry that the user selected. */ - public int geEntryId() { + public int getEntryId() { return mEntryId; } protected UserSelectionResult(@NonNull Parcel in) { IBinder requestToken = in.readStrongBinder(); + String providerId = in.readString8(); int entryId = in.readInt(); mRequestToken = requestToken; AnnotationValidations.validate(NonNull.class, null, mRequestToken); + mProviderId = providerId; + AnnotationValidations.validate(NonNull.class, null, mProviderId); mEntryId = entryId; } @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeStrongBinder(mRequestToken); + dest.writeString8(mProviderId); dest.writeInt(mEntryId); } diff --git a/core/java/android/hardware/biometrics/BiometricManager.java b/core/java/android/hardware/biometrics/BiometricManager.java index 3f139f02efaf..2eb8cb9f2f81 100644 --- a/core/java/android/hardware/biometrics/BiometricManager.java +++ b/core/java/android/hardware/biometrics/BiometricManager.java @@ -212,6 +212,26 @@ public class BiometricManager { * @see android.security.keystore.KeyGenParameterSpec.Builder */ int DEVICE_CREDENTIAL = 1 << 15; + + } + + /** + * @hide + * returns a string representation of an authenticator type. + */ + @NonNull public static String authenticatorToStr(@Authenticators.Types int authenticatorType) { + switch(authenticatorType) { + case Authenticators.BIOMETRIC_STRONG: + return "BIOMETRIC_STRONG"; + case Authenticators.BIOMETRIC_WEAK: + return "BIOMETRIC_WEAK"; + case Authenticators.BIOMETRIC_CONVENIENCE: + return "BIOMETRIC_CONVENIENCE"; + case Authenticators.DEVICE_CREDENTIAL: + return "DEVICE_CREDENTIAL"; + default: + return "Unknown authenticator type: " + authenticatorType; + } } /** diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index dff2f7ed1cf3..50551feed522 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -133,9 +133,6 @@ public final class CameraManager { private HandlerThread mHandlerThread; private Handler mHandler; private FoldStateListener mFoldStateListener; - @GuardedBy("mLock") - private ArrayList<WeakReference<DeviceStateListener>> mDeviceStateListeners = new ArrayList<>(); - private boolean mFoldedDeviceState; /** * @hide @@ -144,31 +141,39 @@ public final class CameraManager { void onDeviceStateChanged(boolean folded); } - private final class FoldStateListener implements DeviceStateManager.DeviceStateCallback { + private static final class FoldStateListener implements DeviceStateManager.DeviceStateCallback { private final int[] mFoldedDeviceStates; + private ArrayList<WeakReference<DeviceStateListener>> mDeviceStateListeners = + new ArrayList<>(); + private boolean mFoldedDeviceState; + public FoldStateListener(Context context) { mFoldedDeviceStates = context.getResources().getIntArray( com.android.internal.R.array.config_foldedDeviceStates); } - private void handleStateChange(int state) { + private synchronized void handleStateChange(int state) { boolean folded = ArrayUtils.contains(mFoldedDeviceStates, state); - synchronized (mLock) { - mFoldedDeviceState = folded; - ArrayList<WeakReference<DeviceStateListener>> invalidListeners = new ArrayList<>(); - for (WeakReference<DeviceStateListener> listener : mDeviceStateListeners) { - DeviceStateListener callback = listener.get(); - if (callback != null) { - callback.onDeviceStateChanged(folded); - } else { - invalidListeners.add(listener); - } - } - if (!invalidListeners.isEmpty()) { - mDeviceStateListeners.removeAll(invalidListeners); + + mFoldedDeviceState = folded; + ArrayList<WeakReference<DeviceStateListener>> invalidListeners = new ArrayList<>(); + for (WeakReference<DeviceStateListener> listener : mDeviceStateListeners) { + DeviceStateListener callback = listener.get(); + if (callback != null) { + callback.onDeviceStateChanged(folded); + } else { + invalidListeners.add(listener); } } + if (!invalidListeners.isEmpty()) { + mDeviceStateListeners.removeAll(invalidListeners); + } + } + + public synchronized void addDeviceStateListener(DeviceStateListener listener) { + listener.onDeviceStateChanged(mFoldedDeviceState); + mDeviceStateListeners.add(new WeakReference<>(listener)); } @Override @@ -192,9 +197,8 @@ public final class CameraManager { public void registerDeviceStateListener(@NonNull CameraCharacteristics chars) { synchronized (mLock) { DeviceStateListener listener = chars.getDeviceStateListener(); - listener.onDeviceStateChanged(mFoldedDeviceState); if (mFoldStateListener != null) { - mDeviceStateListeners.add(new WeakReference<>(listener)); + mFoldStateListener.addDeviceStateListener(listener); } } } diff --git a/core/java/android/hardware/input/VirtualDpad.java b/core/java/android/hardware/input/VirtualDpad.java index d7cda9ec33cf..4d61553ccb52 100644 --- a/core/java/android/hardware/input/VirtualDpad.java +++ b/core/java/android/hardware/input/VirtualDpad.java @@ -24,7 +24,6 @@ import android.os.IBinder; import android.os.RemoteException; import android.view.KeyEvent; -import java.io.Closeable; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; @@ -39,7 +38,7 @@ import java.util.Set; * @hide */ @SystemApi -public class VirtualDpad implements Closeable { +public class VirtualDpad extends VirtualInputDevice { private final Set<Integer> mSupportedKeyCodes = Collections.unmodifiableSet( @@ -50,23 +49,10 @@ public class VirtualDpad implements Closeable { KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_DPAD_CENTER))); - private final IVirtualDevice mVirtualDevice; - private final IBinder mToken; /** @hide */ public VirtualDpad(IVirtualDevice virtualDevice, IBinder token) { - mVirtualDevice = virtualDevice; - mToken = token; - } - - @Override - @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) - public void close() { - try { - mVirtualDevice.unregisterInputDevice(mToken); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + super(virtualDevice, token); } /** diff --git a/core/java/android/hardware/input/VirtualInputDevice.java b/core/java/android/hardware/input/VirtualInputDevice.java new file mode 100644 index 000000000000..772ba8e36c5e --- /dev/null +++ b/core/java/android/hardware/input/VirtualInputDevice.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.input; + +import android.annotation.RequiresPermission; +import android.companion.virtual.IVirtualDevice; +import android.os.IBinder; +import android.os.RemoteException; + +import java.io.Closeable; + +/** + * The base class for all virtual input devices such as VirtualKeyboard, VirtualMouse. + * This implements the shared functionality such as closing the device and keeping track of + * identifiers. + * + * @hide + */ +abstract class VirtualInputDevice implements Closeable { + + /** + * The virtual device to which this VirtualInputDevice belongs to. + */ + protected final IVirtualDevice mVirtualDevice; + + /** + * The token used to uniquely identify the virtual input device. + */ + protected final IBinder mToken; + + /** @hide */ + VirtualInputDevice( + IVirtualDevice virtualDevice, IBinder token) { + mVirtualDevice = virtualDevice; + mToken = token; + } + + /** + * @return The device id of this device. + * @hide + */ + public int getInputDeviceId() { + try { + return mVirtualDevice.getInputDeviceId(mToken); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + @Override + @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) + public void close() { + try { + mVirtualDevice.unregisterInputDevice(mToken); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } +} diff --git a/core/java/android/hardware/input/VirtualKeyboard.java b/core/java/android/hardware/input/VirtualKeyboard.java index 901401fea32c..e569dbf6b6b6 100644 --- a/core/java/android/hardware/input/VirtualKeyboard.java +++ b/core/java/android/hardware/input/VirtualKeyboard.java @@ -24,8 +24,6 @@ import android.os.IBinder; import android.os.RemoteException; import android.view.KeyEvent; -import java.io.Closeable; - /** * A virtual keyboard representing a key input mechanism on a remote device, such as a built-in * keyboard on a laptop, a software keyboard on a tablet, or a keypad on a TV remote control. @@ -36,26 +34,13 @@ import java.io.Closeable; * @hide */ @SystemApi -public class VirtualKeyboard implements Closeable { +public class VirtualKeyboard extends VirtualInputDevice { private final int mUnsupportedKeyCode = KeyEvent.KEYCODE_DPAD_CENTER; - private final IVirtualDevice mVirtualDevice; - private final IBinder mToken; /** @hide */ public VirtualKeyboard(IVirtualDevice virtualDevice, IBinder token) { - mVirtualDevice = virtualDevice; - mToken = token; - } - - @Override - @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) - public void close() { - try { - mVirtualDevice.unregisterInputDevice(mToken); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + super(virtualDevice, token); } /** diff --git a/core/java/android/hardware/input/VirtualMouse.java b/core/java/android/hardware/input/VirtualMouse.java index 6e2b56a2b5bc..7eba2b8bfdf0 100644 --- a/core/java/android/hardware/input/VirtualMouse.java +++ b/core/java/android/hardware/input/VirtualMouse.java @@ -25,8 +25,6 @@ import android.os.IBinder; import android.os.RemoteException; import android.view.MotionEvent; -import java.io.Closeable; - /** * A virtual mouse representing a relative input mechanism on a remote device, such as a mouse or * trackpad. @@ -37,25 +35,11 @@ import java.io.Closeable; * @hide */ @SystemApi -public class VirtualMouse implements Closeable { - - private final IVirtualDevice mVirtualDevice; - private final IBinder mToken; +public class VirtualMouse extends VirtualInputDevice { /** @hide */ public VirtualMouse(IVirtualDevice virtualDevice, IBinder token) { - mVirtualDevice = virtualDevice; - mToken = token; - } - - @Override - @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) - public void close() { - try { - mVirtualDevice.unregisterInputDevice(mToken); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + super(virtualDevice, token); } /** diff --git a/core/java/android/hardware/input/VirtualTouchscreen.java b/core/java/android/hardware/input/VirtualTouchscreen.java index c8d602acaff6..0d07753b9b60 100644 --- a/core/java/android/hardware/input/VirtualTouchscreen.java +++ b/core/java/android/hardware/input/VirtualTouchscreen.java @@ -23,8 +23,6 @@ import android.companion.virtual.IVirtualDevice; import android.os.IBinder; import android.os.RemoteException; -import java.io.Closeable; - /** * A virtual touchscreen representing a touch-based display input mechanism on a remote device. * @@ -34,25 +32,10 @@ import java.io.Closeable; * @hide */ @SystemApi -public class VirtualTouchscreen implements Closeable { - - private final IVirtualDevice mVirtualDevice; - private final IBinder mToken; - +public class VirtualTouchscreen extends VirtualInputDevice { /** @hide */ public VirtualTouchscreen(IVirtualDevice virtualDevice, IBinder token) { - mVirtualDevice = virtualDevice; - mToken = token; - } - - @Override - @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) - public void close() { - try { - mVirtualDevice.unregisterInputDevice(mToken); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + super(virtualDevice, token); } /** diff --git a/core/java/android/hardware/radio/ProgramList.java b/core/java/android/hardware/radio/ProgramList.java index f2525d17e30a..ade9fd68ade8 100644 --- a/core/java/android/hardware/radio/ProgramList.java +++ b/core/java/android/hardware/radio/ProgramList.java @@ -160,6 +160,7 @@ public final class ProgramList implements AutoCloseable { * Disables list updates and releases all resources. */ public void close() { + OnCloseListener onCompleteListenersCopied = null; synchronized (mLock) { if (mIsClosed) return; mIsClosed = true; @@ -167,10 +168,14 @@ public final class ProgramList implements AutoCloseable { mListCallbacks.clear(); mOnCompleteListeners.clear(); if (mOnCloseListener != null) { - mOnCloseListener.onClose(); + onCompleteListenersCopied = mOnCloseListener; mOnCloseListener = null; } } + + if (onCompleteListenersCopied != null) { + onCompleteListenersCopied.onClose(); + } } void apply(Chunk chunk) { diff --git a/core/java/android/inputmethodservice/IRemoteInputConnectionInvoker.java b/core/java/android/inputmethodservice/IRemoteInputConnectionInvoker.java index 891da2466bff..4f09beec81dd 100644 --- a/core/java/android/inputmethodservice/IRemoteInputConnectionInvoker.java +++ b/core/java/android/inputmethodservice/IRemoteInputConnectionInvoker.java @@ -777,7 +777,7 @@ final class IRemoteInputConnectionInvoker { } /** - * Invokes {@link IRemoteInputConnection#replaceText(InputConnectionCommandHeader, int, int, + * Invokes {@code IRemoteInputConnection#replaceText(InputConnectionCommandHeader, int, int, * CharSequence, TextAttribute)}. * * @param start the character index where the replacement should start. @@ -788,6 +788,8 @@ final class IRemoteInputConnectionInvoker { * that this means you can't position the cursor within the text. * @param text the text to replace. This may include styles. * @param textAttribute The extra information about the text. This value may be null. + * @return {@code true} if the invocation is completed without {@link RemoteException}, {@code + * false} otherwise. */ @AnyThread public boolean replaceText( diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index 4df013949de5..d3a6323230a5 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -1246,8 +1246,21 @@ public class Binder implements IBinder { // If the call was {@link IBinder#FLAG_ONEWAY} then these exceptions // disappear into the ether. final boolean tagEnabled = Trace.isTagEnabled(Trace.TRACE_TAG_AIDL); + final boolean hasFullyQualifiedName = getMaxTransactionId() > 0; final String transactionTraceName; - if (tagEnabled) { + + if (tagEnabled && hasFullyQualifiedName) { + // If tracing enabled and we have a fully qualified name, fetch the name + transactionTraceName = getTransactionTraceName(code); + } else if (tagEnabled && isStackTrackingEnabled()) { + // If tracing is enabled and we *don't* have a fully qualified name, fetch the + // 'best effort' name only for stack tracking. This works around noticeable perf impact + // on low latency binder calls (<100us). The tracing call itself is between (1-10us) and + // the perf impact can be quite noticeable while benchmarking such binder calls. + // The primary culprits are ContentProviders and Cursors which convenienty don't + // autogenerate their AIDL and hence will not have a fully qualified name. + // + // TODO(b/253426478): Relax this constraint after a more robust fix transactionTraceName = getTransactionTraceName(code); } else { transactionTraceName = null; diff --git a/core/java/android/os/PowerManagerInternal.java b/core/java/android/os/PowerManagerInternal.java index f62cc879cce3..8afd6de235a0 100644 --- a/core/java/android/os/PowerManagerInternal.java +++ b/core/java/android/os/PowerManagerInternal.java @@ -341,4 +341,10 @@ public abstract class PowerManagerInternal { * device is not awake. */ public abstract void nap(long eventTime, boolean allowWake); + + /** + * Returns true if ambient display is suppressed by any app with any token. This method will + * return false if ambient display is not available. + */ + public abstract boolean isAmbientDisplaySuppressed(); } diff --git a/core/java/android/service/credentials/CredentialProviderInfo.java b/core/java/android/service/credentials/CredentialProviderInfo.java new file mode 100644 index 000000000000..e3f8cb7bb23e --- /dev/null +++ b/core/java/android/service/credentials/CredentialProviderInfo.java @@ -0,0 +1,184 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.service.credentials; + +import android.Manifest; +import android.annotation.NonNull; +import android.annotation.UserIdInt; +import android.app.AppGlobals; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.content.pm.ServiceInfo; +import android.content.res.Resources; +import android.os.RemoteException; +import android.util.Log; +import android.util.Slog; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * {@link ServiceInfo} and meta-data about a credential provider. + * + * @hide + */ +public final class CredentialProviderInfo { + private static final String TAG = "CredentialProviderInfo"; + + @NonNull + private final ServiceInfo mServiceInfo; + @NonNull + private final List<String> mCapabilities; + + // TODO: Move the two strings below to CredentialProviderService when ready. + private static final String CAPABILITY_META_DATA_KEY = "android.credentials.capabilities"; + private static final String SERVICE_INTERFACE = + "android.service.credentials.CredentialProviderService"; + + + /** + * Constructs an information instance of the credential provider. + * + * @param context The context object + * @param serviceComponent The serviceComponent of the provider service + * @param userId The android userId for which the current process is running + * @throws PackageManager.NameNotFoundException If provider service is not found + */ + public CredentialProviderInfo(@NonNull Context context, + @NonNull ComponentName serviceComponent, int userId) + throws PackageManager.NameNotFoundException { + this(context, getServiceInfoOrThrow(serviceComponent, userId)); + } + + private CredentialProviderInfo(@NonNull Context context, @NonNull ServiceInfo serviceInfo) { + if (!Manifest.permission.BIND_CREDENTIAL_PROVIDER_SERVICE.equals(serviceInfo.permission)) { + Log.i(TAG, "Credential Provider Service from : " + serviceInfo.packageName + + "does not require permission" + + Manifest.permission.BIND_CREDENTIAL_PROVIDER_SERVICE); + throw new SecurityException("Service does not require the expected permission : " + + Manifest.permission.BIND_CREDENTIAL_PROVIDER_SERVICE); + } + mServiceInfo = serviceInfo; + mCapabilities = new ArrayList<>(); + populateProviderCapabilities(context); + } + + private void populateProviderCapabilities(@NonNull Context context) { + if (mServiceInfo.applicationInfo.metaData == null) { + return; + } + try { + final int resourceId = mServiceInfo.applicationInfo.metaData.getInt( + CAPABILITY_META_DATA_KEY); + String[] capabilities = context.getResources().getStringArray(resourceId); + if (capabilities == null) { + Log.w(TAG, "No capabilities found for provider: " + mServiceInfo.packageName); + return; + } + for (String capability : capabilities) { + if (capability.isEmpty()) { + Log.w(TAG, "Skipping empty capability"); + continue; + } + mCapabilities.add(capability); + } + } catch (Resources.NotFoundException e) { + Log.w(TAG, "Exception while populating provider capabilities: " + e.getMessage()); + } + } + + private static ServiceInfo getServiceInfoOrThrow(@NonNull ComponentName serviceComponent, + int userId) throws PackageManager.NameNotFoundException { + try { + ServiceInfo si = AppGlobals.getPackageManager().getServiceInfo( + serviceComponent, + PackageManager.GET_META_DATA, + userId); + if (si != null) { + return si; + } + } catch (RemoteException e) { + Slog.v(TAG, e.getMessage()); + } + throw new PackageManager.NameNotFoundException(serviceComponent.toString()); + } + + /** + * Returns true if the service supports the given {@code credentialType}, false otherwise. + */ + @NonNull + public boolean hasCapability(@NonNull String credentialType) { + return mCapabilities.contains(credentialType); + } + + /** Returns the service info. */ + @NonNull + public ServiceInfo getServiceInfo() { + return mServiceInfo; + } + + /** Returns an immutable list of capabilities this provider service can support. */ + @NonNull + public List<String> getCapabilities() { + return Collections.unmodifiableList(mCapabilities); + } + + /** + * Returns the valid credential provider services available for the user with the + * given {@code userId}. + */ + public static List<CredentialProviderInfo> getAvailableServices(@NonNull Context context, + @UserIdInt int userId) { + final List<CredentialProviderInfo> services = new ArrayList<>(); + + final List<ResolveInfo> resolveInfos = + context.getPackageManager().queryIntentServicesAsUser( + new Intent(SERVICE_INTERFACE), + PackageManager.GET_META_DATA, + userId); + for (ResolveInfo resolveInfo : resolveInfos) { + final ServiceInfo serviceInfo = resolveInfo.serviceInfo; + try { + services.add(new CredentialProviderInfo(context, serviceInfo)); + } catch (SecurityException e) { + Log.w(TAG, "Error getting info for " + serviceInfo + ": " + e); + } + } + return services; + } + + /** + * Returns the valid credential provider services available for the user, that can + * support the given {@code credentialType}. + */ + public static List<CredentialProviderInfo> getAvailableServicesForCapability( + Context context, @UserIdInt int userId, String credentialType) { + List<CredentialProviderInfo> servicesForCapability = new ArrayList<>(); + final List<CredentialProviderInfo> services = getAvailableServices(context, userId); + + for (CredentialProviderInfo service : services) { + if (service.hasCapability(credentialType)) { + servicesForCapability.add(service); + } + } + return servicesForCapability; + } +} diff --git a/core/java/android/service/dreams/DreamActivity.java b/core/java/android/service/dreams/DreamActivity.java index f6a7c8eb8c4b..a2fa1392b079 100644 --- a/core/java/android/service/dreams/DreamActivity.java +++ b/core/java/android/service/dreams/DreamActivity.java @@ -44,6 +44,8 @@ import android.text.TextUtils; public class DreamActivity extends Activity { static final String EXTRA_CALLBACK = "binder"; static final String EXTRA_DREAM_TITLE = "title"; + @Nullable + private DreamService.DreamActivityCallbacks mCallback; public DreamActivity() {} @@ -57,11 +59,19 @@ public class DreamActivity extends Activity { } final Bundle extras = getIntent().getExtras(); - final DreamService.DreamActivityCallback callback = - (DreamService.DreamActivityCallback) extras.getBinder(EXTRA_CALLBACK); + mCallback = (DreamService.DreamActivityCallbacks) extras.getBinder(EXTRA_CALLBACK); - if (callback != null) { - callback.onActivityCreated(this); + if (mCallback != null) { + mCallback.onActivityCreated(this); } } + + @Override + public void onDestroy() { + if (mCallback != null) { + mCallback.onActivityDestroyed(); + } + + super.onDestroy(); + } } diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index 3c1fef02f9ba..cb0dce91589e 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -1295,7 +1295,7 @@ public class DreamService extends Service implements Window.Callback { Intent i = new Intent(this, DreamActivity.class); i.setPackage(getApplicationContext().getPackageName()); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - i.putExtra(DreamActivity.EXTRA_CALLBACK, new DreamActivityCallback(mDreamToken)); + i.putExtra(DreamActivity.EXTRA_CALLBACK, new DreamActivityCallbacks(mDreamToken)); final ServiceInfo serviceInfo = fetchServiceInfo(this, new ComponentName(this, getClass())); i.putExtra(DreamActivity.EXTRA_DREAM_TITLE, fetchDreamLabel(this, serviceInfo)); @@ -1488,10 +1488,10 @@ public class DreamService extends Service implements Window.Callback { } /** @hide */ - final class DreamActivityCallback extends Binder { + final class DreamActivityCallbacks extends Binder { private final IBinder mActivityDreamToken; - DreamActivityCallback(IBinder token) { + DreamActivityCallbacks(IBinder token) { mActivityDreamToken = token; } @@ -1516,6 +1516,12 @@ public class DreamService extends Service implements Window.Callback { mActivity = activity; onWindowCreated(activity.getWindow()); } + + // If DreamActivity is destroyed, wake up from Dream. + void onActivityDestroyed() { + mActivity = null; + onDestroy(); + } } /** diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java index fb52ed2b20fa..cfc79e4fef66 100644 --- a/core/java/android/service/notification/NotificationListenerService.java +++ b/core/java/android/service/notification/NotificationListenerService.java @@ -391,6 +391,15 @@ public abstract class NotificationListenerService extends Service { */ public static final int NOTIFICATION_CHANNEL_OR_GROUP_DELETED = 3; + /** + * An optional activity intent action that shows additional settings for what notifications + * should be processed by this notification listener service. If defined, the OS may link to + * this activity from the system notification listener service filter settings page. + */ + @SdkConstant(SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_SETTINGS_HOME = + "android.service.notification.action.SETTINGS_HOME"; + private final Object mLock = new Object(); @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) diff --git a/core/java/android/service/voice/HotwordAudioStream.java b/core/java/android/service/voice/HotwordAudioStream.java index 18375add95a7..1c4d14c919a8 100644 --- a/core/java/android/service/voice/HotwordAudioStream.java +++ b/core/java/android/service/voice/HotwordAudioStream.java @@ -57,10 +57,10 @@ public final class HotwordAudioStream implements Parcelable { * the audio until the stream is shutdown by the {@link HotwordDetectionService}. */ @NonNull - private final ParcelFileDescriptor mAudioStream; + private final ParcelFileDescriptor mAudioStreamParcelFileDescriptor; /** - * The timestamp when the {@link #getAudioStream()} was captured by the Audio platform. + * The timestamp when the audio stream was captured by the Audio platform. * * <p> * The {@link HotwordDetectionService} egressing the audio is the owner of the underlying @@ -74,6 +74,8 @@ public final class HotwordAudioStream implements Parcelable { * {@link HotwordDetectedResult#getHotwordDurationMillis()} to translate these durations to * timestamps. * </p> + * + * @see #getAudioStreamParcelFileDescriptor() */ @Nullable private final AudioTimestamp mTimestamp; @@ -143,15 +145,15 @@ public final class HotwordAudioStream implements Parcelable { @DataClass.Generated.Member /* package-private */ HotwordAudioStream( @NonNull AudioFormat audioFormat, - @NonNull ParcelFileDescriptor audioStream, + @NonNull ParcelFileDescriptor audioStreamParcelFileDescriptor, @Nullable AudioTimestamp timestamp, @NonNull PersistableBundle metadata) { this.mAudioFormat = audioFormat; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mAudioFormat); - this.mAudioStream = audioStream; + this.mAudioStreamParcelFileDescriptor = audioStreamParcelFileDescriptor; com.android.internal.util.AnnotationValidations.validate( - NonNull.class, null, mAudioStream); + NonNull.class, null, mAudioStreamParcelFileDescriptor); this.mTimestamp = timestamp; this.mMetadata = metadata; com.android.internal.util.AnnotationValidations.validate( @@ -173,12 +175,12 @@ public final class HotwordAudioStream implements Parcelable { * the audio until the stream is shutdown by the {@link HotwordDetectionService}. */ @DataClass.Generated.Member - public @NonNull ParcelFileDescriptor getAudioStream() { - return mAudioStream; + public @NonNull ParcelFileDescriptor getAudioStreamParcelFileDescriptor() { + return mAudioStreamParcelFileDescriptor; } /** - * The timestamp when the {@link #getAudioStream()} was captured by the Audio platform. + * The timestamp when the audio stream was captured by the Audio platform. * * <p> * The {@link HotwordDetectionService} egressing the audio is the owner of the underlying @@ -192,6 +194,8 @@ public final class HotwordAudioStream implements Parcelable { * {@link HotwordDetectedResult#getHotwordDurationMillis()} to translate these durations to * timestamps. * </p> + * + * @see #getAudioStreamParcelFileDescriptor() */ @DataClass.Generated.Member public @Nullable AudioTimestamp getTimestamp() { @@ -214,7 +218,7 @@ public final class HotwordAudioStream implements Parcelable { return "HotwordAudioStream { " + "audioFormat = " + mAudioFormat + ", " + - "audioStream = " + mAudioStream + ", " + + "audioStreamParcelFileDescriptor = " + mAudioStreamParcelFileDescriptor + ", " + "timestamp = " + timestampToString() + ", " + "metadata = " + mMetadata + " }"; @@ -234,7 +238,7 @@ public final class HotwordAudioStream implements Parcelable { //noinspection PointlessBooleanExpression return true && Objects.equals(mAudioFormat, that.mAudioFormat) - && Objects.equals(mAudioStream, that.mAudioStream) + && Objects.equals(mAudioStreamParcelFileDescriptor, that.mAudioStreamParcelFileDescriptor) && Objects.equals(mTimestamp, that.mTimestamp) && Objects.equals(mMetadata, that.mMetadata); } @@ -247,7 +251,7 @@ public final class HotwordAudioStream implements Parcelable { int _hash = 1; _hash = 31 * _hash + Objects.hashCode(mAudioFormat); - _hash = 31 * _hash + Objects.hashCode(mAudioStream); + _hash = 31 * _hash + Objects.hashCode(mAudioStreamParcelFileDescriptor); _hash = 31 * _hash + Objects.hashCode(mTimestamp); _hash = 31 * _hash + Objects.hashCode(mMetadata); return _hash; @@ -263,7 +267,7 @@ public final class HotwordAudioStream implements Parcelable { if (mTimestamp != null) flg |= 0x4; dest.writeByte(flg); dest.writeTypedObject(mAudioFormat, flags); - dest.writeTypedObject(mAudioStream, flags); + dest.writeTypedObject(mAudioStreamParcelFileDescriptor, flags); parcelTimestamp(dest, flags); dest.writeTypedObject(mMetadata, flags); } @@ -281,16 +285,16 @@ public final class HotwordAudioStream implements Parcelable { byte flg = in.readByte(); AudioFormat audioFormat = (AudioFormat) in.readTypedObject(AudioFormat.CREATOR); - ParcelFileDescriptor audioStream = (ParcelFileDescriptor) in.readTypedObject(ParcelFileDescriptor.CREATOR); + ParcelFileDescriptor audioStreamParcelFileDescriptor = (ParcelFileDescriptor) in.readTypedObject(ParcelFileDescriptor.CREATOR); AudioTimestamp timestamp = unparcelTimestamp(in); PersistableBundle metadata = (PersistableBundle) in.readTypedObject(PersistableBundle.CREATOR); this.mAudioFormat = audioFormat; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mAudioFormat); - this.mAudioStream = audioStream; + this.mAudioStreamParcelFileDescriptor = audioStreamParcelFileDescriptor; com.android.internal.util.AnnotationValidations.validate( - NonNull.class, null, mAudioStream); + NonNull.class, null, mAudioStreamParcelFileDescriptor); this.mTimestamp = timestamp; this.mMetadata = metadata; com.android.internal.util.AnnotationValidations.validate( @@ -321,7 +325,7 @@ public final class HotwordAudioStream implements Parcelable { public static final class Builder { private @NonNull AudioFormat mAudioFormat; - private @NonNull ParcelFileDescriptor mAudioStream; + private @NonNull ParcelFileDescriptor mAudioStreamParcelFileDescriptor; private @Nullable AudioTimestamp mTimestamp; private @NonNull PersistableBundle mMetadata; @@ -332,19 +336,19 @@ public final class HotwordAudioStream implements Parcelable { * * @param audioFormat * The {@link AudioFormat} of the audio stream. - * @param audioStream + * @param audioStreamParcelFileDescriptor * This stream starts with the audio bytes used for hotword detection, but continues streaming * the audio until the stream is shutdown by the {@link HotwordDetectionService}. */ public Builder( @NonNull AudioFormat audioFormat, - @NonNull ParcelFileDescriptor audioStream) { + @NonNull ParcelFileDescriptor audioStreamParcelFileDescriptor) { mAudioFormat = audioFormat; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mAudioFormat); - mAudioStream = audioStream; + mAudioStreamParcelFileDescriptor = audioStreamParcelFileDescriptor; com.android.internal.util.AnnotationValidations.validate( - NonNull.class, null, mAudioStream); + NonNull.class, null, mAudioStreamParcelFileDescriptor); } /** @@ -363,15 +367,15 @@ public final class HotwordAudioStream implements Parcelable { * the audio until the stream is shutdown by the {@link HotwordDetectionService}. */ @DataClass.Generated.Member - public @NonNull Builder setAudioStream(@NonNull ParcelFileDescriptor value) { + public @NonNull Builder setAudioStreamParcelFileDescriptor(@NonNull ParcelFileDescriptor value) { checkNotUsed(); mBuilderFieldsSet |= 0x2; - mAudioStream = value; + mAudioStreamParcelFileDescriptor = value; return this; } /** - * The timestamp when the {@link #getAudioStream()} was captured by the Audio platform. + * The timestamp when the audio stream was captured by the Audio platform. * * <p> * The {@link HotwordDetectionService} egressing the audio is the owner of the underlying @@ -385,6 +389,8 @@ public final class HotwordAudioStream implements Parcelable { * {@link HotwordDetectedResult#getHotwordDurationMillis()} to translate these durations to * timestamps. * </p> + * + * @see #getAudioStreamParcelFileDescriptor() */ @DataClass.Generated.Member public @NonNull Builder setTimestamp(@NonNull AudioTimestamp value) { @@ -418,7 +424,7 @@ public final class HotwordAudioStream implements Parcelable { } HotwordAudioStream o = new HotwordAudioStream( mAudioFormat, - mAudioStream, + mAudioStreamParcelFileDescriptor, mTimestamp, mMetadata); return o; @@ -433,10 +439,10 @@ public final class HotwordAudioStream implements Parcelable { } @DataClass.Generated( - time = 1665463434564L, + time = 1665976240224L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/service/voice/HotwordAudioStream.java", - inputSignatures = "private final @android.annotation.NonNull android.media.AudioFormat mAudioFormat\nprivate final @android.annotation.NonNull android.os.ParcelFileDescriptor mAudioStream\nprivate final @android.annotation.Nullable android.media.AudioTimestamp mTimestamp\nprivate final @android.annotation.NonNull android.os.PersistableBundle mMetadata\nprivate static android.media.AudioTimestamp defaultTimestamp()\nprivate static android.os.PersistableBundle defaultMetadata()\nprivate java.lang.String timestampToString()\nprivate void parcelTimestamp(android.os.Parcel,int)\nprivate static @android.annotation.Nullable android.media.AudioTimestamp unparcelTimestamp(android.os.Parcel)\nclass HotwordAudioStream extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genParcelable=true, genToString=true)") + inputSignatures = "private final @android.annotation.NonNull android.media.AudioFormat mAudioFormat\nprivate final @android.annotation.NonNull android.os.ParcelFileDescriptor mAudioStreamParcelFileDescriptor\nprivate final @android.annotation.Nullable android.media.AudioTimestamp mTimestamp\nprivate final @android.annotation.NonNull android.os.PersistableBundle mMetadata\nprivate static android.media.AudioTimestamp defaultTimestamp()\nprivate static android.os.PersistableBundle defaultMetadata()\nprivate java.lang.String timestampToString()\nprivate void parcelTimestamp(android.os.Parcel,int)\nprivate static @android.annotation.Nullable android.media.AudioTimestamp unparcelTimestamp(android.os.Parcel)\nclass HotwordAudioStream extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genParcelable=true, genToString=true)") @Deprecated private void __metadata() {} diff --git a/core/java/android/service/voice/HotwordDetectedResult.java b/core/java/android/service/voice/HotwordDetectedResult.java index 6255d0060e3c..e22bbd820e2b 100644 --- a/core/java/android/service/voice/HotwordDetectedResult.java +++ b/core/java/android/service/voice/HotwordDetectedResult.java @@ -32,6 +32,7 @@ import com.android.internal.util.DataClass; import com.android.internal.util.Preconditions; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -203,7 +204,7 @@ public final class HotwordDetectedResult implements Parcelable { @NonNull private final List<HotwordAudioStream> mAudioStreams; private static List<HotwordAudioStream> defaultAudioStreams() { - return new ArrayList<>(); + return Collections.emptyList(); } /** @@ -364,9 +365,27 @@ public final class HotwordDetectedResult implements Parcelable { } } + /** + * The list of the audio streams containing audio bytes that were used for hotword detection. + */ + public @NonNull List<HotwordAudioStream> getAudioStreams() { + return List.copyOf(mAudioStreams); + } + @DataClass.Suppress("addAudioStreams") abstract static class BaseBuilder { - + /** + * The list of the audio streams containing audio bytes that were used for hotword + * detection. + */ + public @NonNull Builder setAudioStreams(@NonNull List<HotwordAudioStream> value) { + Objects.requireNonNull(value, "value should not be null"); + final Builder builder = (Builder) this; + // If the code gen flag in build() is changed, we must update the flag e.g. 0x200 here. + builder.mBuilderFieldsSet |= 0x200; + builder.mAudioStreams = List.copyOf(value); + return builder; + } } @@ -555,14 +574,6 @@ public final class HotwordDetectedResult implements Parcelable { } /** - * The list of the audio streams containing audio bytes that were used for hotword detection. - */ - @DataClass.Generated.Member - public @NonNull List<HotwordAudioStream> getAudioStreams() { - return mAudioStreams; - } - - /** * App-specific extras to support trigger. * * <p>The size of this bundle will be limited to {@link #getMaxBundleSize}. Results will larger @@ -881,17 +892,6 @@ public final class HotwordDetectedResult implements Parcelable { } /** - * The list of the audio streams containing audio bytes that were used for hotword detection. - */ - @DataClass.Generated.Member - public @NonNull Builder setAudioStreams(@NonNull List<HotwordAudioStream> value) { - checkNotUsed(); - mBuilderFieldsSet |= 0x200; - mAudioStreams = value; - return this; - } - - /** * App-specific extras to support trigger. * * <p>The size of this bundle will be limited to {@link #getMaxBundleSize}. Results will larger @@ -984,10 +984,10 @@ public final class HotwordDetectedResult implements Parcelable { } @DataClass.Generated( - time = 1664876310951L, + time = 1665995595979L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/service/voice/HotwordDetectedResult.java", - inputSignatures = "public static final int CONFIDENCE_LEVEL_NONE\npublic static final int CONFIDENCE_LEVEL_LOW\npublic static final int CONFIDENCE_LEVEL_LOW_MEDIUM\npublic static final int CONFIDENCE_LEVEL_MEDIUM\npublic static final int CONFIDENCE_LEVEL_MEDIUM_HIGH\npublic static final int CONFIDENCE_LEVEL_HIGH\npublic static final int CONFIDENCE_LEVEL_VERY_HIGH\npublic static final int HOTWORD_OFFSET_UNSET\npublic static final int AUDIO_CHANNEL_UNSET\nprivate static final int LIMIT_HOTWORD_OFFSET_MAX_VALUE\nprivate static final int LIMIT_AUDIO_CHANNEL_MAX_VALUE\npublic static final java.lang.String EXTRA_PROXIMITY_METERS\nprivate final @android.service.voice.HotwordDetectedResult.HotwordConfidenceLevelValue int mConfidenceLevel\nprivate @android.annotation.Nullable android.media.MediaSyncEvent mMediaSyncEvent\nprivate int mHotwordOffsetMillis\nprivate int mHotwordDurationMillis\nprivate int mAudioChannel\nprivate boolean mHotwordDetectionPersonalized\nprivate final int mScore\nprivate final int mPersonalizedScore\nprivate final int mHotwordPhraseId\nprivate final @android.annotation.NonNull java.util.List<android.service.voice.HotwordAudioStream> mAudioStreams\nprivate final @android.annotation.NonNull android.os.PersistableBundle mExtras\nprivate static int sMaxBundleSize\nprivate static int defaultConfidenceLevel()\nprivate static int defaultScore()\nprivate static int defaultPersonalizedScore()\npublic static int getMaxScore()\nprivate static int defaultHotwordPhraseId()\npublic static int getMaxHotwordPhraseId()\nprivate static java.util.List<android.service.voice.HotwordAudioStream> defaultAudioStreams()\nprivate static android.os.PersistableBundle defaultExtras()\npublic static int getMaxBundleSize()\npublic @android.annotation.Nullable android.media.MediaSyncEvent getMediaSyncEvent()\npublic static int getParcelableSize(android.os.Parcelable)\npublic static int getUsageSize(android.service.voice.HotwordDetectedResult)\nprivate static int bitCount(long)\nprivate void onConstructed()\nclass HotwordDetectedResult extends java.lang.Object implements [android.os.Parcelable]\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)\nclass BaseBuilder extends java.lang.Object implements []") + inputSignatures = "public static final int CONFIDENCE_LEVEL_NONE\npublic static final int CONFIDENCE_LEVEL_LOW\npublic static final int CONFIDENCE_LEVEL_LOW_MEDIUM\npublic static final int CONFIDENCE_LEVEL_MEDIUM\npublic static final int CONFIDENCE_LEVEL_MEDIUM_HIGH\npublic static final int CONFIDENCE_LEVEL_HIGH\npublic static final int CONFIDENCE_LEVEL_VERY_HIGH\npublic static final int HOTWORD_OFFSET_UNSET\npublic static final int AUDIO_CHANNEL_UNSET\nprivate static final int LIMIT_HOTWORD_OFFSET_MAX_VALUE\nprivate static final int LIMIT_AUDIO_CHANNEL_MAX_VALUE\npublic static final java.lang.String EXTRA_PROXIMITY_METERS\nprivate final @android.service.voice.HotwordDetectedResult.HotwordConfidenceLevelValue int mConfidenceLevel\nprivate @android.annotation.Nullable android.media.MediaSyncEvent mMediaSyncEvent\nprivate int mHotwordOffsetMillis\nprivate int mHotwordDurationMillis\nprivate int mAudioChannel\nprivate boolean mHotwordDetectionPersonalized\nprivate final int mScore\nprivate final int mPersonalizedScore\nprivate final int mHotwordPhraseId\nprivate final @android.annotation.NonNull java.util.List<android.service.voice.HotwordAudioStream> mAudioStreams\nprivate final @android.annotation.NonNull android.os.PersistableBundle mExtras\nprivate static int sMaxBundleSize\nprivate static int defaultConfidenceLevel()\nprivate static int defaultScore()\nprivate static int defaultPersonalizedScore()\npublic static int getMaxScore()\nprivate static int defaultHotwordPhraseId()\npublic static int getMaxHotwordPhraseId()\nprivate static java.util.List<android.service.voice.HotwordAudioStream> defaultAudioStreams()\nprivate static android.os.PersistableBundle defaultExtras()\npublic static int getMaxBundleSize()\npublic @android.annotation.Nullable android.media.MediaSyncEvent getMediaSyncEvent()\npublic static int getParcelableSize(android.os.Parcelable)\npublic static int getUsageSize(android.service.voice.HotwordDetectedResult)\nprivate static int bitCount(long)\nprivate void onConstructed()\npublic @android.annotation.NonNull java.util.List<android.service.voice.HotwordAudioStream> getAudioStreams()\nclass HotwordDetectedResult extends java.lang.Object implements [android.os.Parcelable]\npublic @android.annotation.NonNull android.service.voice.HotwordDetectedResult.Builder setAudioStreams(java.util.List<android.service.voice.HotwordAudioStream>)\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)\npublic @android.annotation.NonNull android.service.voice.HotwordDetectedResult.Builder setAudioStreams(java.util.List<android.service.voice.HotwordAudioStream>)\nclass BaseBuilder extends java.lang.Object implements []") @Deprecated private void __metadata() {} diff --git a/core/java/android/service/wallpaper/IWallpaperService.aidl b/core/java/android/service/wallpaper/IWallpaperService.aidl index 56e2486dd626..f46c60fc4f7a 100644 --- a/core/java/android/service/wallpaper/IWallpaperService.aidl +++ b/core/java/android/service/wallpaper/IWallpaperService.aidl @@ -25,6 +25,6 @@ import android.service.wallpaper.IWallpaperConnection; oneway interface IWallpaperService { void attach(IWallpaperConnection connection, IBinder windowToken, int windowType, boolean isPreview, - int reqWidth, int reqHeight, in Rect padding, int displayId); + int reqWidth, int reqHeight, in Rect padding, int displayId, int which); void detach(); } diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index e4c26e031738..a59d429b24e6 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -18,6 +18,7 @@ package android.service.wallpaper; import static android.app.WallpaperManager.COMMAND_FREEZE; import static android.app.WallpaperManager.COMMAND_UNFREEZE; +import static android.app.WallpaperManager.SetWallpaperFlags; import static android.graphics.Matrix.MSCALE_X; import static android.graphics.Matrix.MSCALE_Y; import static android.graphics.Matrix.MSKEW_X; @@ -283,7 +284,6 @@ public abstract class WallpaperService extends Service { private Display mDisplay; private Context mDisplayContext; private int mDisplayState; - private @Surface.Rotation int mDisplayInstallOrientation; private float mWallpaperDimAmount = 0.05f; private float mPreviousWallpaperDimAmount = mWallpaperDimAmount; private float mDefaultDimAmount = mWallpaperDimAmount; @@ -1158,7 +1158,7 @@ public abstract class WallpaperService extends Service { mSurfaceControl, mInsetsState, mTempControls, mSyncSeqIdBundle); final int transformHint = SurfaceControl.rotationToBufferTransform( - (mDisplayInstallOrientation + mDisplay.getRotation()) % 4); + (mDisplay.getInstallOrientation() + mDisplay.getRotation()) % 4); mSurfaceControl.setTransformHint(transformHint); WindowLayout.computeSurfaceSize(mLayout, maxBounds, mWidth, mHeight, mWinFrames.frame, false /* dragResizing */, mSurfaceSize); @@ -1419,7 +1419,6 @@ public abstract class WallpaperService extends Service { mWallpaperDimAmount = mDefaultDimAmount; mPreviousWallpaperDimAmount = mWallpaperDimAmount; mDisplayState = mDisplay.getState(); - mDisplayInstallOrientation = mDisplay.getInstallOrientation(); if (DEBUG) Log.v(TAG, "onCreate(): " + this); onCreate(mSurfaceHolder); @@ -2429,7 +2428,7 @@ public abstract class WallpaperService extends Service { @Override public void attach(IWallpaperConnection conn, IBinder windowToken, int windowType, boolean isPreview, int reqWidth, int reqHeight, Rect padding, - int displayId) { + int displayId, @SetWallpaperFlags int which) { mEngineWrapper = new IWallpaperEngineWrapper(mTarget, conn, windowToken, windowType, isPreview, reqWidth, reqHeight, padding, displayId); } diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java index 519fc55b523d..1337d6a87df8 100644 --- a/core/java/android/text/Layout.java +++ b/core/java/android/text/Layout.java @@ -36,7 +36,6 @@ import android.text.style.LineBackgroundSpan; import android.text.style.ParagraphStyle; import android.text.style.ReplacementSpan; import android.text.style.TabStopSpan; -import android.util.Range; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.ArrayUtils; @@ -1859,13 +1858,12 @@ public abstract class Layout { * @param segmentFinder SegmentFinder for determining the ranges of text to be considered as a * text segment * @param inclusionStrategy strategy for determining whether a text segment is inside the - * specified area - * @return an integer range where the endpoints are the start (inclusive) and end (exclusive) - * character offsets of the text range, or null if there are no text segments inside the - * area + * specified area + * @return int array of size 2 containing the start (inclusive) and end (exclusive) character + * offsets of the text range, or null if there are no text segments inside the area */ @Nullable - public Range<Integer> getRangeForRect(@NonNull RectF area, @NonNull SegmentFinder segmentFinder, + public int[] getRangeForRect(@NonNull RectF area, @NonNull SegmentFinder segmentFinder, @NonNull TextInclusionStrategy inclusionStrategy) { // Find the first line whose bottom (without line spacing) is below the top of the area. int startLine = getLineForVertical((int) area.top); @@ -1923,7 +1921,7 @@ public abstract class Layout { start = segmentFinder.previousStartBoundary(start + 1); end = segmentFinder.nextEndBoundary(end - 1); - return new Range(start, end); + return new int[] {start, end}; } /** diff --git a/core/java/android/view/HandwritingInitiator.java b/core/java/android/view/HandwritingInitiator.java index a1ece9298e7f..a0a07b30662f 100644 --- a/core/java/android/view/HandwritingInitiator.java +++ b/core/java/android/view/HandwritingInitiator.java @@ -162,7 +162,13 @@ public class HandwritingInitiator { if (candidateView == getConnectedView()) { startHandwriting(candidateView); } else { - candidateView.requestFocus(); + if (candidateView.getRevealOnFocusHint()) { + candidateView.setRevealOnFocusHint(false); + candidateView.requestFocus(); + candidateView.setRevealOnFocusHint(true); + } else { + candidateView.requestFocus(); + } } } } diff --git a/core/java/android/view/ImeFocusController.java b/core/java/android/view/ImeFocusController.java index 4de7c4fdd513..43828d58afc4 100644 --- a/core/java/android/view/ImeFocusController.java +++ b/core/java/android/view/ImeFocusController.java @@ -108,10 +108,11 @@ public final class ImeFocusController { } /** - * @see InputMethodManager#checkFocus() + * @see ViewRootImpl#dispatchCheckFocus() */ - public boolean checkFocus(boolean forceNewFocus, boolean startInput) { - return getImmDelegate().checkFocus(forceNewFocus, startInput, mViewRootImpl); + @UiThread + void onScheduledCheckFocus() { + getImmDelegate().onScheduledCheckFocus(mViewRootImpl); } @UiThread @@ -163,7 +164,7 @@ public final class ImeFocusController { void onPostWindowGainedFocus(View viewForWindowFocus, @NonNull WindowManager.LayoutParams windowAttribute); void onViewFocusChanged(@NonNull View view, boolean hasFocus); - boolean checkFocus(boolean forceNewFocus, boolean startInput, ViewRootImpl viewRootImpl); + void onScheduledCheckFocus(@NonNull ViewRootImpl viewRootImpl); void onViewDetachedFromWindow(View view, ViewRootImpl viewRootImpl); void onWindowDismissed(ViewRootImpl viewRootImpl); } diff --git a/core/java/android/view/RemoteAnimationTarget.java b/core/java/android/view/RemoteAnimationTarget.java index 0db28d4f83a7..5e17551b2ccf 100644 --- a/core/java/android/view/RemoteAnimationTarget.java +++ b/core/java/android/view/RemoteAnimationTarget.java @@ -241,6 +241,8 @@ public class RemoteAnimationTarget implements Parcelable { */ public boolean willShowImeOnTarget; + public int rotationChange; + public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent, Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position, Rect localBounds, Rect screenSpaceBounds, @@ -302,6 +304,7 @@ public class RemoteAnimationTarget implements Parcelable { backgroundColor = in.readInt(); showBackdrop = in.readBoolean(); willShowImeOnTarget = in.readBoolean(); + rotationChange = in.readInt(); } public void setShowBackdrop(boolean shouldShowBackdrop) { @@ -316,6 +319,14 @@ public class RemoteAnimationTarget implements Parcelable { return willShowImeOnTarget; } + public void setRotationChange(int rotationChange) { + this.rotationChange = rotationChange; + } + + public int getRotationChange() { + return rotationChange; + } + @Override public int describeContents() { return 0; @@ -345,6 +356,7 @@ public class RemoteAnimationTarget implements Parcelable { dest.writeInt(backgroundColor); dest.writeBoolean(showBackdrop); dest.writeBoolean(willShowImeOnTarget); + dest.writeInt(rotationChange); } public void dump(PrintWriter pw, String prefix) { diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java index e5a535b59eb6..f51d9bacc0a5 100644 --- a/core/java/android/view/ViewConfiguration.java +++ b/core/java/android/view/ViewConfiguration.java @@ -218,6 +218,11 @@ public class ViewConfiguration { private static final int WINDOW_TOUCH_SLOP = 16; /** + * Margin in dips around text line bounds where stylus handwriting gestures should be supported. + */ + private static final int HANDWRITING_GESTURE_LINE_MARGIN = 16; + + /** * Minimum velocity to initiate a fling, as measured in dips per second */ private static final int MINIMUM_FLING_VELOCITY = 50; @@ -338,6 +343,7 @@ public class ViewConfiguration { private final int mPagingTouchSlop; private final int mDoubleTapSlop; private final int mWindowTouchSlop; + private final int mHandwritingGestureLineMargin; private final float mAmbiguousGestureMultiplier; private final int mMaximumDrawingCacheSize; private final int mOverscrollDistance; @@ -381,6 +387,7 @@ public class ViewConfiguration { mPagingTouchSlop = PAGING_TOUCH_SLOP; mDoubleTapSlop = DOUBLE_TAP_SLOP; mWindowTouchSlop = WINDOW_TOUCH_SLOP; + mHandwritingGestureLineMargin = HANDWRITING_GESTURE_LINE_MARGIN; mAmbiguousGestureMultiplier = AMBIGUOUS_GESTURE_MULTIPLIER; //noinspection deprecation mMaximumDrawingCacheSize = MAXIMUM_DRAWING_CACHE_SIZE; @@ -490,6 +497,9 @@ public class ViewConfiguration { mDoubleTapTouchSlop = mTouchSlop; + mHandwritingGestureLineMargin = res.getDimensionPixelSize( + com.android.internal.R.dimen.config_viewConfigurationHandwritingGestureLineMargin); + mMinimumFlingVelocity = res.getDimensionPixelSize( com.android.internal.R.dimen.config_viewMinFlingVelocity); mMaximumFlingVelocity = res.getDimensionPixelSize( @@ -796,6 +806,14 @@ public class ViewConfiguration { } /** + * @return margin in pixels around text line bounds where stylus handwriting gestures should be + * supported. + */ + public int getScaledHandwritingGestureLineMargin() { + return mHandwritingGestureLineMargin; + } + + /** * Interval for dispatching a recurring accessibility event in milliseconds. * This interval guarantees that a recurring event will be send at most once * during the {@link #getSendRecurringAccessibilityEventsInterval()} time frame. diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 58c81260076b..bfa13507ed50 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -428,8 +428,6 @@ public final class ViewRootImpl implements ViewParent, final DisplayManager mDisplayManager; final String mBasePackageName; - private @Surface.Rotation int mDisplayInstallOrientation; - final int[] mTmpLocation = new int[2]; final TypedValue mTmpValue = new TypedValue(); @@ -1134,7 +1132,6 @@ public final class ViewRootImpl implements ViewParent, if (mView == null) { mView = view; - mDisplayInstallOrientation = mDisplay.getInstallOrientation(); mViewLayoutDirectionInitial = mView.getRawLayoutDirection(); mFallbackEventHandler.setView(view); mWindowAttributes.copyFrom(attrs); @@ -1905,7 +1902,6 @@ public final class ViewRootImpl implements ViewParent, updateInternalDisplay(displayId, mView.getResources()); mImeFocusController.onMovedToDisplay(); mAttachInfo.mDisplayState = mDisplay.getState(); - mDisplayInstallOrientation = mDisplay.getInstallOrientation(); // Internal state updated, now notify the view hierarchy. mView.dispatchMovedToDisplay(mDisplay, config); } @@ -5718,7 +5714,7 @@ public final class ViewRootImpl implements ViewParent, enqueueInputEvent(event, null, 0, true); } break; case MSG_CHECK_FOCUS: { - getImeFocusController().checkFocus(false, true); + getImeFocusController().onScheduledCheckFocus(); } break; case MSG_CLOSE_SYSTEM_DIALOGS: { if (mView != null) { @@ -8235,7 +8231,7 @@ public final class ViewRootImpl implements ViewParent, } final int transformHint = SurfaceControl.rotationToBufferTransform( - (mDisplayInstallOrientation + mDisplay.getRotation()) % 4); + (mDisplay.getInstallOrientation() + mDisplay.getRotation()) % 4); WindowLayout.computeSurfaceSize(mWindowAttributes, winConfig.getMaxBounds(), requestedWidth, requestedHeight, mWinFrameInScreen, mPendingDragResizing, mSurfaceSize); @@ -8260,7 +8256,7 @@ public final class ViewRootImpl implements ViewParent, } mLastTransformHint = transformHint; - + mSurfaceControl.setTransformHint(transformHint); if (mAttachInfo.mContentCaptureManager != null) { diff --git a/core/java/android/view/inputmethod/EditorInfo.java b/core/java/android/view/inputmethod/EditorInfo.java index 4a79ba62de69..febdac26a0f2 100644 --- a/core/java/android/view/inputmethod/EditorInfo.java +++ b/core/java/android/view/inputmethod/EditorInfo.java @@ -595,6 +595,10 @@ public class EditorInfo implements InputType, Parcelable { == HandwritingGesture.GESTURE_TYPE_SELECT) { list.add(SelectGesture.class); } + if ((mSupportedHandwritingGestureTypes & HandwritingGesture.GESTURE_TYPE_SELECT_RANGE) + == HandwritingGesture.GESTURE_TYPE_SELECT_RANGE) { + list.add(SelectRangeGesture.class); + } if ((mSupportedHandwritingGestureTypes & HandwritingGesture.GESTURE_TYPE_INSERT) == HandwritingGesture.GESTURE_TYPE_INSERT) { list.add(InsertGesture.class); @@ -603,6 +607,10 @@ public class EditorInfo implements InputType, Parcelable { == HandwritingGesture.GESTURE_TYPE_DELETE) { list.add(DeleteGesture.class); } + if ((mSupportedHandwritingGestureTypes & HandwritingGesture.GESTURE_TYPE_DELETE_RANGE) + == HandwritingGesture.GESTURE_TYPE_DELETE_RANGE) { + list.add(DeleteRangeGesture.class); + } if ((mSupportedHandwritingGestureTypes & HandwritingGesture.GESTURE_TYPE_REMOVE_SPACE) == HandwritingGesture.GESTURE_TYPE_REMOVE_SPACE) { list.add(RemoveSpaceGesture.class); diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 867b8260ec5e..574d0356ae42 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -30,7 +30,9 @@ import static android.view.inputmethod.InputMethodEditorTraceProto.InputMethodCl import static android.view.inputmethod.InputMethodManagerProto.ACTIVE; import static android.view.inputmethod.InputMethodManagerProto.CUR_ID; import static android.view.inputmethod.InputMethodManagerProto.FULLSCREEN_MODE; +import static android.view.inputmethod.InputMethodManagerProto.NEXT_SERVED_VIEW; import static android.view.inputmethod.InputMethodManagerProto.SERVED_CONNECTING; +import static android.view.inputmethod.InputMethodManagerProto.SERVED_VIEW; import static com.android.internal.inputmethod.StartInputReason.BOUND_TO_IMMS; @@ -763,39 +765,37 @@ public final class InputMethodManager { forceFocus = true; } } - startInputOnWindowFocusGain(viewForWindowFocus, - windowAttribute.softInputMode, windowAttribute.flags, forceFocus); - } - private void startInputOnWindowFocusGain(View focusedView, - @SoftInputModeFlags int softInputMode, int windowFlags, boolean forceNewFocus) { - int startInputFlags = getStartInputFlags(focusedView, 0); + final int softInputMode = windowAttribute.softInputMode; + final int windowFlags = windowAttribute.flags; + + int startInputFlags = getStartInputFlags(viewForWindowFocus, 0); startInputFlags |= StartInputFlags.WINDOW_GAINED_FOCUS; ImeTracing.getInstance().triggerClientDump( "InputMethodManager.DelegateImpl#startInputAsyncOnWindowFocusGain", InputMethodManager.this, null /* icProto */); - final ImeFocusController controller = getFocusController(); - if (controller == null) { - return; - } - + boolean checkFocusResult; synchronized (mH) { + if (mCurRootView == null) { + return; + } if (mRestartOnNextWindowFocus) { if (DEBUG) Log.v(TAG, "Restarting due to mRestartOnNextWindowFocus as true"); mRestartOnNextWindowFocus = false; - forceNewFocus = true; + forceFocus = true; } + checkFocusResult = checkFocusInternalLocked(forceFocus, mCurRootView); } - if (controller.checkFocus(forceNewFocus, false)) { + if (checkFocusResult) { // We need to restart input on the current focus view. This // should be done in conjunction with telling the system service // about the window gaining focus, to help make the transition // smooth. if (startInputOnWindowFocusGainInternal(StartInputReason.WINDOW_FOCUS_GAIN, - focusedView, startInputFlags, softInputMode, windowFlags)) { + viewForWindowFocus, startInputFlags, softInputMode, windowFlags)) { return; } } @@ -810,7 +810,7 @@ public final class InputMethodManager { // ignore the result mServiceInvoker.startInputOrWindowGainedFocus( StartInputReason.WINDOW_FOCUS_GAIN_REPORT_ONLY, mClient, - focusedView.getWindowToken(), startInputFlags, softInputMode, + viewForWindowFocus.getWindowToken(), startInputFlags, softInputMode, windowFlags, null, null, null, @@ -825,9 +825,15 @@ public final class InputMethodManager { } @Override - public boolean checkFocus(boolean forceNewFocus, boolean startInput, - ViewRootImpl viewRootImpl) { - return checkFocusInternal(forceNewFocus, startInput, viewRootImpl); + public void onScheduledCheckFocus(ViewRootImpl viewRootImpl) { + synchronized (mH) { + if (!checkFocusInternalLocked(false, viewRootImpl)) { + return; + } + } + startInputOnWindowFocusGainInternal(StartInputReason.SCHEDULED_CHECK_FOCUS, + null /* focusedView */, 0 /* startInputFlags */, 0 /* softInputMode */, + 0 /* windowFlags */); } @Override @@ -873,12 +879,25 @@ public final class InputMethodManager { /** * Checks whether the active input connection (if any) is for the given view. * + * <p>Note that {@code view} parameter does not take + * {@link View#checkInputConnectionProxy(View)} into account. This method returns {@code true} + * when and only when the specified {@code view} is the actual {@link View} instance that is + * connected to the IME.</p> + * + * @param view {@link View} to be checked. + * @return {@code true} if {@code view} is currently interacting with IME. * @hide - * @see #hasActiveInputConnectionInternal(View)} */ @TestApi public boolean hasActiveInputConnection(@Nullable View view) { - return hasActiveInputConnectionInternal(view); + synchronized (mH) { + return mCurRootView != null + && view != null + && mServedView == view + && mServedInputConnection != null + && mServedInputConnection.isAssociatedWith(view) + && isImeSessionAvailableLocked(); + } } /** @@ -924,15 +943,6 @@ public final class InputMethodManager { return mCurRootView != null ? mNextServedView : null; } - private ImeFocusController getFocusController() { - synchronized (mH) { - if (mCurRootView != null) { - return mCurRootView.getImeFocusController(); - } - return null; - } - } - /** * Returns {@code true} when the given view has been served by Input Method. */ @@ -1115,8 +1125,7 @@ public final class InputMethodManager { if (mCurRootView == null) { return; } - if (!mCurRootView.getImeFocusController().checkFocus( - mRestartOnNextWindowFocus, false)) { + if (!checkFocusInternalLocked(mRestartOnNextWindowFocus, mCurRootView)) { return; } final int reason = active ? StartInputReason.ACTIVATED_BY_IMMS @@ -2336,8 +2345,7 @@ public final class InputMethodManager { } /** - * Called from {@link #checkFocusInternal(boolean, boolean, ViewRootImpl)}, - * {@link #restartInput(View)}, {@link #MSG_BIND} or {@link #MSG_UNBIND}. + * Starts an input connection from the served view that gains the window focus. * Note that this method should *NOT* be called inside of {@code mH} lock to prevent start input * background thread may blocked by other methods which already inside {@code mH} lock. */ @@ -2645,52 +2653,53 @@ public final class InputMethodManager { } /** - * Check the next served view from {@link ImeFocusController} if needs to start input. * Note that this method should *NOT* be called inside of {@code mH} lock to prevent start input * background thread may blocked by other methods which already inside {@code mH} lock. * @hide */ @UnsupportedAppUsage public void checkFocus() { - final ImeFocusController controller = getFocusController(); - if (controller != null) { - controller.checkFocus(false /* forceNewFocus */, true /* startInput */); - } - } - - private boolean checkFocusInternal(boolean forceNewFocus, boolean startInput, - ViewRootImpl viewRootImpl) { synchronized (mH) { - if (mCurRootView != viewRootImpl) { - return false; - } - if (mServedView == mNextServedView && !forceNewFocus) { - return false; - } - if (DEBUG) { - Log.v(TAG, "checkFocus: view=" + mServedView - + " next=" + mNextServedView - + " force=" + forceNewFocus - + " package=" - + (mServedView != null ? mServedView.getContext().getPackageName() - : "<none>")); - } - // Close the connection when no next served view coming. - if (mNextServedView == null) { - finishInputLocked(); - closeCurrentInput(); - return false; + if (mCurRootView == null) { + return; } - mServedView = mNextServedView; - if (mServedInputConnection != null) { - mServedInputConnection.finishComposingTextFromImm(); + if (!checkFocusInternalLocked(false /* forceNewFocus */, mCurRootView)) { + return; } } + startInputOnWindowFocusGainInternal(StartInputReason.CHECK_FOCUS, + null /* focusedView */, + 0 /* startInputFlags */, 0 /* softInputMode */, 0 /* windowFlags */); + } - if (startInput) { - startInputOnWindowFocusGainInternal(StartInputReason.CHECK_FOCUS, - null /* focusedView */, - 0 /* startInputFlags */, 0 /* softInputMode */, 0 /* windowFlags */); + /** + * Check the next served view if needs to start input. + */ + @GuardedBy("mH") + private boolean checkFocusInternalLocked(boolean forceNewFocus, ViewRootImpl viewRootImpl) { + if (mCurRootView != viewRootImpl) { + return false; + } + if (mServedView == mNextServedView && !forceNewFocus) { + return false; + } + if (DEBUG) { + Log.v(TAG, "checkFocus: view=" + mServedView + + " next=" + mNextServedView + + " force=" + forceNewFocus + + " package=" + + (mServedView != null ? mServedView.getContext().getPackageName() + : "<none>")); + } + // Close the connection when no next served view coming. + if (mNextServedView == null) { + finishInputLocked(); + closeCurrentInput(); + return false; + } + mServedView = mNextServedView; + if (mServedInputConnection != null) { + mServedInputConnection.finishComposingTextFromImm(); } return true; } @@ -3983,6 +3992,8 @@ public final class InputMethodManager { proto.write(FULLSCREEN_MODE, mFullscreenMode); proto.write(ACTIVE, mActive); proto.write(SERVED_CONNECTING, mServedConnecting); + proto.write(SERVED_VIEW, Objects.toString(mServedView)); + proto.write(NEXT_SERVED_VIEW, Objects.toString(mNextServedView)); proto.end(token); if (mCurRootView != null) { mCurRootView.dumpDebug(proto, VIEW_ROOT_IMPL); diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index 84b6f65ffea6..a5e708642c9f 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -547,6 +547,18 @@ public class ScrollView extends FrameLayout { handled = fullScroll(View.FOCUS_DOWN); } break; + case KeyEvent.KEYCODE_MOVE_HOME: + handled = fullScroll(View.FOCUS_UP); + break; + case KeyEvent.KEYCODE_MOVE_END: + handled = fullScroll(View.FOCUS_DOWN); + break; + case KeyEvent.KEYCODE_PAGE_UP: + handled = pageScroll(View.FOCUS_UP); + break; + case KeyEvent.KEYCODE_PAGE_DOWN: + handled = pageScroll(View.FOCUS_DOWN); + break; case KeyEvent.KEYCODE_SPACE: pageScroll(event.isShiftPressed() ? View.FOCUS_UP : View.FOCUS_DOWN); break; diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index ce5365acf1f4..b5c58fb4bfc0 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -151,7 +151,6 @@ import android.util.DisplayMetrics; import android.util.FeatureFlagUtils; import android.util.IntArray; import android.util.Log; -import android.util.Range; import android.util.SparseIntArray; import android.util.TypedValue; import android.view.AccessibilityIterators.TextSegmentIterator; @@ -189,6 +188,7 @@ import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.CorrectionInfo; import android.view.inputmethod.CursorAnchorInfo; import android.view.inputmethod.DeleteGesture; +import android.view.inputmethod.DeleteRangeGesture; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; @@ -199,6 +199,7 @@ import android.view.inputmethod.InsertGesture; import android.view.inputmethod.JoinOrSplitGesture; import android.view.inputmethod.RemoveSpaceGesture; import android.view.inputmethod.SelectGesture; +import android.view.inputmethod.SelectRangeGesture; import android.view.inspector.InspectableProperty; import android.view.inspector.InspectableProperty.EnumEntry; import android.view.inspector.InspectableProperty.FlagEntry; @@ -9096,7 +9097,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener ArrayList<Class<? extends HandwritingGesture>> gestures = new ArrayList<>(); gestures.add(SelectGesture.class); + gestures.add(SelectRangeGesture.class); gestures.add(DeleteGesture.class); + gestures.add(DeleteRangeGesture.class); gestures.add(InsertGesture.class); gestures.add(RemoveSpaceGesture.class); gestures.add(JoinOrSplitGesture.class); @@ -9313,90 +9316,149 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener /** @hide */ public int performHandwritingSelectGesture(@NonNull SelectGesture gesture) { - Range<Integer> range = getRangeForRect( + int[] range = getRangeForRect( convertFromScreenToContentCoordinates(gesture.getSelectionArea()), gesture.getGranularity()); if (range == null) { return handleGestureFailure(gesture); } - Selection.setSelection(getEditableText(), range.getLower(), range.getUpper()); + Selection.setSelection(getEditableText(), range[0], range[1]); + mEditor.startSelectionActionModeAsync(/* adjustSelection= */ false); + return InputConnection.HANDWRITING_GESTURE_RESULT_SUCCESS; + } + + /** @hide */ + public int performHandwritingSelectRangeGesture(@NonNull SelectRangeGesture gesture) { + int[] startRange = getRangeForRect( + convertFromScreenToContentCoordinates(gesture.getSelectionStartArea()), + gesture.getGranularity()); + if (startRange == null) { + return handleGestureFailure(gesture); + } + int[] endRange = getRangeForRect( + convertFromScreenToContentCoordinates(gesture.getSelectionEndArea()), + gesture.getGranularity()); + if (endRange == null) { + return handleGestureFailure(gesture); + } + int[] range = new int[] { + Math.min(startRange[0], endRange[0]), Math.max(startRange[1], endRange[1]) + }; + Selection.setSelection(getEditableText(), range[0], range[1]); mEditor.startSelectionActionModeAsync(/* adjustSelection= */ false); return InputConnection.HANDWRITING_GESTURE_RESULT_SUCCESS; } /** @hide */ public int performHandwritingDeleteGesture(@NonNull DeleteGesture gesture) { - Range<Integer> range = getRangeForRect( + int[] range = getRangeForRect( convertFromScreenToContentCoordinates(gesture.getDeletionArea()), gesture.getGranularity()); if (range == null) { return handleGestureFailure(gesture); } - int start = range.getLower(); - int end = range.getUpper(); - // For word granularity, adjust the start and end offsets to remove extra whitespace around - // the deleted text. if (gesture.getGranularity() == HandwritingGesture.GRANULARITY_WORD) { - // If the deleted text is at the start of the text, the behavior is the same as the case - // where the deleted text follows a new line character. - int codePointBeforeStart = start > 0 - ? Character.codePointBefore(mText, start) : TextUtils.LINE_FEED_CODE_POINT; - // If the deleted text is at the end of the text, the behavior is the same as the case - // where the deleted text precedes a new line character. - int codePointAtEnd = end < mText.length() - ? Character.codePointAt(mText, end) : TextUtils.LINE_FEED_CODE_POINT; - if (TextUtils.isWhitespaceExceptNewline(codePointBeforeStart) - && (TextUtils.isWhitespace(codePointAtEnd) - || TextUtils.isPunctuation(codePointAtEnd))) { - // Remove whitespace (except new lines) before the deleted text, in these cases: - // - There is whitespace following the deleted text - // e.g. "one [deleted] three" -> "one | three" -> "one| three" - // - There is punctuation following the deleted text - // e.g. "one [deleted]!" -> "one |!" -> "one|!" - // - There is a new line following the deleted text - // e.g. "one [deleted]\n" -> "one |\n" -> "one|\n" - // - The deleted text is at the end of the text - // e.g. "one [deleted]" -> "one |" -> "one|" - // (The pipe | indicates the cursor position.) - do { - start -= Character.charCount(codePointBeforeStart); - if (start == 0) break; - codePointBeforeStart = Character.codePointBefore(mText, start); - } while (TextUtils.isWhitespaceExceptNewline(codePointBeforeStart)); - } else if (TextUtils.isWhitespaceExceptNewline(codePointAtEnd) - && (TextUtils.isWhitespace(codePointBeforeStart) - || TextUtils.isPunctuation(codePointBeforeStart))) { - // Remove whitespace (except new lines) after the deleted text, in these cases: - // - There is punctuation preceding the deleted text - // e.g. "([deleted] two)" -> "(| two)" -> "(|two)" - // - There is a new line preceding the deleted text - // e.g. "\n[deleted] two" -> "\n| two" -> "\n|two" - // - The deleted text is at the start of the text - // e.g. "[deleted] two" -> "| two" -> "|two" - // (The pipe | indicates the cursor position.) - do { - end += Character.charCount(codePointAtEnd); - if (end == mText.length()) break; - codePointAtEnd = Character.codePointAt(mText, end); - } while (TextUtils.isWhitespaceExceptNewline(codePointAtEnd)); - } - } - - getEditableText().delete(start, end); - Selection.setSelection(getEditableText(), start); + range = adjustHandwritingDeleteGestureRange(range); + } + + getEditableText().delete(range[0], range[1]); + Selection.setSelection(getEditableText(), range[0]); return InputConnection.HANDWRITING_GESTURE_RESULT_SUCCESS; } /** @hide */ - public int performHandwritingInsertGesture(@NonNull InsertGesture gesture) { - PointF point = convertFromScreenToContentCoordinates(gesture.getInsertionPoint()); - int line = mLayout.getLineForVertical((int) point.y); - if (point.y < mLayout.getLineTop(line) - || point.y > mLayout.getLineBottom(line, /* includeLineSpacing= */ false)) { + public int performHandwritingDeleteRangeGesture(@NonNull DeleteRangeGesture gesture) { + int[] startRange = getRangeForRect( + convertFromScreenToContentCoordinates(gesture.getDeletionStartArea()), + gesture.getGranularity()); + if (startRange == null) { return handleGestureFailure(gesture); } - if (point.x < mLayout.getLineLeft(line) || point.x > mLayout.getLineRight(line)) { + int[] endRange = getRangeForRect( + convertFromScreenToContentCoordinates(gesture.getDeletionEndArea()), + gesture.getGranularity()); + if (endRange == null) { + return handleGestureFailure(gesture); + } + int[] range = new int[] { + Math.min(startRange[0], endRange[0]), Math.max(startRange[1], endRange[1]) + }; + + if (gesture.getGranularity() == HandwritingGesture.GRANULARITY_WORD) { + range = adjustHandwritingDeleteGestureRange(range); + } + + getEditableText().delete(range[0], range[1]); + Selection.setSelection(getEditableText(), range[0]); + return InputConnection.HANDWRITING_GESTURE_RESULT_SUCCESS; + } + + private int[] adjustHandwritingDeleteGestureRange(int[] range) { + // For handwriting delete gestures with word granularity, adjust the start and end offsets + // to remove extra whitespace around the deleted text. + + int start = range[0]; + int end = range[1]; + + // If the deleted text is at the start of the text, the behavior is the same as the case + // where the deleted text follows a new line character. + int codePointBeforeStart = start > 0 + ? Character.codePointBefore(mText, start) : TextUtils.LINE_FEED_CODE_POINT; + // If the deleted text is at the end of the text, the behavior is the same as the case where + // the deleted text precedes a new line character. + int codePointAtEnd = end < mText.length() + ? Character.codePointAt(mText, end) : TextUtils.LINE_FEED_CODE_POINT; + + if (TextUtils.isWhitespaceExceptNewline(codePointBeforeStart) + && (TextUtils.isWhitespace(codePointAtEnd) + || TextUtils.isPunctuation(codePointAtEnd))) { + // Remove whitespace (except new lines) before the deleted text, in these cases: + // - There is whitespace following the deleted text + // e.g. "one [deleted] three" -> "one | three" -> "one| three" + // - There is punctuation following the deleted text + // e.g. "one [deleted]!" -> "one |!" -> "one|!" + // - There is a new line following the deleted text + // e.g. "one [deleted]\n" -> "one |\n" -> "one|\n" + // - The deleted text is at the end of the text + // e.g. "one [deleted]" -> "one |" -> "one|" + // (The pipe | indicates the cursor position.) + do { + start -= Character.charCount(codePointBeforeStart); + if (start == 0) break; + codePointBeforeStart = Character.codePointBefore(mText, start); + } while (TextUtils.isWhitespaceExceptNewline(codePointBeforeStart)); + return new int[] {start, end}; + } + + if (TextUtils.isWhitespaceExceptNewline(codePointAtEnd) + && (TextUtils.isWhitespace(codePointBeforeStart) + || TextUtils.isPunctuation(codePointBeforeStart))) { + // Remove whitespace (except new lines) after the deleted text, in these cases: + // - There is punctuation preceding the deleted text + // e.g. "([deleted] two)" -> "(| two)" -> "(|two)" + // - There is a new line preceding the deleted text + // e.g. "\n[deleted] two" -> "\n| two" -> "\n|two" + // - The deleted text is at the start of the text + // e.g. "[deleted] two" -> "| two" -> "|two" + // (The pipe | indicates the cursor position.) + do { + end += Character.charCount(codePointAtEnd); + if (end == mText.length()) break; + codePointAtEnd = Character.codePointAt(mText, end); + } while (TextUtils.isWhitespaceExceptNewline(codePointAtEnd)); + return new int[] {start, end}; + } + + // Return the original range. + return range; + } + + /** @hide */ + public int performHandwritingInsertGesture(@NonNull InsertGesture gesture) { + PointF point = convertFromScreenToContentCoordinates(gesture.getInsertionPoint()); + int line = getLineForHandwritingGesture(point); + if (line == -1) { return handleGestureFailure(gesture); } int offset = mLayout.getOffsetForHorizontal(line, point.x); @@ -9412,27 +9474,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener PointF startPoint = convertFromScreenToContentCoordinates(gesture.getStartPoint()); PointF endPoint = convertFromScreenToContentCoordinates(gesture.getEndPoint()); - // The operation should be applied to the first line of text touched by the line joining - // the points. - int yMin = (int) Math.min(startPoint.y, endPoint.y); - int yMax = (int) Math.max(startPoint.y, endPoint.y); - int line = mLayout.getLineForVertical(yMin); - if (yMax < mLayout.getLineTop(line)) { - // Both points are above the top of the first line. - return handleGestureFailure(gesture); - } - if (yMin > mLayout.getLineBottom(line, /* includeLineSpacing= */ false)) { - if (line == mLayout.getLineCount() - 1 || yMax < mLayout.getLineTop(line + 1)) { - // The points are below the last line, or they are between two lines. + // The operation should be applied to the first line of text containing one of the points. + int startPointLine = getLineForHandwritingGesture(startPoint); + int endPointLine = getLineForHandwritingGesture(endPoint); + int line; + if (startPointLine == -1) { + if (endPointLine == -1) { return handleGestureFailure(gesture); - } else { - // Apply the operation to the next line. - line++; } - } - if (Math.max(startPoint.x, endPoint.x) < mLayout.getLineLeft(line) - || Math.min(startPoint.x, endPoint.x) > mLayout.getLineRight(line)) { - return handleGestureFailure(gesture); + line = endPointLine; + } else { + line = (endPointLine == -1) ? startPointLine : Math.min(startPointLine, endPointLine); } // The operation should be applied to all characters touched by the line joining the points. @@ -9445,14 +9497,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener lineVerticalCenter + 0.1f, Math.max(startPoint.x, endPoint.x), lineVerticalCenter - 0.1f); - Range<Integer> range = mLayout.getRangeForRect( + int[] range = mLayout.getRangeForRect( area, new GraphemeClusterSegmentFinder(mText, mTextPaint), Layout.INCLUSION_STRATEGY_ANY_OVERLAP); if (range == null) { return handleGestureFailure(gesture); } - int startOffset = range.getLower(); - int endOffset = range.getUpper(); + int startOffset = range[0]; + int endOffset = range[1]; // TODO(b/247557062): This doesn't handle bidirectional text correctly. Pattern whitespacePattern = getWhitespacePattern(); @@ -9479,12 +9531,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener public int performHandwritingJoinOrSplitGesture(@NonNull JoinOrSplitGesture gesture) { PointF point = convertFromScreenToContentCoordinates(gesture.getJoinOrSplitPoint()); - int line = mLayout.getLineForVertical((int) point.y); - if (point.y < mLayout.getLineTop(line) - || point.y > mLayout.getLineBottom(line, /* includeLineSpacing= */ false)) { - return handleGestureFailure(gesture); - } - if (point.x < mLayout.getLineLeft(line) || point.x > mLayout.getLineRight(line)) { + int line = getLineForHandwritingGesture(point); + if (line == -1) { return handleGestureFailure(gesture); } @@ -9529,8 +9577,39 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return InputConnection.HANDWRITING_GESTURE_RESULT_FAILED; } + /** + * Returns the closest line such that the point is either inside the line bounds or within + * {@link ViewConfiguration#getScaledHandwritingGestureLineMargin} of the line bounds. Returns + * -1 if the point is not within the margin of any line bounds. + */ + private int getLineForHandwritingGesture(PointF point) { + int line = mLayout.getLineForVertical((int) point.y); + int lineMargin = ViewConfiguration.get(mContext).getScaledHandwritingGestureLineMargin(); + if (line < mLayout.getLineCount() - 1 + && point.y > mLayout.getLineBottom(line) - lineMargin + && point.y + > (mLayout.getLineBottom(line, false) + mLayout.getLineBottom(line)) / 2f) { + // If a point is in the space between line i and line (i + 1), Layout#getLineForVertical + // returns i. If the point is within lineMargin of line (i + 1), and closer to line + // (i + 1) than line i, then the gesture operation should be applied to line (i + 1). + line++; + } else if (point.y < mLayout.getLineTop(line) - lineMargin + || point.y + > mLayout.getLineBottom(line, /* includeLineSpacing= */ false) + + lineMargin) { + // The point is not within lineMargin of a line. + return -1; + } + if (point.x < mLayout.getLineLeft(line) - lineMargin + || point.x > mLayout.getLineRight(line) + lineMargin) { + // The point is not within lineMargin of a line. + return -1; + } + return line; + } + @Nullable - private Range<Integer> getRangeForRect(@NonNull RectF area, int granularity) { + private int[] getRangeForRect(@NonNull RectF area, int granularity) { SegmentFinder segmentFinder; if (granularity == HandwritingGesture.GRANULARITY_WORD) { WordIterator wordIterator = getWordIterator(); diff --git a/core/java/com/android/internal/app/AppLocaleCollector.java b/core/java/com/android/internal/app/AppLocaleCollector.java new file mode 100644 index 000000000000..65e8c646e17d --- /dev/null +++ b/core/java/com/android/internal/app/AppLocaleCollector.java @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.app; + +import static com.android.internal.app.AppLocaleStore.AppLocaleResult.LocaleStatus.GET_SUPPORTED_LANGUAGE_FROM_ASSET; +import static com.android.internal.app.AppLocaleStore.AppLocaleResult.LocaleStatus.GET_SUPPORTED_LANGUAGE_FROM_LOCAL_CONFIG; + +import android.content.Context; +import android.os.Build; +import android.os.LocaleList; +import android.util.Log; + +import java.util.HashSet; +import java.util.Locale; +import java.util.Set; + +/** The Locale data collector for per-app language. */ +class AppLocaleCollector implements LocalePickerWithRegion.LocaleCollectorBase { + private static final String TAG = AppLocaleCollector.class.getSimpleName(); + private final Context mContext; + private final String mAppPackageName; + private final LocaleStore.LocaleInfo mAppCurrentLocale; + + AppLocaleCollector(Context context, String appPackageName) { + mContext = context; + mAppPackageName = appPackageName; + mAppCurrentLocale = LocaleStore.getAppCurrentLocaleInfo( + mContext, mAppPackageName); + } + + @Override + public HashSet<String> getIgnoredLocaleList(boolean translatedOnly) { + HashSet<String> langTagsToIgnore = new HashSet<>(); + + LocaleList systemLangList = LocaleList.getDefault(); + for(int i = 0; i < systemLangList.size(); i++) { + langTagsToIgnore.add(systemLangList.get(i).toLanguageTag()); + } + + if (mAppCurrentLocale != null) { + langTagsToIgnore.add(mAppCurrentLocale.getLocale().toLanguageTag()); + } + return langTagsToIgnore; + } + + @Override + public Set<LocaleStore.LocaleInfo> getSupportedLocaleList(LocaleStore.LocaleInfo parent, + boolean translatedOnly, boolean isForCountryMode) { + AppLocaleStore.AppLocaleResult result = + AppLocaleStore.getAppSupportedLocales(mContext, mAppPackageName); + Set<String> langTagsToIgnore = getIgnoredLocaleList(translatedOnly); + Set<LocaleStore.LocaleInfo> appLocaleList = new HashSet<>(); + Set<LocaleStore.LocaleInfo> systemLocaleList; + boolean shouldShowList = + result.mLocaleStatus == GET_SUPPORTED_LANGUAGE_FROM_LOCAL_CONFIG + || result.mLocaleStatus == GET_SUPPORTED_LANGUAGE_FROM_ASSET; + + // Get system supported locale list + if (isForCountryMode) { + systemLocaleList = LocaleStore.getLevelLocales(mContext, + langTagsToIgnore, parent, translatedOnly); + } else { + systemLocaleList = LocaleStore.getLevelLocales(mContext, langTagsToIgnore, + null /* no parent */, translatedOnly); + } + + // Add current app locale + if (mAppCurrentLocale != null && !isForCountryMode) { + appLocaleList.add(mAppCurrentLocale); + } + + // Add current system language into suggestion list + for(LocaleStore.LocaleInfo localeInfo: + LocaleStore.getSystemCurrentLocaleInfo()) { + boolean isNotCurrentLocale = mAppCurrentLocale == null + || !localeInfo.getLocale().equals(mAppCurrentLocale.getLocale()); + if (!isForCountryMode && isNotCurrentLocale) { + appLocaleList.add(localeInfo); + } + } + + // Add the languages that included in system supported locale + if (shouldShowList) { + appLocaleList.addAll(filterTheLanguagesNotIncludedInSystemLocale( + systemLocaleList, result.mAppSupportedLocales)); + } + + // Add "system language" option + if (!isForCountryMode && shouldShowList) { + appLocaleList.add(LocaleStore.getSystemDefaultLocaleInfo( + mAppCurrentLocale == null)); + } + + if (Build.isDebuggable()) { + Log.d(TAG, "App locale list: " + appLocaleList); + } + + return appLocaleList; + } + + @Override + public boolean hasSpecificPackageName() { + return true; + } + + private Set<LocaleStore.LocaleInfo> filterTheLanguagesNotIncludedInSystemLocale( + Set<LocaleStore.LocaleInfo> systemLocaleList, + HashSet<Locale> appSupportedLocales) { + Set<LocaleStore.LocaleInfo> filteredList = new HashSet<>(); + + for(LocaleStore.LocaleInfo li: systemLocaleList) { + if (appSupportedLocales.contains(li.getLocale())) { + filteredList.add(li); + } else { + for(Locale l: appSupportedLocales) { + if(LocaleList.matchesLanguageAndScript(li.getLocale(), l)) { + filteredList.add(li); + break; + } + } + } + } + return filteredList; + } +} diff --git a/core/java/com/android/internal/app/LocalePickerWithRegion.java b/core/java/com/android/internal/app/LocalePickerWithRegion.java index 965895f08d6e..3efd279c2639 100644 --- a/core/java/com/android/internal/app/LocalePickerWithRegion.java +++ b/core/java/com/android/internal/app/LocalePickerWithRegion.java @@ -16,16 +16,12 @@ package com.android.internal.app; -import static com.android.internal.app.AppLocaleStore.AppLocaleResult.LocaleStatus; - import android.app.FragmentManager; import android.app.FragmentTransaction; import android.app.ListFragment; import android.content.Context; import android.os.Bundle; -import android.os.LocaleList; import android.text.TextUtils; -import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -36,7 +32,6 @@ import android.widget.SearchView; import com.android.internal.R; -import java.util.Collections; import java.util.HashSet; import java.util.Locale; import java.util.Set; @@ -54,6 +49,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O private SuggestedLocaleAdapter mAdapter; private LocaleSelectedListener mListener; + private LocaleCollectorBase mLocalePickerCollector; private Set<LocaleStore.LocaleInfo> mLocaleList; private LocaleStore.LocaleInfo mParentLocale; private boolean mTranslatedOnly = false; @@ -62,7 +58,6 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O private boolean mPreviousSearchHadFocus = false; private int mFirstVisiblePosition = 0; private int mTopDistance = 0; - private String mAppPackageName; private CharSequence mTitle = null; private OnActionExpandListener mOnActionExpandListener; @@ -79,31 +74,50 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O void onLocaleSelected(LocaleStore.LocaleInfo locale); } - private static LocalePickerWithRegion createCountryPicker(Context context, + /** + * The interface which provides the locale list. + */ + interface LocaleCollectorBase { + /** Gets the ignored locale list. */ + HashSet<String> getIgnoredLocaleList(boolean translatedOnly); + + /** Gets the supported locale list. */ + Set<LocaleStore.LocaleInfo> getSupportedLocaleList(LocaleStore.LocaleInfo parent, + boolean translatedOnly, boolean isForCountryMode); + + /** Indicates if the class work for specific package. */ + boolean hasSpecificPackageName(); + } + + private static LocalePickerWithRegion createCountryPicker( LocaleSelectedListener listener, LocaleStore.LocaleInfo parent, - boolean translatedOnly, String appPackageName, - OnActionExpandListener onActionExpandListener) { + boolean translatedOnly, OnActionExpandListener onActionExpandListener, + LocaleCollectorBase localePickerCollector) { LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); localePicker.setOnActionExpandListener(onActionExpandListener); - boolean shouldShowTheList = localePicker.setListener(context, listener, parent, - translatedOnly, appPackageName); + boolean shouldShowTheList = localePicker.setListener(listener, parent, + translatedOnly, localePickerCollector); return shouldShowTheList ? localePicker : null; } public static LocalePickerWithRegion createLanguagePicker(Context context, LocaleSelectedListener listener, boolean translatedOnly) { - LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); - localePicker.setListener(context, listener, /* parent */ null, translatedOnly, null); - return localePicker; + return createLanguagePicker(context, listener, translatedOnly, null, null); } public static LocalePickerWithRegion createLanguagePicker(Context context, LocaleSelectedListener listener, boolean translatedOnly, String appPackageName, OnActionExpandListener onActionExpandListener) { + LocaleCollectorBase localePickerController; + if (TextUtils.isEmpty(appPackageName)) { + localePickerController = new SystemLocaleCollector(context); + } else { + localePickerController = new AppLocaleCollector(context, appPackageName); + } LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); localePicker.setOnActionExpandListener(onActionExpandListener); - localePicker.setListener( - context, listener, /* parent */ null, translatedOnly, appPackageName); + localePicker.setListener(listener, /* parent */ null, translatedOnly, + localePickerController); return localePicker; } @@ -120,109 +134,23 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O * In this case we don't even show the list, we call the listener with that locale, * "pretending" it was selected, and return false.</p> */ - private boolean setListener(Context context, LocaleSelectedListener listener, - LocaleStore.LocaleInfo parent, boolean translatedOnly, String appPackageName) { + private boolean setListener(LocaleSelectedListener listener, LocaleStore.LocaleInfo parent, + boolean translatedOnly, LocaleCollectorBase localePickerController) { this.mParentLocale = parent; this.mListener = listener; this.mTranslatedOnly = translatedOnly; - this.mAppPackageName = appPackageName; + this.mLocalePickerCollector = localePickerController; setRetainInstance(true); - final HashSet<String> langTagsToIgnore = new HashSet<>(); - LocaleStore.LocaleInfo appCurrentLocale = - LocaleStore.getAppCurrentLocaleInfo(context, appPackageName); - boolean isForCountryMode = parent != null; - - if (!TextUtils.isEmpty(appPackageName) && !isForCountryMode) { - // Filter current system locale to add them into suggestion - LocaleList systemLangList = LocaleList.getDefault(); - for(int i = 0; i < systemLangList.size(); i++) { - langTagsToIgnore.add(systemLangList.get(i).toLanguageTag()); - } - - if (appCurrentLocale != null) { - Log.d(TAG, "appCurrentLocale: " + appCurrentLocale.getLocale().toLanguageTag()); - langTagsToIgnore.add(appCurrentLocale.getLocale().toLanguageTag()); - } else { - Log.d(TAG, "appCurrentLocale is null"); - } - } else if (!translatedOnly) { - final LocaleList userLocales = LocalePicker.getLocales(); - final String[] langTags = userLocales.toLanguageTags().split(","); - Collections.addAll(langTagsToIgnore, langTags); - } + mLocaleList = localePickerController.getSupportedLocaleList( + parent, translatedOnly, parent != null); - if (isForCountryMode) { - mLocaleList = LocaleStore.getLevelLocales(context, - langTagsToIgnore, parent, translatedOnly); - if (mLocaleList.size() <= 1) { - if (listener != null && (mLocaleList.size() == 1)) { - listener.onLocaleSelected(mLocaleList.iterator().next()); - } - return false; - } + if (parent != null && listener != null && mLocaleList.size() == 1) { + listener.onLocaleSelected(mLocaleList.iterator().next()); + return false; } else { - mLocaleList = LocaleStore.getLevelLocales(context, langTagsToIgnore, - null /* no parent */, translatedOnly); + return true; } - Log.d(TAG, "mLocaleList size: " + mLocaleList.size()); - - // Adding current locale and system default option into suggestion list - if(!TextUtils.isEmpty(appPackageName)) { - if (appCurrentLocale != null && !isForCountryMode) { - mLocaleList.add(appCurrentLocale); - } - - AppLocaleStore.AppLocaleResult result = - AppLocaleStore.getAppSupportedLocales(context, appPackageName); - boolean shouldShowList = - result.mLocaleStatus == LocaleStatus.GET_SUPPORTED_LANGUAGE_FROM_LOCAL_CONFIG - || result.mLocaleStatus == LocaleStatus.GET_SUPPORTED_LANGUAGE_FROM_ASSET; - - // Add current system language into suggestion list - for(LocaleStore.LocaleInfo localeInfo: LocaleStore.getSystemCurrentLocaleInfo()) { - boolean isNotCurrentLocale = appCurrentLocale == null - || !localeInfo.getLocale().equals(appCurrentLocale.getLocale()); - if (!isForCountryMode && isNotCurrentLocale) { - mLocaleList.add(localeInfo); - } - } - - // Filter the language not support in app - mLocaleList = filterTheLanguagesNotSupportedInApp( - shouldShowList, result.mAppSupportedLocales); - - Log.d(TAG, "mLocaleList after app-supported filter: " + mLocaleList.size()); - - // Add "system language" - if (!isForCountryMode && shouldShowList) { - mLocaleList.add(LocaleStore.getSystemDefaultLocaleInfo(appCurrentLocale == null)); - } - } - return true; - } - - private Set<LocaleStore.LocaleInfo> filterTheLanguagesNotSupportedInApp( - boolean shouldShowList, HashSet<Locale> supportedLocales) { - Set<LocaleStore.LocaleInfo> filteredList = new HashSet<>(); - if (!shouldShowList) { - return filteredList; - } - - for(LocaleStore.LocaleInfo li: mLocaleList) { - if (supportedLocales.contains(li.getLocale())) { - filteredList.add(li); - } else { - for(Locale l: supportedLocales) { - if(LocaleList.matchesLanguageAndScript(li.getLocale(), l)) { - filteredList.add(li); - break; - } - } - } - } - - return filteredList; } private void returnToParentFrame() { @@ -246,7 +174,9 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O mTitle = getActivity().getTitle(); final boolean countryMode = mParentLocale != null; final Locale sortingLocale = countryMode ? mParentLocale.getLocale() : Locale.getDefault(); - mAdapter = new SuggestedLocaleAdapter(mLocaleList, countryMode, mAppPackageName); + final boolean hasSpecificPackageName = + mLocalePickerCollector != null && mLocalePickerCollector.hasSpecificPackageName(); + mAdapter = new SuggestedLocaleAdapter(mLocaleList, countryMode, hasSpecificPackageName); final LocaleHelper.LocaleInfoComparator comp = new LocaleHelper.LocaleInfoComparator(sortingLocale, countryMode); mAdapter.sort(comp); @@ -321,8 +251,8 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O returnToParentFrame(); } else { LocalePickerWithRegion selector = LocalePickerWithRegion.createCountryPicker( - getContext(), mListener, locale, mTranslatedOnly /* translate only */, - mAppPackageName, mOnActionExpandListener); + mListener, locale, mTranslatedOnly /* translate only */, + mOnActionExpandListener, this.mLocalePickerCollector); if (selector != null) { getFragmentManager().beginTransaction() .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) @@ -340,7 +270,8 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O inflater.inflate(R.menu.language_selection_list, menu); final MenuItem searchMenuItem = menu.findItem(R.id.locale_search_menu); - if (!TextUtils.isEmpty(mAppPackageName) && mOnActionExpandListener != null) { + if (mLocalePickerCollector.hasSpecificPackageName() + && mOnActionExpandListener != null) { searchMenuItem.setOnActionExpandListener(mOnActionExpandListener); } diff --git a/core/java/com/android/internal/app/SuggestedLocaleAdapter.java b/core/java/com/android/internal/app/SuggestedLocaleAdapter.java index 8f6bc438ed9f..a61a6d7d241b 100644 --- a/core/java/com/android/internal/app/SuggestedLocaleAdapter.java +++ b/core/java/com/android/internal/app/SuggestedLocaleAdapter.java @@ -69,17 +69,17 @@ public class SuggestedLocaleAdapter extends BaseAdapter implements Filterable { protected Locale mDisplayLocale = null; // used to potentially cache a modified Context that uses mDisplayLocale protected Context mContextOverride = null; - private String mAppPackageName; + private boolean mHasSpecificAppPackageName; public SuggestedLocaleAdapter(Set<LocaleStore.LocaleInfo> localeOptions, boolean countryMode) { - this(localeOptions, countryMode, null); + this(localeOptions, countryMode, false); } public SuggestedLocaleAdapter(Set<LocaleStore.LocaleInfo> localeOptions, boolean countryMode, - String appPackageName) { + boolean hasSpecificAppPackageName) { mCountryMode = countryMode; mLocaleOptions = new ArrayList<>(localeOptions.size()); - mAppPackageName = appPackageName; + mHasSpecificAppPackageName = hasSpecificAppPackageName; for (LocaleStore.LocaleInfo li : localeOptions) { if (li.isSuggested()) { @@ -136,7 +136,7 @@ public class SuggestedLocaleAdapter extends BaseAdapter implements Filterable { @Override public int getViewTypeCount() { - if (!TextUtils.isEmpty(mAppPackageName) && showHeaders()) { + if (mHasSpecificAppPackageName && showHeaders()) { // Two headers, 1 "System language", 1 current locale return APP_LANGUAGE_PICKER_TYPE_COUNT; } else if (showHeaders()) { diff --git a/core/java/com/android/internal/app/SystemLocaleCollector.java b/core/java/com/android/internal/app/SystemLocaleCollector.java new file mode 100644 index 000000000000..9a6d4c192fdc --- /dev/null +++ b/core/java/com/android/internal/app/SystemLocaleCollector.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.app; + +import android.content.Context; +import android.os.LocaleList; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +/** The Locale data collector for System language. */ +class SystemLocaleCollector implements LocalePickerWithRegion.LocaleCollectorBase { + private final Context mContext; + + SystemLocaleCollector(Context context) { + mContext = context; + } + + @Override + public HashSet<String> getIgnoredLocaleList(boolean translatedOnly) { + HashSet<String> ignoreList = new HashSet<>(); + if (!translatedOnly) { + final LocaleList userLocales = LocalePicker.getLocales(); + final String[] langTags = userLocales.toLanguageTags().split(","); + Collections.addAll(ignoreList, langTags); + } + return ignoreList; + } + + @Override + public Set<LocaleStore.LocaleInfo> getSupportedLocaleList(LocaleStore.LocaleInfo parent, + boolean translatedOnly, boolean isForCountryMode) { + Set<String> langTagsToIgnore = getIgnoredLocaleList(translatedOnly); + Set<LocaleStore.LocaleInfo> localeList; + + if (isForCountryMode) { + localeList = LocaleStore.getLevelLocales(mContext, + langTagsToIgnore, parent, translatedOnly); + } else { + localeList = LocaleStore.getLevelLocales(mContext, langTagsToIgnore, + null /* no parent */, translatedOnly); + } + return localeList; + } + + + @Override + public boolean hasSpecificPackageName() { + return false; + } +}
\ No newline at end of file diff --git a/core/java/com/android/internal/backup/IBackupTransport.aidl b/core/java/com/android/internal/backup/IBackupTransport.aidl index f09e176beea0..21c7baab4e83 100644 --- a/core/java/com/android/internal/backup/IBackupTransport.aidl +++ b/core/java/com/android/internal/backup/IBackupTransport.aidl @@ -16,6 +16,7 @@ package com.android.internal.backup; +import android.app.backup.IBackupManagerMonitor; import android.app.backup.RestoreDescription; import android.app.backup.RestoreSet; import android.content.Intent; @@ -400,4 +401,13 @@ oneway interface IBackupTransport { * <p>For supported flags see {@link android.app.backup.BackupAgent}. */ void getTransportFlags(in AndroidFuture<int> resultFuture); + + /** + * Ask the transport for a {@link IBackupManagerMonitor} instance which will be used by the + * framework to report logging events back to the transport. + * + * Backups requested from outside the framework may pass in a monitor with the request, + * however backups initiated by the framework will call this method to retrieve one. + */ + void getBackupManagerMonitor(in AndroidFuture<IBackupManagerMonitor> resultFuture); } diff --git a/core/java/com/android/internal/backup/OWNERS b/core/java/com/android/internal/backup/OWNERS new file mode 100644 index 000000000000..53b6c78b3895 --- /dev/null +++ b/core/java/com/android/internal/backup/OWNERS @@ -0,0 +1 @@ +include /services/backup/OWNERS
\ No newline at end of file diff --git a/core/java/com/android/internal/infra/AbstractRemoteService.java b/core/java/com/android/internal/infra/AbstractRemoteService.java index f725b37acde7..d5f7ba57a694 100644 --- a/core/java/com/android/internal/infra/AbstractRemoteService.java +++ b/core/java/com/android/internal/infra/AbstractRemoteService.java @@ -20,10 +20,14 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainMessa import android.annotation.NonNull; import android.annotation.Nullable; +import android.app.ActivityManager; +import android.app.ApplicationExitInfo; +import android.app.IActivityManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.content.pm.ParceledListSlice; import android.os.Handler; import android.os.IBinder; import android.os.IBinder.DeathRecipient; @@ -39,6 +43,7 @@ import com.android.internal.annotations.GuardedBy; import java.io.PrintWriter; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.List; /** * Base class representing a remote service. @@ -66,6 +71,7 @@ import java.util.ArrayList; @Deprecated public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I>, I extends IInterface> implements DeathRecipient { + private static final int SERVICE_NOT_EXIST = -1; private static final int MSG_BIND = 1; private static final int MSG_UNBIND = 2; @@ -96,6 +102,9 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I // Used just for debugging purposes (on dump) private long mNextUnbind; + // Used just for debugging purposes (on dump) + private int mServiceExitReason; + private int mServiceExitSubReason; /** Requests that have been scheduled, but that are not finished yet */ private final ArrayList<BasePendingRequest<S, I>> mUnfinishedRequests = new ArrayList<>(); @@ -126,6 +135,8 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I mUserId = userId; mHandler = new Handler(handler.getLooper()); mBindingFlags = bindingFlags; + mServiceExitReason = SERVICE_NOT_EXIST; + mServiceExitSubReason = SERVICE_NOT_EXIST; } /** @@ -229,6 +240,7 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I if (mService != null) { mService.asBinder().unlinkToDeath(this, 0); } + updateServicelicationExitInfo(mComponentName, mUserId); mConnecting = true; mService = null; mServiceDied = true; @@ -239,6 +251,33 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I handleBindFailure(); } + private void updateServicelicationExitInfo(ComponentName componentName, int userId) { + IActivityManager am = ActivityManager.getService(); + String packageName = componentName.getPackageName(); + ParceledListSlice<ApplicationExitInfo> plistSlice = null; + try { + plistSlice = am.getHistoricalProcessExitReasons(packageName, 0, 1, userId); + } catch (RemoteException e) { + // do nothing. The local binder so it can not throw it. + } + if (plistSlice == null) { + return; + } + List<ApplicationExitInfo> list = plistSlice.getList(); + if (list.isEmpty()) { + return; + } + ApplicationExitInfo info = list.get(0); + mServiceExitReason = info.getReason(); + mServiceExitSubReason = info.getSubReason(); + if (mVerbose) { + Slog.v(mTag, "updateServicelicationExitInfo: exitReason=" + + ApplicationExitInfo.reasonCodeToString(mServiceExitReason) + + " exitSubReason= " + ApplicationExitInfo.subreasonToString( + mServiceExitSubReason)); + } + } + // Note: we are dumping without a lock held so this is a bit racy but // adding a lock to a class that offloads to a handler thread would // mean adding a lock adding overhead to normal runtime operation. @@ -272,6 +311,16 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I } } pw.println(); + if (mServiceExitReason != SERVICE_NOT_EXIST) { + pw.append(prefix).append(tab).append("serviceExistReason=") + .append(ApplicationExitInfo.reasonCodeToString(mServiceExitReason)); + pw.println(); + } + if (mServiceExitSubReason != SERVICE_NOT_EXIST) { + pw.append(prefix).append(tab).append("serviceExistSubReason=") + .append(ApplicationExitInfo.subreasonToString(mServiceExitSubReason)); + pw.println(); + } pw.append(prefix).append("mBindingFlags=").println(mBindingFlags); pw.append(prefix).append("idleTimeout=") .append(Long.toString(idleTimeout / 1000)).append("s\n"); @@ -498,6 +547,8 @@ public abstract class AbstractRemoteService<S extends AbstractRemoteService<S, I return; } mService = getServiceInterface(service); + mServiceExitReason = SERVICE_NOT_EXIST; + mServiceExitSubReason = SERVICE_NOT_EXIST; handleOnConnectedStateChangedInternal(true); mServiceDied = false; } diff --git a/core/java/com/android/internal/inputmethod/EditableInputConnection.java b/core/java/com/android/internal/inputmethod/EditableInputConnection.java index f260d7dfc6a6..f600c36cd8c9 100644 --- a/core/java/com/android/internal/inputmethod/EditableInputConnection.java +++ b/core/java/com/android/internal/inputmethod/EditableInputConnection.java @@ -35,6 +35,7 @@ import android.view.inputmethod.BaseInputConnection; import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.CorrectionInfo; import android.view.inputmethod.DeleteGesture; +import android.view.inputmethod.DeleteRangeGesture; import android.view.inputmethod.DumpableInputConnection; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; @@ -44,6 +45,7 @@ import android.view.inputmethod.InsertGesture; import android.view.inputmethod.JoinOrSplitGesture; import android.view.inputmethod.RemoveSpaceGesture; import android.view.inputmethod.SelectGesture; +import android.view.inputmethod.SelectRangeGesture; import android.widget.TextView; import java.util.concurrent.Executor; @@ -275,8 +277,12 @@ public final class EditableInputConnection extends BaseInputConnection int result; if (gesture instanceof SelectGesture) { result = mTextView.performHandwritingSelectGesture((SelectGesture) gesture); + } else if (gesture instanceof SelectRangeGesture) { + result = mTextView.performHandwritingSelectRangeGesture((SelectRangeGesture) gesture); } else if (gesture instanceof DeleteGesture) { result = mTextView.performHandwritingDeleteGesture((DeleteGesture) gesture); + } else if (gesture instanceof DeleteRangeGesture) { + result = mTextView.performHandwritingDeleteRangeGesture((DeleteRangeGesture) gesture); } else if (gesture instanceof InsertGesture) { result = mTextView.performHandwritingInsertGesture((InsertGesture) gesture); } else if (gesture instanceof RemoveSpaceGesture) { diff --git a/core/java/com/android/internal/inputmethod/IInputMethodManagerGlobal.java b/core/java/com/android/internal/inputmethod/IInputMethodManagerGlobal.java new file mode 100644 index 000000000000..f0fe573d20e0 --- /dev/null +++ b/core/java/com/android/internal/inputmethod/IInputMethodManagerGlobal.java @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.inputmethod; + +import android.annotation.AnyThread; +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.annotation.RequiresNoPermission; +import android.annotation.RequiresPermission; +import android.content.Context; +import android.os.RemoteException; +import android.os.ServiceManager; + +import com.android.internal.view.IInputMethodManager; + +import java.util.function.Consumer; + +/** + * A global wrapper to directly invoke {@link IInputMethodManager} IPCs. + * + * <p>All public static methods are guaranteed to be thread-safe.</p> + * + * <p>All public methods are guaranteed to do nothing when {@link IInputMethodManager} is + * unavailable.</p> + */ +public final class IInputMethodManagerGlobal { + @Nullable + private static volatile IInputMethodManager sServiceCache = null; + + /** + * @return {@code true} if {@link IInputMethodManager} is available. + */ + @AnyThread + public static boolean isAvailable() { + return getService() != null; + } + + @AnyThread + @Nullable + private static IInputMethodManager getService() { + IInputMethodManager service = sServiceCache; + if (service == null) { + service = IInputMethodManager.Stub.asInterface( + ServiceManager.getService(Context.INPUT_METHOD_SERVICE)); + if (service == null) { + return null; + } + sServiceCache = service; + } + return service; + } + + @AnyThread + private static void handleRemoteExceptionOrRethrow(@NonNull RemoteException e, + @Nullable Consumer<RemoteException> exceptionHandler) { + if (exceptionHandler != null) { + exceptionHandler.accept(e); + } else { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Invokes {@link IInputMethodManager#startProtoDump(byte[], int, String)}. + * + * @param protoDump client or service side information to be stored by the server + * @param source where the information is coming from, refer to + * {@link ImeTracing#IME_TRACING_FROM_CLIENT} and + * {@link ImeTracing#IME_TRACING_FROM_IMS} + * @param where where the information is coming from. + * @param exceptionHandler an optional {@link RemoteException} handler. + */ + @RequiresNoPermission + @AnyThread + public static void startProtoDump(byte[] protoDump, int source, String where, + @Nullable Consumer<RemoteException> exceptionHandler) { + final IInputMethodManager service = getService(); + if (service == null) { + return; + } + try { + service.startProtoDump(protoDump, source, where); + } catch (RemoteException e) { + handleRemoteExceptionOrRethrow(e, exceptionHandler); + } + } + + /** + * Invokes {@link IInputMethodManager#startImeTrace()}. + * + * @param exceptionHandler an optional {@link RemoteException} handler. + */ + @RequiresPermission(android.Manifest.permission.CONTROL_UI_TRACING) + @AnyThread + public static void startImeTrace(@Nullable Consumer<RemoteException> exceptionHandler) { + final IInputMethodManager service = getService(); + if (service == null) { + return; + } + try { + service.startImeTrace(); + } catch (RemoteException e) { + handleRemoteExceptionOrRethrow(e, exceptionHandler); + } + } + + /** + * Invokes {@link IInputMethodManager#stopImeTrace()}. + * + * @param exceptionHandler an optional {@link RemoteException} handler. + */ + @RequiresPermission(android.Manifest.permission.CONTROL_UI_TRACING) + @AnyThread + public static void stopImeTrace(@Nullable Consumer<RemoteException> exceptionHandler) { + final IInputMethodManager service = getService(); + if (service == null) { + return; + } + try { + service.stopImeTrace(); + } catch (RemoteException e) { + handleRemoteExceptionOrRethrow(e, exceptionHandler); + } + } + + /** + * Invokes {@link IInputMethodManager#isImeTraceEnabled()}. + * + * @return The return value of {@link IInputMethodManager#isImeTraceEnabled()}. + */ + @RequiresNoPermission + @AnyThread + public static boolean isImeTraceEnabled() { + final IInputMethodManager service = getService(); + if (service == null) { + return false; + } + try { + return service.isImeTraceEnabled(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } +} diff --git a/core/java/com/android/internal/inputmethod/ImeTracing.java b/core/java/com/android/internal/inputmethod/ImeTracing.java index ee6713118f75..a4328cc14aa0 100644 --- a/core/java/com/android/internal/inputmethod/ImeTracing.java +++ b/core/java/com/android/internal/inputmethod/ImeTracing.java @@ -19,16 +19,10 @@ package com.android.internal.inputmethod; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.app.ActivityThread; -import android.content.Context; -import android.os.RemoteException; -import android.os.ServiceManager; -import android.os.ServiceManager.ServiceNotFoundException; import android.util.Log; import android.util.proto.ProtoOutputStream; import android.view.inputmethod.InputMethodManager; -import com.android.internal.view.IInputMethodManager; - import java.io.PrintWriter; /** @@ -49,16 +43,12 @@ public abstract class ImeTracing { private static ImeTracing sInstance; static boolean sEnabled = false; - IInputMethodManager mService; + + private final boolean mIsAvailable = IInputMethodManagerGlobal.isAvailable(); protected boolean mDumpInProgress; protected final Object mDumpInProgressLock = new Object(); - ImeTracing() throws ServiceNotFoundException { - mService = IInputMethodManager.Stub.asInterface( - ServiceManager.getServiceOrThrow(Context.INPUT_METHOD_SERVICE)); - } - /** * Returns an instance of {@link ImeTracingServerImpl} when called from a server side class * and an instance of {@link ImeTracingClientImpl} when called from a client side class. @@ -68,11 +58,14 @@ public abstract class ImeTracing { */ public static ImeTracing getInstance() { if (sInstance == null) { - try { - sInstance = isSystemProcess() - ? new ImeTracingServerImpl() : new ImeTracingClientImpl(); - } catch (RemoteException | ServiceNotFoundException e) { - Log.e(TAG, "Exception while creating ImeTracing instance", e); + if (isSystemProcess()) { + sInstance = new ImeTracingServerImpl(); + } else { + try { + sInstance = new ImeTracingClientImpl(); + } catch (RuntimeException e) { + Log.e(TAG, "Exception while creating ImeTracingClientImpl instance", e); + } } } return sInstance; @@ -87,32 +80,25 @@ public abstract class ImeTracing { * and {@see #IME_TRACING_FROM_IMS} * @param where */ - public void sendToService(byte[] protoDump, int source, String where) throws RemoteException { - mService.startProtoDump(protoDump, source, where); + public void sendToService(byte[] protoDump, int source, String where) { + IInputMethodManagerGlobal.startProtoDump(protoDump, source, where, + e -> Log.e(TAG, "Exception while sending ime-related dump to server", e)); } /** - * Calling {@link IInputMethodManager#startImeTrace()}} to capture IME trace. + * Start IME trace. */ @RequiresPermission(android.Manifest.permission.CONTROL_UI_TRACING) public final void startImeTrace() { - try { - mService.startImeTrace(); - } catch (RemoteException e) { - Log.e(TAG, "Could not start ime trace." + e); - } + IInputMethodManagerGlobal.startImeTrace(e -> Log.e(TAG, "Could not start ime trace.", e)); } /** - * Calling {@link IInputMethodManager#stopImeTrace()} to stop IME trace. + * Stop IME trace. */ @RequiresPermission(android.Manifest.permission.CONTROL_UI_TRACING) public final void stopImeTrace() { - try { - mService.stopImeTrace(); - } catch (RemoteException e) { - Log.e(TAG, "Could not stop ime trace." + e); - } + IInputMethodManagerGlobal.stopImeTrace(e -> Log.e(TAG, "Could not stop ime trace.", e)); } /** @@ -193,7 +179,7 @@ public abstract class ImeTracing { * @return {@code true} if tracing is available, {@code false} otherwise. */ public boolean isAvailable() { - return mService != null; + return mIsAvailable; } /** diff --git a/core/java/com/android/internal/inputmethod/ImeTracingClientImpl.java b/core/java/com/android/internal/inputmethod/ImeTracingClientImpl.java index 31d278b5ca54..4caca84d76c7 100644 --- a/core/java/com/android/internal/inputmethod/ImeTracingClientImpl.java +++ b/core/java/com/android/internal/inputmethod/ImeTracingClientImpl.java @@ -18,9 +18,6 @@ package com.android.internal.inputmethod; import android.annotation.NonNull; import android.annotation.Nullable; -import android.os.RemoteException; -import android.os.ServiceManager.ServiceNotFoundException; -import android.util.Log; import android.util.proto.ProtoOutputStream; import android.view.inputmethod.InputMethodManager; @@ -30,8 +27,8 @@ import java.io.PrintWriter; * An implementation of {@link ImeTracing} for non system_server processes. */ class ImeTracingClientImpl extends ImeTracing { - ImeTracingClientImpl() throws ServiceNotFoundException, RemoteException { - sEnabled = mService.isImeTraceEnabled(); + ImeTracingClientImpl() { + sEnabled = IInputMethodManagerGlobal.isImeTraceEnabled(); } @Override @@ -56,8 +53,6 @@ class ImeTracingClientImpl extends ImeTracing { ProtoOutputStream proto = new ProtoOutputStream(); immInstance.dumpDebug(proto, icProto); sendToService(proto.getBytes(), IME_TRACING_FROM_CLIENT, where); - } catch (RemoteException e) { - Log.e(TAG, "Exception while sending ime-related client dump to server", e); } finally { mDumpInProgress = false; } @@ -81,8 +76,6 @@ class ImeTracingClientImpl extends ImeTracing { ProtoOutputStream proto = new ProtoOutputStream(); dumper.dumpToProto(proto, icProto); sendToService(proto.getBytes(), IME_TRACING_FROM_IMS, where); - } catch (RemoteException e) { - Log.e(TAG, "Exception while sending ime-related service dump to server", e); } finally { mDumpInProgress = false; } diff --git a/core/java/com/android/internal/inputmethod/ImeTracingServerImpl.java b/core/java/com/android/internal/inputmethod/ImeTracingServerImpl.java index f885a7e775ed..2a242a5369b0 100644 --- a/core/java/com/android/internal/inputmethod/ImeTracingServerImpl.java +++ b/core/java/com/android/internal/inputmethod/ImeTracingServerImpl.java @@ -19,8 +19,6 @@ package com.android.internal.inputmethod; import static android.os.Build.IS_USER; import android.annotation.Nullable; -import android.os.RemoteException; -import android.os.ServiceManager.ServiceNotFoundException; import android.os.SystemClock; import android.util.Log; import android.util.proto.ProtoOutputStream; @@ -71,7 +69,7 @@ class ImeTracingServerImpl extends ImeTracing { private final Object mEnabledLock = new Object(); - ImeTracingServerImpl() throws ServiceNotFoundException { + ImeTracingServerImpl() { mBufferClients = new TraceBuffer<>(BUFFER_CAPACITY); mTraceFileClients = new File(TRACE_DIRNAME + TRACE_FILENAME_CLIENTS); mBufferIms = new TraceBuffer<>(BUFFER_CAPACITY); @@ -132,8 +130,6 @@ class ImeTracingServerImpl extends ImeTracing { try { sendToService(null, IME_TRACING_FROM_IMMS, where); - } catch (RemoteException e) { - Log.e(TAG, "Exception while sending ime-related manager service dump to server", e); } finally { mDumpInProgress = false; } diff --git a/core/java/com/android/internal/inputmethod/InputMethodDebug.java b/core/java/com/android/internal/inputmethod/InputMethodDebug.java index 09c97b39e260..1b4afd6dd39f 100644 --- a/core/java/com/android/internal/inputmethod/InputMethodDebug.java +++ b/core/java/com/android/internal/inputmethod/InputMethodDebug.java @@ -49,6 +49,8 @@ public final class InputMethodDebug { return "WINDOW_FOCUS_GAIN"; case StartInputReason.WINDOW_FOCUS_GAIN_REPORT_ONLY: return "WINDOW_FOCUS_GAIN_REPORT_ONLY"; + case StartInputReason.SCHEDULED_CHECK_FOCUS: + return "SCHEDULED_CHECK_FOCUS"; case StartInputReason.APP_CALLED_RESTART_INPUT_API: return "APP_CALLED_RESTART_INPUT_API"; case StartInputReason.CHECK_FOCUS: diff --git a/core/java/com/android/internal/inputmethod/StartInputReason.java b/core/java/com/android/internal/inputmethod/StartInputReason.java index 51ed841410d7..733d9751c810 100644 --- a/core/java/com/android/internal/inputmethod/StartInputReason.java +++ b/core/java/com/android/internal/inputmethod/StartInputReason.java @@ -31,6 +31,7 @@ import java.lang.annotation.Retention; StartInputReason.UNSPECIFIED, StartInputReason.WINDOW_FOCUS_GAIN, StartInputReason.WINDOW_FOCUS_GAIN_REPORT_ONLY, + StartInputReason.SCHEDULED_CHECK_FOCUS, StartInputReason.APP_CALLED_RESTART_INPUT_API, StartInputReason.CHECK_FOCUS, StartInputReason.BOUND_TO_IMMS, @@ -58,6 +59,11 @@ public @interface StartInputReason { */ int WINDOW_FOCUS_GAIN_REPORT_ONLY = 2; /** + * Similar to {@link #CHECK_FOCUS}, but the one scheduled with + * {@link android.view.ViewRootImpl#dispatchCheckFocus()}. + */ + int SCHEDULED_CHECK_FOCUS = 3; + /** * {@link android.view.inputmethod.InputMethodManager#restartInput(android.view.View)} is * either explicitly called by the application or indirectly called by some Framework class * (e.g. {@link android.widget.EditText}). diff --git a/core/java/com/android/internal/jank/InteractionJankMonitor.java b/core/java/com/android/internal/jank/InteractionJankMonitor.java index 76f33a6c3937..b0d59226d4ec 100644 --- a/core/java/com/android/internal/jank/InteractionJankMonitor.java +++ b/core/java/com/android/internal/jank/InteractionJankMonitor.java @@ -45,6 +45,7 @@ import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_IN import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__ONE_HANDED_ENTER_TRANSITION; import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__ONE_HANDED_EXIT_TRANSITION; import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__PIP_TRANSITION; +import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__RECENTS_SCROLLING; import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SCREEN_OFF; import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SCREEN_OFF_SHOW_AOD; import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SETTINGS_PAGE_SCROLL; @@ -224,6 +225,7 @@ public class InteractionJankMonitor { public static final int CUJ_SHADE_CLEAR_ALL = 62; public static final int CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION = 63; public static final int CUJ_LOCKSCREEN_OCCLUSION = 64; + public static final int CUJ_RECENTS_SCROLLING = 65; private static final int NO_STATSD_LOGGING = -1; @@ -297,6 +299,7 @@ public class InteractionJankMonitor { UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__SHADE_CLEAR_ALL, UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_UNLOCK_ENTRANCE_ANIMATION, UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_OCCLUSION, + UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__RECENTS_SCROLLING, }; private static class InstanceHolder { @@ -385,7 +388,8 @@ public class InteractionJankMonitor { CUJ_TASKBAR_COLLAPSE, CUJ_SHADE_CLEAR_ALL, CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION, - CUJ_LOCKSCREEN_OCCLUSION + CUJ_LOCKSCREEN_OCCLUSION, + CUJ_RECENTS_SCROLLING }) @Retention(RetentionPolicy.SOURCE) public @interface CujType { @@ -900,6 +904,8 @@ public class InteractionJankMonitor { return "LAUNCHER_UNLOCK_ENTRANCE_ANIMATION"; case CUJ_LOCKSCREEN_OCCLUSION: return "LOCKSCREEN_OCCLUSION"; + case CUJ_RECENTS_SCROLLING: + return "RECENTS_SCROLLING"; } return "UNKNOWN"; } diff --git a/core/java/com/android/internal/notification/SystemNotificationChannels.java b/core/java/com/android/internal/notification/SystemNotificationChannels.java index 681b46a01c8d..0489dc812ab6 100644 --- a/core/java/com/android/internal/notification/SystemNotificationChannels.java +++ b/core/java/com/android/internal/notification/SystemNotificationChannels.java @@ -35,7 +35,10 @@ import java.util.List; // Manages the NotificationChannels used by the frameworks itself. public class SystemNotificationChannels { - public static String VIRTUAL_KEYBOARD = "VIRTUAL_KEYBOARD"; + /** + * @deprecated Legacy system channel, which is no longer used, + */ + @Deprecated public static String VIRTUAL_KEYBOARD = "VIRTUAL_KEYBOARD"; public static String PHYSICAL_KEYBOARD = "PHYSICAL_KEYBOARD"; public static String SECURITY = "SECURITY"; public static String CAR_MODE = "CAR_MODE"; @@ -72,13 +75,6 @@ public class SystemNotificationChannels { public static void createAll(Context context) { final NotificationManager nm = context.getSystemService(NotificationManager.class); List<NotificationChannel> channelsList = new ArrayList<NotificationChannel>(); - final NotificationChannel keyboard = new NotificationChannel( - VIRTUAL_KEYBOARD, - context.getString(R.string.notification_channel_virtual_keyboard), - NotificationManager.IMPORTANCE_LOW); - keyboard.setBlockable(true); - channelsList.add(keyboard); - final NotificationChannel physicalKeyboardChannel = new NotificationChannel( PHYSICAL_KEYBOARD, context.getString(R.string.notification_channel_physical_keyboard), @@ -237,6 +233,7 @@ public class SystemNotificationChannels { /** Remove notification channels which are no longer used */ public static void removeDeprecated(Context context) { final NotificationManager nm = context.getSystemService(NotificationManager.class); + nm.deleteNotificationChannel(VIRTUAL_KEYBOARD); nm.deleteNotificationChannel(DEVICE_ADMIN_DEPRECATED); nm.deleteNotificationChannel(SYSTEM_CHANGES_DEPRECATED); } diff --git a/core/java/com/android/internal/os/SystemServerClassLoaderFactory.java b/core/java/com/android/internal/os/SystemServerClassLoaderFactory.java index a03bac45d14f..90ad34d6924f 100644 --- a/core/java/com/android/internal/os/SystemServerClassLoaderFactory.java +++ b/core/java/com/android/internal/os/SystemServerClassLoaderFactory.java @@ -87,6 +87,10 @@ public final class SystemServerClassLoaderFactory { if (isTestOnly) { return true; } + // If system server is being profiled, it's OK to create class loaders anytime. + if (ZygoteInit.shouldProfileSystemServer()) { + return true; + } return false; } diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java index ca1ae194cb12..076e4e118e66 100644 --- a/core/java/com/android/internal/os/ZygoteInit.java +++ b/core/java/com/android/internal/os/ZygoteInit.java @@ -238,6 +238,21 @@ public class ZygoteInit { Trace.traceEnd(Trace.TRACE_TAG_DALVIK); } + private static boolean isExperimentEnabled(String experiment) { + boolean defaultValue = SystemProperties.getBoolean( + "dalvik.vm." + experiment, + /*def=*/false); + // Can't use device_config since we are the zygote, and it's not initialized at this point. + return SystemProperties.getBoolean( + "persist.device_config." + DeviceConfig.NAMESPACE_RUNTIME_NATIVE_BOOT + + "." + experiment, + defaultValue); + } + + /* package-private */ static boolean shouldProfileSystemServer() { + return isExperimentEnabled("profilesystemserver"); + } + /** * Performs Zygote process initialization. Loads and initializes commonly used classes. * @@ -341,14 +356,7 @@ public class ZygoteInit { // If we are profiling the boot image, reset the Jit counters after preloading the // classes. We want to preload for performance, and we can use method counters to // infer what clases are used after calling resetJitCounters, for profile purposes. - // Can't use device_config since we are the zygote. - String prop = SystemProperties.get( - "persist.device_config.runtime_native_boot.profilebootclasspath", ""); - // Might be empty if the property is unset since the default is "". - if (prop.length() == 0) { - prop = SystemProperties.get("dalvik.vm.profilebootclasspath", ""); - } - if ("true".equals(prop)) { + if (isExperimentEnabled("profilebootclasspath")) { Trace.traceBegin(Trace.TRACE_TAG_DALVIK, "ResetJitCounters"); VMRuntime.resetJitCounters(); Trace.traceEnd(Trace.TRACE_TAG_DALVIK); @@ -489,16 +497,6 @@ public class ZygoteInit { ZygoteHooks.gcAndFinalize(); } - private static boolean shouldProfileSystemServer() { - boolean defaultValue = SystemProperties.getBoolean("dalvik.vm.profilesystemserver", - /*default=*/ false); - // Can't use DeviceConfig since it's not initialized at this point. - return SystemProperties.getBoolean( - "persist.device_config." + DeviceConfig.NAMESPACE_RUNTIME_NATIVE_BOOT - + ".profilesystemserver", - defaultValue); - } - /** * Finish remaining work for the newly forked system server process. */ @@ -517,7 +515,12 @@ public class ZygoteInit { if (shouldProfileSystemServer() && (Build.IS_USERDEBUG || Build.IS_ENG)) { try { Log.d(TAG, "Preparing system server profile"); - prepareSystemServerProfile(systemServerClasspath); + final String standaloneSystemServerJars = + Os.getenv("STANDALONE_SYSTEMSERVER_JARS"); + final String systemServerPaths = standaloneSystemServerJars != null + ? String.join(":", systemServerClasspath, standaloneSystemServerJars) + : systemServerClasspath; + prepareSystemServerProfile(systemServerPaths); } catch (Exception e) { Log.wtf(TAG, "Failed to set up system server profile", e); } @@ -580,6 +583,13 @@ public class ZygoteInit { * in the forked system server process in the zygote SELinux domain. */ private static void prefetchStandaloneSystemServerJars() { + if (shouldProfileSystemServer()) { + // We don't prefetch AOT artifacts if we are profiling system server, as we are going to + // JIT it. + // This method only gets called from native and should already be skipped if we profile + // system server. Still, be robust and check it again. + return; + } String envStr = Os.getenv("STANDALONE_SYSTEMSERVER_JARS"); if (TextUtils.isEmpty(envStr)) { return; @@ -603,12 +613,12 @@ public class ZygoteInit { * permissions. From the installer perspective the system server is a regular package which can * capture profile information. */ - private static void prepareSystemServerProfile(String systemServerClasspath) + private static void prepareSystemServerProfile(String systemServerPaths) throws RemoteException { - if (systemServerClasspath.isEmpty()) { + if (systemServerPaths.isEmpty()) { return; } - String[] codePaths = systemServerClasspath.split(":"); + String[] codePaths = systemServerPaths.split(":"); final IInstalld installd = IInstalld.Stub .asInterface(ServiceManager.getService("installd")); diff --git a/core/java/com/android/internal/util/function/pooled/OmniFunction.java b/core/java/com/android/internal/util/function/pooled/OmniFunction.java index b6d2dedc1bfd..931477f0b332 100755 --- a/core/java/com/android/internal/util/function/pooled/OmniFunction.java +++ b/core/java/com/android/internal/util/function/pooled/OmniFunction.java @@ -51,13 +51,13 @@ import java.util.function.Function; * @hide */ abstract class OmniFunction<A, B, C, D, E, F, G, H, I, J, K, R> implements - PooledFunction<A, R>, BiFunction<A, B, R>, TriFunction<A, B, C, R>, + BiFunction<A, B, R>, TriFunction<A, B, C, R>, QuadFunction<A, B, C, D, R>, QuintFunction<A, B, C, D, E, R>, HexFunction<A, B, C, D, E, F, R>, HeptFunction<A, B, C, D, E, F, G, R>, OctFunction<A, B, C, D, E, F, G, H, R>, NonaFunction<A, B, C, D, E, F, G, H, I, R>, DecFunction<A, B, C, D, E, F, G, H, I, J, R>, UndecFunction<A, B, C, D, E, F, G, H, I, J, K, R>, - PooledConsumer<A>, BiConsumer<A, B>, TriConsumer<A, B, C>, QuadConsumer<A, B, C, D>, + BiConsumer<A, B>, TriConsumer<A, B, C>, QuadConsumer<A, B, C, D>, QuintConsumer<A, B, C, D, E>, HexConsumer<A, B, C, D, E, F>, HeptConsumer<A, B, C, D, E, F, G>, OctConsumer<A, B, C, D, E, F, G, H>, NonaConsumer<A, B, C, D, E, F, G, H, I>, DecConsumer<A, B, C, D, E, F, G, H, I, J>, @@ -73,11 +73,6 @@ abstract class OmniFunction<A, B, C, D, E, F, G, H, I, J, K, R> implements return invoke(o, o2, null, null, null, null, null, null, null, null, null); } - @Override - public R apply(A o) { - return invoke(o, null, null, null, null, null, null, null, null, null, null); - } - public abstract <V> OmniFunction<A, B, C, D, E, F, G, H, I, J, K, V> andThen( Function<? super R, ? extends V> after); public abstract OmniFunction<A, B, C, D, E, F, G, H, I, J, K, R> negate(); @@ -88,11 +83,6 @@ abstract class OmniFunction<A, B, C, D, E, F, G, H, I, J, K, R> implements } @Override - public void accept(A o) { - invoke(o, null, null, null, null, null, null, null, null, null, null); - } - - @Override public void run() { invoke(null, null, null, null, null, null, null, null, null, null, null); } @@ -133,11 +123,6 @@ abstract class OmniFunction<A, B, C, D, E, F, G, H, I, J, K, R> implements } @Override - public PooledConsumer<A> asConsumer() { - return this; - } - - @Override public R apply(A a, B b, C c) { return invoke(a, b, c, null, null, null, null, null, null, null, null); } diff --git a/core/java/com/android/internal/util/function/pooled/PooledLambda.java b/core/java/com/android/internal/util/function/pooled/PooledLambda.java index 2bfde242a987..bdc8a668a7f7 100755 --- a/core/java/com/android/internal/util/function/pooled/PooledLambda.java +++ b/core/java/com/android/internal/util/function/pooled/PooledLambda.java @@ -233,24 +233,6 @@ public interface PooledLambda { } /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 placeholder for a missing argument. Use {@link #__} to get one - * @param arg2 parameter supplied to {@code function} on call - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg1) -> function(arg1, arg2) } - */ - static <A, B> PooledConsumer<A> obtainConsumer( - BiConsumer<? super A, ? super B> function, - ArgumentPlaceholder<A> arg1, B arg2) { - return acquire(PooledLambdaImpl.sPool, - function, 2, 1, ReturnType.VOID, arg1, arg2, null, null, null, null, null, null, - null, null, null, null); - } - - /** * {@link PooledPredicate} factory * * @param function non-capturing lambda(typically an unbounded method reference) @@ -329,24 +311,6 @@ public interface PooledLambda { } /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 parameter supplied to {@code function} on call - * @param arg2 placeholder for a missing argument. Use {@link #__} to get one - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg2) -> function(arg1, arg2) } - */ - static <A, B> PooledConsumer<B> obtainConsumer( - BiConsumer<? super A, ? super B> function, - A arg1, ArgumentPlaceholder<B> arg2) { - return acquire(PooledLambdaImpl.sPool, - function, 2, 1, ReturnType.VOID, arg1, arg2, null, null, null, null, null, null, - null, null, null, null); - } - - /** * {@link PooledPredicate} factory * * @param function non-capturing lambda(typically an unbounded method reference) @@ -418,63 +382,6 @@ public interface PooledLambda { } /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 placeholder for a missing argument. Use {@link #__} to get one - * @param arg2 parameter supplied to {@code function} on call - * @param arg3 parameter supplied to {@code function} on call - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg1) -> function(arg1, arg2, arg3) } - */ - static <A, B, C> PooledConsumer<A> obtainConsumer( - TriConsumer<? super A, ? super B, ? super C> function, - ArgumentPlaceholder<A> arg1, B arg2, C arg3) { - return acquire(PooledLambdaImpl.sPool, - function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null, - null, null, null, null); - } - - /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 parameter supplied to {@code function} on call - * @param arg2 placeholder for a missing argument. Use {@link #__} to get one - * @param arg3 parameter supplied to {@code function} on call - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg2) -> function(arg1, arg2, arg3) } - */ - static <A, B, C> PooledConsumer<B> obtainConsumer( - TriConsumer<? super A, ? super B, ? super C> function, - A arg1, ArgumentPlaceholder<B> arg2, C arg3) { - return acquire(PooledLambdaImpl.sPool, - function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null, - null, null, null, null); - } - - /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 parameter supplied to {@code function} on call - * @param arg2 parameter supplied to {@code function} on call - * @param arg3 placeholder for a missing argument. Use {@link #__} to get one - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg3) -> function(arg1, arg2, arg3) } - */ - static <A, B, C> PooledConsumer<C> obtainConsumer( - TriConsumer<? super A, ? super B, ? super C> function, - A arg1, B arg2, ArgumentPlaceholder<C> arg3) { - return acquire(PooledLambdaImpl.sPool, - function, 3, 1, ReturnType.VOID, arg1, arg2, arg3, null, null, null, null, null, - null, null, null, null); - } - - /** * Factory of {@link Message}s that contain an * ({@link PooledLambda#recycleOnUse auto-recycling}) {@link PooledRunnable} as its * {@link Message#getCallback internal callback}. @@ -530,86 +437,6 @@ public interface PooledLambda { } /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 placeholder for a missing argument. Use {@link #__} to get one - * @param arg2 parameter supplied to {@code function} on call - * @param arg3 parameter supplied to {@code function} on call - * @param arg4 parameter supplied to {@code function} on call - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg1) -> function(arg1, arg2, arg3, arg4) } - */ - static <A, B, C, D> PooledConsumer<A> obtainConsumer( - QuadConsumer<? super A, ? super B, ? super C, ? super D> function, - ArgumentPlaceholder<A> arg1, B arg2, C arg3, D arg4) { - return acquire(PooledLambdaImpl.sPool, - function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null, - null, null, null, null); - } - - /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 parameter supplied to {@code function} on call - * @param arg2 placeholder for a missing argument. Use {@link #__} to get one - * @param arg3 parameter supplied to {@code function} on call - * @param arg4 parameter supplied to {@code function} on call - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg2) -> function(arg1, arg2, arg3, arg4) } - */ - static <A, B, C, D> PooledConsumer<B> obtainConsumer( - QuadConsumer<? super A, ? super B, ? super C, ? super D> function, - A arg1, ArgumentPlaceholder<B> arg2, C arg3, D arg4) { - return acquire(PooledLambdaImpl.sPool, - function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null, - null, null, null, null); - } - - /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 parameter supplied to {@code function} on call - * @param arg2 parameter supplied to {@code function} on call - * @param arg3 placeholder for a missing argument. Use {@link #__} to get one - * @param arg4 parameter supplied to {@code function} on call - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg3) -> function(arg1, arg2, arg3, arg4) } - */ - static <A, B, C, D> PooledConsumer<C> obtainConsumer( - QuadConsumer<? super A, ? super B, ? super C, ? super D> function, - A arg1, B arg2, ArgumentPlaceholder<C> arg3, D arg4) { - return acquire(PooledLambdaImpl.sPool, - function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null, - null, null, null, null); - } - - /** - * {@link PooledConsumer} factory - * - * @param function non-capturing lambda(typically an unbounded method reference) - * to be invoked on call - * @param arg1 parameter supplied to {@code function} on call - * @param arg2 parameter supplied to {@code function} on call - * @param arg3 parameter supplied to {@code function} on call - * @param arg4 placeholder for a missing argument. Use {@link #__} to get one - * @return a {@link PooledConsumer}, equivalent to lambda: - * {@code (arg4) -> function(arg1, arg2, arg3, arg4) } - */ - static <A, B, C, D> PooledConsumer<D> obtainConsumer( - QuadConsumer<? super A, ? super B, ? super C, ? super D> function, - A arg1, B arg2, C arg3, ArgumentPlaceholder<D> arg4) { - return acquire(PooledLambdaImpl.sPool, - function, 4, 1, ReturnType.VOID, arg1, arg2, arg3, arg4, null, null, null, null, - null, null, null, null); - } - - /** * Factory of {@link Message}s that contain an * ({@link PooledLambda#recycleOnUse auto-recycling}) {@link PooledRunnable} as its * {@link Message#getCallback internal callback}. diff --git a/core/java/com/android/internal/util/function/pooled/PooledPredicate.java b/core/java/com/android/internal/util/function/pooled/PooledPredicate.java index 9b14366452e5..91a8607677a5 100644 --- a/core/java/com/android/internal/util/function/pooled/PooledPredicate.java +++ b/core/java/com/android/internal/util/function/pooled/PooledPredicate.java @@ -26,11 +26,6 @@ import java.util.function.Predicate; */ public interface PooledPredicate<T> extends PooledLambda, Predicate<T> { - /** - * Ignores the result - */ - PooledConsumer<T> asConsumer(); - /** @inheritDoc */ PooledPredicate<T> recycleOnUse(); } diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl index 955895ffdae2..423642acf2f7 100644 --- a/core/java/com/android/internal/view/IInputMethodManager.aidl +++ b/core/java/com/android/internal/view/IInputMethodManager.aidl @@ -123,6 +123,7 @@ interface IInputMethodManager { @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission") void startProtoDump(in byte[] protoDump, int source, String where); + @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission") boolean isImeTraceEnabled(); // Starts an ime trace. diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 550259fa7083..664e964f09ef 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -343,6 +343,7 @@ enum MountExternalKind { // Must match values in com.android.internal.os.Zygote. enum RuntimeFlags : uint32_t { DEBUG_ENABLE_JDWP = 1, + PROFILE_SYSTEM_SERVER = 1 << 14, PROFILE_FROM_SHELL = 1 << 15, MEMORY_TAG_LEVEL_MASK = (1 << 19) | (1 << 20), MEMORY_TAG_LEVEL_TBI = 1 << 19, @@ -1821,9 +1822,11 @@ static void SpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray gids, instruction_set.value().c_str()); } - if (is_system_server) { + if (is_system_server && !(runtime_flags & RuntimeFlags::PROFILE_SYSTEM_SERVER)) { // Prefetch the classloader for the system server. This is done early to // allow a tie-down of the proper system server selinux domain. + // We don't prefetch when the system server is being profiled to avoid + // loading AOT code. env->CallStaticObjectMethod(gZygoteInitClass, gGetOrCreateSystemServerClassLoader); if (env->ExceptionCheck()) { // Be robust here. The Java code will attempt to create the classloader diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp index 40f6e4f63cd7..5c71f692b80f 100644 --- a/core/jni/fd_utils.cpp +++ b/core/jni/fd_utils.cpp @@ -580,6 +580,7 @@ void FileDescriptorTable::RestatInternal(std::set<int>& open_fds, fail_fn_t fail // TODO(narayan): This will be an error in a future android release. // error = true; // ALOGW("Zygote closed file descriptor %d.", it->first); + delete it->second; it = open_fd_map_.erase(it); } else { // The entry from the file descriptor table is still open. Restat diff --git a/core/proto/android/view/imefocuscontroller.proto b/core/proto/android/view/imefocuscontroller.proto index ff9dee69207b..ccde9b7a7966 100644 --- a/core/proto/android/view/imefocuscontroller.proto +++ b/core/proto/android/view/imefocuscontroller.proto @@ -25,6 +25,6 @@ option java_multiple_files = true; */ message ImeFocusControllerProto { optional bool has_ime_focus = 1; - optional string served_view = 2; - optional string next_served_view = 3; + optional string served_view = 2 [deprecated = true]; + optional string next_served_view = 3 [deprecated = true]; }
\ No newline at end of file diff --git a/core/proto/android/view/inputmethod/inputmethodmanager.proto b/core/proto/android/view/inputmethod/inputmethodmanager.proto index 9fed0ef95a27..ea5f1e8f3be2 100644 --- a/core/proto/android/view/inputmethod/inputmethodmanager.proto +++ b/core/proto/android/view/inputmethod/inputmethodmanager.proto @@ -29,4 +29,6 @@ message InputMethodManagerProto { optional int32 display_id = 3; optional bool active = 4; optional bool served_connecting = 5; + optional string served_view = 6; + optional string next_served_view = 7; }
\ No newline at end of file diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 1f23eb6a86d6..de1a7f9eaaa5 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -668,7 +668,6 @@ <protected-broadcast android:name="android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED" /> <protected-broadcast android:name="android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED" /> <protected-broadcast android:name="android.media.tv.action.CHANNEL_BROWSABLE_REQUESTED" /> - <protected-broadcast android:name="com.android.server.inputmethod.InputMethodManagerService.SHOW_INPUT_METHOD_PICKER" /> <!-- Time zone rules update intents fired by the system server --> <protected-broadcast android:name="com.android.intent.action.timezone.RULES_UPDATE_OPERATION" /> @@ -4261,6 +4260,13 @@ <permission android:name="android.permission.BIND_AUTOFILL_SERVICE" android:protectionLevel="signature" /> + <!-- Must be required by a CredentialProviderService to ensure that only the + system can bind to it. + <p>Protection level: signature + --> + <permission android:name="android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE" + android:protectionLevel="signature" /> + <!-- Alternative version of android.permission.BIND_AUTOFILL_FIELD_CLASSIFICATION_SERVICE. This permission was renamed during the O previews but it was supported on the final O release, so we need to carry it over. diff --git a/core/res/res/drawable-hdpi/ic_notification_ime_default.png b/core/res/res/drawable-hdpi/ic_notification_ime_default.png Binary files differdeleted file mode 100644 index 369c88d31707..000000000000 --- a/core/res/res/drawable-hdpi/ic_notification_ime_default.png +++ /dev/null diff --git a/core/res/res/drawable-mdpi/ic_notification_ime_default.png b/core/res/res/drawable-mdpi/ic_notification_ime_default.png Binary files differdeleted file mode 100644 index 7d97eb575f2a..000000000000 --- a/core/res/res/drawable-mdpi/ic_notification_ime_default.png +++ /dev/null diff --git a/core/res/res/drawable-xhdpi/ic_notification_ime_default.png b/core/res/res/drawable-xhdpi/ic_notification_ime_default.png Binary files differdeleted file mode 100644 index 900801a4d3d7..000000000000 --- a/core/res/res/drawable-xhdpi/ic_notification_ime_default.png +++ /dev/null diff --git a/core/res/res/drawable-xxhdpi/ic_notification_ime_default.png b/core/res/res/drawable-xxhdpi/ic_notification_ime_default.png Binary files differdeleted file mode 100644 index 6c8222ec50b7..000000000000 --- a/core/res/res/drawable-xxhdpi/ic_notification_ime_default.png +++ /dev/null diff --git a/core/res/res/layout/notification_template_header.xml b/core/res/res/layout/notification_template_header.xml index a7f2aa7cba69..be1c939f0ff8 100644 --- a/core/res/res/layout/notification_template_header.xml +++ b/core/res/res/layout/notification_template_header.xml @@ -24,6 +24,7 @@ android:gravity="center_vertical" android:orientation="horizontal" android:theme="@style/Theme.DeviceDefault.Notification" + android:importantForAccessibility="no" > <ImageView diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 3017bbd7defc..caa67de1fe61 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2612,6 +2612,9 @@ movement threshold under which hover is considered "stationary". --> <dimen name="config_viewConfigurationHoverSlop">4dp</dimen> + <!-- Margin around text line bounds where stylus handwriting gestures should be supported. --> + <dimen name="config_viewConfigurationHandwritingGestureLineMargin">16dp</dimen> + <!-- Multiplier for gesture thresholds when a MotionEvent classification is ambiguous. --> <item name="config_ambiguousGestureMultiplier" format="float" type="dimen">2.0</item> @@ -3556,9 +3559,9 @@ config_sidefpsSkipWaitForPowerVendorAcquireMessage --> <integer name="config_sidefpsSkipWaitForPowerAcquireMessage">6</integer> - <!-- This vendor acquired message that will cause the sidefpsKgPowerPress window to be skipped. - config_sidefpsSkipWaitForPowerOnFingerUp must be true and - config_sidefpsSkipWaitForPowerAcquireMessage must be BIOMETRIC_ACQUIRED_VENDOR == 6. --> + <!-- This vendor acquired message will cause the sidefpsKgPowerPress window to be skipped + when config_sidefpsSkipWaitForPowerAcquireMessage == 6 (VENDOR) and the vendor acquire + message equals this constant --> <integer name="config_sidefpsSkipWaitForPowerVendorAcquireMessage">2</integer> <!-- This config is used to force VoiceInteractionService to start on certain low ram devices. @@ -5933,4 +5936,8 @@ TODO(b/236022708) Move rear display state to device state config file --> <integer name="config_deviceStateRearDisplay">-1</integer> + + <!-- Whether the lock screen is allowed to run its own live wallpaper, + different from the home screen wallpaper. --> + <bool name="config_independentLockscreenLiveWallpaper">false</bool> </resources> diff --git a/core/res/res/values/config_telephony.xml b/core/res/res/values/config_telephony.xml index a1d73ff25cb8..71b2f00ff2b1 100644 --- a/core/res/res/values/config_telephony.xml +++ b/core/res/res/values/config_telephony.xml @@ -117,4 +117,17 @@ <!-- Whether using the new SubscriptionManagerService or the old SubscriptionController --> <bool name="config_using_subscription_manager_service">false</bool> <java-symbol type="bool" name="config_using_subscription_manager_service" /> + + <!-- Boolean indicating whether the emergency numbers for a country, sourced from modem/config, + should be ignored if that country is 'locked' (i.e. ignore_modem_config set to true) in + Android Emergency DB. If this value is true, emergency numbers for a country, sourced from + modem/config, will be ignored if that country is 'locked' in Android Emergency DB. --> + <bool name="ignore_modem_config_emergency_numbers">false</bool> + <java-symbol type="bool" name="ignore_modem_config_emergency_numbers" /> + + <!-- Boolean indicating whether emergency numbers routing from the android emergency number + database should be ignored (i.e. routing will always be set to UNKNOWN). If this value is + true, routing from the android emergency number database will be ignored. --> + <bool name="ignore_emergency_number_routing_from_db">false</bool> + <java-symbol type="bool" name="ignore_emergency_number_routing_from_db" /> </resources> diff --git a/core/res/res/values/public-staging.xml b/core/res/res/values/public-staging.xml index 89741effb945..d03d20697788 100644 --- a/core/res/res/values/public-staging.xml +++ b/core/res/res/values/public-staging.xml @@ -131,6 +131,8 @@ </staging-public-group> <staging-public-group type="dimen" first-id="0x01ca0000"> + <!-- @hide @SystemApi --> + <public name="config_viewConfigurationHandwritingGestureLineMargin" /> </staging-public-group> <staging-public-group type="color" first-id="0x01c90000"> diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 5f9911358921..d0fca8b0a7bb 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -741,9 +741,6 @@ <!-- Text shown in place of notification contents when the notification is hidden on a secure lockscreen --> <string name="notification_hidden_text">New notification</string> - <!-- Text shown when viewing channel settings for notifications related to the virtual keyboard --> - <string name="notification_channel_virtual_keyboard">Virtual keyboard</string> - <!-- Text shown when viewing channel settings for notifications related to the hardware keyboard --> <string name="notification_channel_physical_keyboard">Physical keyboard</string> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 6a9f7e84b2f5..fc55ed2fe443 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1992,7 +1992,6 @@ <java-symbol type="color" name="config_defaultNotificationColor" /> <java-symbol type="color" name="decor_view_status_guard" /> <java-symbol type="color" name="decor_view_status_guard_light" /> - <java-symbol type="drawable" name="ic_notification_ime_default" /> <java-symbol type="drawable" name="ic_menu_refresh" /> <java-symbol type="drawable" name="ic_settings" /> <java-symbol type="drawable" name="ic_voice_search" /> @@ -4892,6 +4891,7 @@ <java-symbol type="array" name="config_deviceStatesAvailableForAppRequests" /> <java-symbol type="array" name="config_serviceStateLocationAllowedPackages" /> <java-symbol type="integer" name="config_deviceStateRearDisplay"/> + <java-symbol type="bool" name="config_independentLockscreenLiveWallpaper"/> <!-- For app language picker --> <java-symbol type="string" name="system_locale_title" /> diff --git a/core/tests/BroadcastRadioTests/Android.bp b/core/tests/BroadcastRadioTests/Android.bp index 113f45dfef55..7cb64c8b4f0c 100644 --- a/core/tests/BroadcastRadioTests/Android.bp +++ b/core/tests/BroadcastRadioTests/Android.bp @@ -23,23 +23,32 @@ package { android_test { name: "BroadcastRadioTests", + srcs: ["src/**/*.java"], privileged: true, certificate: "platform", // TODO(b/13282254): uncomment when b/13282254 is fixed // sdk_version: "current" platform_apis: true, - static_libs: [ - "compatibility-device-util-axt", - "androidx.test.rules", - "testng", - "services.core", - ], - libs: ["android.test.base"], - srcs: ["src/**/*.java"], dex_preopt: { enabled: false, }, optimize: { enabled: false, }, + static_libs: [ + "services.core", + "androidx.test.rules", + "truth-prebuilt", + "testng", + "mockito-target-extended", + ], + libs: ["android.test.base"], + test_suites: [ + "general-tests", + ], + // mockito-target-inline dependency + jni_libs: [ + "libcarservicejni", + "libdexmakerjvmtiagent", + ], } diff --git a/core/tests/BroadcastRadioTests/AndroidManifest.xml b/core/tests/BroadcastRadioTests/AndroidManifest.xml index ce12cc99946f..869b4844e529 100644 --- a/core/tests/BroadcastRadioTests/AndroidManifest.xml +++ b/core/tests/BroadcastRadioTests/AndroidManifest.xml @@ -19,7 +19,7 @@ <uses-permission android:name="android.permission.ACCESS_BROADCAST_RADIO" /> - <application> + <application android:debuggable="true"> <uses-library android:name="android.test.runner" /> </application> diff --git a/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java b/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java index 11eb158317e9..3f35e998e025 100644 --- a/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java +++ b/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/functional/RadioTunerTest.java @@ -33,11 +33,9 @@ import android.content.pm.PackageManager; import android.hardware.radio.ProgramSelector; import android.hardware.radio.RadioManager; import android.hardware.radio.RadioTuner; -import android.test.suitebuilder.annotation.MediumTest; import android.util.Log; import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; import org.junit.After; import org.junit.Before; @@ -47,6 +45,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; import java.util.ArrayList; import java.util.HashMap; @@ -56,8 +55,7 @@ import java.util.Map; /** * A test for broadcast radio API. */ -@RunWith(AndroidJUnit4.class) -@MediumTest +@RunWith(MockitoJUnitRunner.class) public class RadioTunerTest { private static final String TAG = "BroadcastRadioTests.RadioTuner"; diff --git a/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/unittests/RadioManagerTest.java b/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/unittests/RadioManagerTest.java new file mode 100644 index 000000000000..259a11852784 --- /dev/null +++ b/core/tests/BroadcastRadioTests/src/android/hardware/radio/tests/unittests/RadioManagerTest.java @@ -0,0 +1,490 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.radio.tests.unittests; + +import static com.google.common.truth.Truth.assertWithMessage; + +import android.hardware.radio.ProgramSelector; +import android.hardware.radio.RadioManager; + +import org.junit.Test; + +public final class RadioManagerTest { + + private static final int REGION = RadioManager.REGION_ITU_2; + private static final int FM_LOWER_LIMIT = 87500; + private static final int FM_UPPER_LIMIT = 108000; + private static final int FM_SPACING = 200; + private static final int AM_LOWER_LIMIT = 540; + private static final int AM_UPPER_LIMIT = 1700; + private static final int AM_SPACING = 10; + private static final boolean STEREO_SUPPORTED = true; + private static final boolean RDS_SUPPORTED = true; + private static final boolean TA_SUPPORTED = false; + private static final boolean AF_SUPPORTED = false; + private static final boolean EA_SUPPORTED = false; + + private static final int PROPERTIES_ID = 10; + private static final String SERVICE_NAME = "ServiceNameMock"; + private static final int CLASS_ID = RadioManager.CLASS_AM_FM; + private static final String IMPLEMENTOR = "ImplementorMock"; + private static final String PRODUCT = "ProductMock"; + private static final String VERSION = "VersionMock"; + private static final String SERIAL = "SerialMock"; + private static final int NUM_TUNERS = 1; + private static final int NUM_AUDIO_SOURCES = 1; + private static final boolean IS_INITIALIZATION_REQUIRED = false; + private static final boolean IS_CAPTURE_SUPPORTED = false; + private static final boolean IS_BG_SCAN_SUPPORTED = true; + private static final int[] SUPPORTED_PROGRAM_TYPES = new int[]{ + ProgramSelector.PROGRAM_TYPE_AM, ProgramSelector.PROGRAM_TYPE_FM}; + private static final int[] SUPPORTED_IDENTIFIERS_TYPES = new int[]{ + ProgramSelector.IDENTIFIER_TYPE_AMFM_FREQUENCY, ProgramSelector.IDENTIFIER_TYPE_RDS_PI}; + + private static final RadioManager.FmBandDescriptor FM_BAND_DESCRIPTOR = + createFmBandDescriptor(); + private static final RadioManager.AmBandDescriptor AM_BAND_DESCRIPTOR = + createAmBandDescriptor(); + private static final RadioManager.FmBandConfig FM_BAND_CONFIG = createFmBandConfig(); + private static final RadioManager.AmBandConfig AM_BAND_CONFIG = createAmBandConfig(); + private static final RadioManager.ModuleProperties AMFM_PROPERTIES = createAmFmProperties(); + + @Test + public void getType_forBandDescriptor() { + RadioManager.BandDescriptor bandDescriptor = createAmBandDescriptor(); + + assertWithMessage("AM Band Descriptor type") + .that(bandDescriptor.getType()).isEqualTo(RadioManager.BAND_AM); + } + + @Test + public void getRegion_forBandDescriptor() { + RadioManager.BandDescriptor bandDescriptor = createFmBandDescriptor(); + + assertWithMessage("FM Band Descriptor region") + .that(bandDescriptor.getRegion()).isEqualTo(REGION); + } + + @Test + public void getLowerLimit_forBandDescriptor() { + RadioManager.BandDescriptor bandDescriptor = createFmBandDescriptor(); + + assertWithMessage("FM Band Descriptor lower limit") + .that(bandDescriptor.getLowerLimit()).isEqualTo(FM_LOWER_LIMIT); + } + + @Test + public void getUpperLimit_forBandDescriptor() { + RadioManager.BandDescriptor bandDescriptor = createAmBandDescriptor(); + + assertWithMessage("AM Band Descriptor upper limit") + .that(bandDescriptor.getUpperLimit()).isEqualTo(AM_UPPER_LIMIT); + } + + @Test + public void getSpacing_forBandDescriptor() { + RadioManager.BandDescriptor bandDescriptor = createAmBandDescriptor(); + + assertWithMessage("AM Band Descriptor spacing") + .that(bandDescriptor.getSpacing()).isEqualTo(AM_SPACING); + } + + @Test + public void isAmBand_forAmBandDescriptor_returnsTrue() { + RadioManager.BandDescriptor bandDescriptor = createAmBandDescriptor(); + + assertWithMessage("Is AM Band Descriptor an AM band") + .that(bandDescriptor.isAmBand()).isTrue(); + } + + @Test + public void isFmBand_forAmBandDescriptor_returnsFalse() { + RadioManager.BandDescriptor bandDescriptor = createAmBandDescriptor(); + + assertWithMessage("Is AM Band Descriptor an FM band") + .that(bandDescriptor.isFmBand()).isFalse(); + } + + @Test + public void isStereoSupported_forFmBandDescriptor() { + assertWithMessage("FM Band Descriptor stereo") + .that(FM_BAND_DESCRIPTOR.isStereoSupported()).isEqualTo(STEREO_SUPPORTED); + } + + @Test + public void isRdsSupported_forFmBandDescriptor() { + assertWithMessage("FM Band Descriptor RDS or RBDS") + .that(FM_BAND_DESCRIPTOR.isRdsSupported()).isEqualTo(RDS_SUPPORTED); + } + + @Test + public void isTaSupported_forFmBandDescriptor() { + assertWithMessage("FM Band Descriptor traffic announcement") + .that(FM_BAND_DESCRIPTOR.isTaSupported()).isEqualTo(TA_SUPPORTED); + } + + @Test + public void isAfSupported_forFmBandDescriptor() { + assertWithMessage("FM Band Descriptor alternate frequency") + .that(FM_BAND_DESCRIPTOR.isAfSupported()).isEqualTo(AF_SUPPORTED); + } + + @Test + public void isEaSupported_forFmBandDescriptor() { + assertWithMessage("FM Band Descriptor emergency announcement") + .that(FM_BAND_DESCRIPTOR.isEaSupported()).isEqualTo(EA_SUPPORTED); + } + + @Test + public void isStereoSupported_forAmBandDescriptor() { + assertWithMessage("AM Band Descriptor stereo") + .that(AM_BAND_DESCRIPTOR.isStereoSupported()).isEqualTo(STEREO_SUPPORTED); + } + + @Test + public void equals_withSameFmBandDescriptors_returnsTrue() { + RadioManager.FmBandDescriptor fmBandDescriptor1 = createFmBandDescriptor(); + RadioManager.FmBandDescriptor fmBandDescriptor2 = createFmBandDescriptor(); + + assertWithMessage("The same FM Band Descriptor") + .that(fmBandDescriptor1).isEqualTo(fmBandDescriptor2); + } + + @Test + public void equals_withSameAmBandDescriptors_returnsTrue() { + RadioManager.AmBandDescriptor amBandDescriptorCompared = createAmBandDescriptor(); + + assertWithMessage("The same AM Band Descriptor") + .that(AM_BAND_DESCRIPTOR).isEqualTo(amBandDescriptorCompared); + } + + @Test + public void equals_withAmBandDescriptorsOfDifferentUpperLimits_returnsFalse() { + RadioManager.AmBandDescriptor amBandDescriptorCompared = + new RadioManager.AmBandDescriptor(REGION, RadioManager.BAND_AM, AM_LOWER_LIMIT, + AM_UPPER_LIMIT + AM_SPACING, AM_SPACING, STEREO_SUPPORTED); + + assertWithMessage("AM Band Descriptor of different upper limit") + .that(AM_BAND_DESCRIPTOR).isNotEqualTo(amBandDescriptorCompared); + } + + @Test + public void equals_withAmAndFmBandDescriptors_returnsFalse() { + assertWithMessage("AM Band Descriptor") + .that(AM_BAND_DESCRIPTOR).isNotEqualTo(FM_BAND_DESCRIPTOR); + } + + @Test + public void getType_forBandConfig() { + RadioManager.BandConfig fmBandConfig = createFmBandConfig(); + + assertWithMessage("FM Band Config type") + .that(fmBandConfig.getType()).isEqualTo(RadioManager.BAND_FM); + } + + @Test + public void getRegion_forBandConfig() { + RadioManager.BandConfig amBandConfig = createAmBandConfig(); + + assertWithMessage("AM Band Config region") + .that(amBandConfig.getRegion()).isEqualTo(REGION); + } + + @Test + public void getLowerLimit_forBandConfig() { + RadioManager.BandConfig amBandConfig = createAmBandConfig(); + + assertWithMessage("AM Band Config lower limit") + .that(amBandConfig.getLowerLimit()).isEqualTo(AM_LOWER_LIMIT); + } + + @Test + public void getUpperLimit_forBandConfig() { + RadioManager.BandConfig fmBandConfig = createFmBandConfig(); + + assertWithMessage("FM Band Config upper limit") + .that(fmBandConfig.getUpperLimit()).isEqualTo(FM_UPPER_LIMIT); + } + + @Test + public void getSpacing_forBandConfig() { + RadioManager.BandConfig fmBandConfig = createFmBandConfig(); + + assertWithMessage("FM Band Config spacing") + .that(fmBandConfig.getSpacing()).isEqualTo(FM_SPACING); + } + + @Test + public void getStereo_forFmBandConfig() { + assertWithMessage("FM Band Config stereo ") + .that(FM_BAND_CONFIG.getStereo()).isEqualTo(STEREO_SUPPORTED); + } + + @Test + public void getRds_forFmBandConfig() { + assertWithMessage("FM Band Config RDS or RBDS") + .that(FM_BAND_CONFIG.getRds()).isEqualTo(RDS_SUPPORTED); + } + + @Test + public void getTa_forFmBandConfig() { + assertWithMessage("FM Band Config traffic announcement") + .that(FM_BAND_CONFIG.getTa()).isEqualTo(TA_SUPPORTED); + } + + @Test + public void getAf_forFmBandConfig() { + assertWithMessage("FM Band Config alternate frequency") + .that(FM_BAND_CONFIG.getAf()).isEqualTo(AF_SUPPORTED); + } + + @Test + public void getEa_forFmBandConfig() { + assertWithMessage("FM Band Config emergency Announcement") + .that(FM_BAND_CONFIG.getEa()).isEqualTo(EA_SUPPORTED); + } + + @Test + public void getStereo_forAmBandConfig() { + assertWithMessage("AM Band Config stereo") + .that(AM_BAND_CONFIG.getStereo()).isEqualTo(STEREO_SUPPORTED); + } + + @Test + public void equals_withSameFmBandConfigs_returnsTrue() { + RadioManager.FmBandConfig fmBandConfigCompared = createFmBandConfig(); + + assertWithMessage("The same FM Band Config") + .that(FM_BAND_CONFIG).isEqualTo(fmBandConfigCompared); + } + + @Test + public void equals_withFmBandConfigsOfDifferentAfs_returnsFalse() { + RadioManager.FmBandConfig.Builder builder = new RadioManager.FmBandConfig.Builder( + createFmBandDescriptor()).setStereo(STEREO_SUPPORTED).setRds(RDS_SUPPORTED) + .setTa(TA_SUPPORTED).setAf(!AF_SUPPORTED).setEa(EA_SUPPORTED); + RadioManager.FmBandConfig fmBandConfigFromBuilder = builder.build(); + + assertWithMessage("FM Band Config of different af value") + .that(FM_BAND_CONFIG).isNotEqualTo(fmBandConfigFromBuilder); + } + + @Test + public void equals_withFmAndAmBandConfigs_returnsFalse() { + assertWithMessage("FM Band Config") + .that(FM_BAND_CONFIG).isNotEqualTo(AM_BAND_CONFIG); + } + + @Test + public void equals_withSameAmBandConfigs_returnsTrue() { + RadioManager.AmBandConfig amBandConfigCompared = createAmBandConfig(); + + assertWithMessage("The same AM Band Config") + .that(AM_BAND_CONFIG).isEqualTo(amBandConfigCompared); + } + + @Test + public void equals_withAmBandConfigsOfDifferentTypes_returnsFalse() { + RadioManager.AmBandConfig amBandConfigCompared = new RadioManager.AmBandConfig( + new RadioManager.AmBandDescriptor(REGION, RadioManager.BAND_AM_HD, AM_LOWER_LIMIT, + AM_UPPER_LIMIT, AM_SPACING, STEREO_SUPPORTED)); + + assertWithMessage("AM Band Config of different type") + .that(AM_BAND_CONFIG).isNotEqualTo(amBandConfigCompared); + } + + @Test + public void equals_withAmBandConfigsOfDifferentStereoValues_returnsFalse() { + RadioManager.AmBandConfig.Builder builder = new RadioManager.AmBandConfig.Builder( + createAmBandDescriptor()).setStereo(!STEREO_SUPPORTED); + RadioManager.AmBandConfig amBandConfigFromBuilder = builder.build(); + + assertWithMessage("AM Band Config of different stereo value") + .that(AM_BAND_CONFIG).isNotEqualTo(amBandConfigFromBuilder); + } + + @Test + public void getId_forModuleProperties() { + assertWithMessage("Properties id") + .that(AMFM_PROPERTIES.getId()).isEqualTo(PROPERTIES_ID); + } + + @Test + public void getServiceName_forModuleProperties() { + assertWithMessage("Properties service name") + .that(AMFM_PROPERTIES.getServiceName()).isEqualTo(SERVICE_NAME); + } + + @Test + public void getClassId_forModuleProperties() { + assertWithMessage("Properties class ID") + .that(AMFM_PROPERTIES.getClassId()).isEqualTo(CLASS_ID); + } + + @Test + public void getImplementor_forModuleProperties() { + assertWithMessage("Properties implementor") + .that(AMFM_PROPERTIES.getImplementor()).isEqualTo(IMPLEMENTOR); + } + + @Test + public void getProduct_forModuleProperties() { + assertWithMessage("Properties product") + .that(AMFM_PROPERTIES.getProduct()).isEqualTo(PRODUCT); + } + + @Test + public void getVersion_forModuleProperties() { + assertWithMessage("Properties version") + .that(AMFM_PROPERTIES.getVersion()).isEqualTo(VERSION); + } + + @Test + public void getSerial_forModuleProperties() { + assertWithMessage("Serial properties") + .that(AMFM_PROPERTIES.getSerial()).isEqualTo(SERIAL); + } + + @Test + public void getNumTuners_forModuleProperties() { + assertWithMessage("Number of tuners in properties") + .that(AMFM_PROPERTIES.getNumTuners()).isEqualTo(NUM_TUNERS); + } + + @Test + public void getNumAudioSources_forModuleProperties() { + assertWithMessage("Number of audio sources in properties") + .that(AMFM_PROPERTIES.getNumAudioSources()).isEqualTo(NUM_AUDIO_SOURCES); + } + + @Test + public void isInitializationRequired_forModuleProperties() { + assertWithMessage("Initialization required in properties") + .that(AMFM_PROPERTIES.isInitializationRequired()) + .isEqualTo(IS_INITIALIZATION_REQUIRED); + } + + @Test + public void isCaptureSupported_forModuleProperties() { + assertWithMessage("Capture support in properties") + .that(AMFM_PROPERTIES.isCaptureSupported()).isEqualTo(IS_CAPTURE_SUPPORTED); + } + + @Test + public void isBackgroundScanningSupported_forModuleProperties() { + assertWithMessage("Background scan support in properties") + .that(AMFM_PROPERTIES.isBackgroundScanningSupported()) + .isEqualTo(IS_BG_SCAN_SUPPORTED); + } + + @Test + public void isProgramTypeSupported_withSupportedType_forModuleProperties() { + assertWithMessage("AM/FM frequency type radio support in properties") + .that(AMFM_PROPERTIES.isProgramTypeSupported( + ProgramSelector.IDENTIFIER_TYPE_AMFM_FREQUENCY)) + .isTrue(); + } + + @Test + public void isProgramTypeSupported_withNonSupportedType_forModuleProperties() { + assertWithMessage("DAB frequency type radio support in properties") + .that(AMFM_PROPERTIES.isProgramTypeSupported( + ProgramSelector.IDENTIFIER_TYPE_DAB_FREQUENCY)).isFalse(); + } + + @Test + public void isProgramIdentifierSupported_withSupportedIdentifier_forModuleProperties() { + assertWithMessage("AM/FM frequency identifier radio support in properties") + .that(AMFM_PROPERTIES.isProgramIdentifierSupported( + ProgramSelector.IDENTIFIER_TYPE_AMFM_FREQUENCY)).isTrue(); + } + + @Test + public void isProgramIdentifierSupported_withNonSupportedIdentifier_forModuleProperties() { + assertWithMessage("DAB frequency identifier radio support in properties") + .that(AMFM_PROPERTIES.isProgramIdentifierSupported( + ProgramSelector.IDENTIFIER_TYPE_DAB_FREQUENCY)).isFalse(); + } + + @Test + public void getDabFrequencyTable_forModuleProperties() { + assertWithMessage("Properties DAB frequency table") + .that(AMFM_PROPERTIES.getDabFrequencyTable()).isNull(); + } + + @Test + public void getVendorInfo_forModuleProperties() { + assertWithMessage("Properties vendor info") + .that(AMFM_PROPERTIES.getVendorInfo()).isEmpty(); + } + + @Test + public void getBands_forModuleProperties() { + assertWithMessage("Properties bands") + .that(AMFM_PROPERTIES.getBands()).asList() + .containsExactly(AM_BAND_DESCRIPTOR, FM_BAND_DESCRIPTOR); + } + + @Test + public void equals_withSameProperties_returnsTrue() { + RadioManager.ModuleProperties propertiesCompared = createAmFmProperties(); + + assertWithMessage("The same module properties") + .that(AMFM_PROPERTIES).isEqualTo(propertiesCompared); + } + + @Test + public void equals_withModulePropertiesOfDifferentIds_returnsFalse() { + RadioManager.ModuleProperties propertiesDab = new RadioManager.ModuleProperties( + PROPERTIES_ID + 1, SERVICE_NAME, CLASS_ID, IMPLEMENTOR, PRODUCT, VERSION, + SERIAL, NUM_TUNERS, NUM_AUDIO_SOURCES, IS_INITIALIZATION_REQUIRED, + IS_CAPTURE_SUPPORTED, /* bands= */ null, IS_BG_SCAN_SUPPORTED, + SUPPORTED_PROGRAM_TYPES, SUPPORTED_IDENTIFIERS_TYPES, /* dabFrequencyTable= */ null, + /* vendorInfo= */ null); + + assertWithMessage("Module properties of different id") + .that(AMFM_PROPERTIES).isNotEqualTo(propertiesDab); + } + + private static RadioManager.ModuleProperties createAmFmProperties() { + return new RadioManager.ModuleProperties(PROPERTIES_ID, SERVICE_NAME, CLASS_ID, + IMPLEMENTOR, PRODUCT, VERSION, SERIAL, NUM_TUNERS, NUM_AUDIO_SOURCES, + IS_INITIALIZATION_REQUIRED, IS_CAPTURE_SUPPORTED, + new RadioManager.BandDescriptor[]{AM_BAND_DESCRIPTOR, FM_BAND_DESCRIPTOR}, + IS_BG_SCAN_SUPPORTED, SUPPORTED_PROGRAM_TYPES, SUPPORTED_IDENTIFIERS_TYPES, + /* dabFrequencyTable= */ null, /* vendorInfo= */ null); + } + + private static RadioManager.FmBandDescriptor createFmBandDescriptor() { + return new RadioManager.FmBandDescriptor(REGION, RadioManager.BAND_FM, FM_LOWER_LIMIT, + FM_UPPER_LIMIT, FM_SPACING, STEREO_SUPPORTED, RDS_SUPPORTED, TA_SUPPORTED, + AF_SUPPORTED, EA_SUPPORTED); + } + + private static RadioManager.AmBandDescriptor createAmBandDescriptor() { + return new RadioManager.AmBandDescriptor(REGION, RadioManager.BAND_AM, AM_LOWER_LIMIT, + AM_UPPER_LIMIT, AM_SPACING, STEREO_SUPPORTED); + } + + private static RadioManager.FmBandConfig createFmBandConfig() { + return new RadioManager.FmBandConfig(createFmBandDescriptor()); + } + + private static RadioManager.AmBandConfig createAmBandConfig() { + return new RadioManager.AmBandConfig(createAmBandDescriptor()); + } +} diff --git a/core/tests/BroadcastRadioTests/src/com/android/server/broadcastradio/IRadioServiceAidlImplTest.java b/core/tests/BroadcastRadioTests/src/com/android/server/broadcastradio/IRadioServiceAidlImplTest.java new file mode 100644 index 000000000000..7f4ea1170084 --- /dev/null +++ b/core/tests/BroadcastRadioTests/src/com/android/server/broadcastradio/IRadioServiceAidlImplTest.java @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.broadcastradio; + +import static com.google.common.truth.Truth.assertWithMessage; + +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.hardware.radio.Announcement; +import android.hardware.radio.IAnnouncementListener; +import android.hardware.radio.ICloseHandle; +import android.hardware.radio.ITuner; +import android.hardware.radio.ITunerCallback; +import android.hardware.radio.RadioManager; + +import com.android.server.broadcastradio.aidl.BroadcastRadioServiceImpl; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Arrays; + +/** + * Tests for {@link android.hardware.radio.IRadioService} with AIDL HAL implementation + */ +@RunWith(MockitoJUnitRunner.class) +public final class IRadioServiceAidlImplTest { + + private static final int[] ENABLE_TYPES = new int[]{Announcement.TYPE_TRAFFIC}; + + private IRadioServiceAidlImpl mAidlImpl; + + @Mock + private BroadcastRadioService mServiceMock; + @Mock + private BroadcastRadioServiceImpl mHalMock; + @Mock + private RadioManager.ModuleProperties mModuleMock; + @Mock + private RadioManager.BandConfig mBandConfigMock; + @Mock + private ITunerCallback mTunerCallbackMock; + @Mock + private IAnnouncementListener mListenerMock; + @Mock + private ICloseHandle mICloseHandle; + @Mock + private ITuner mTunerMock; + + @Before + public void setUp() throws Exception { + doNothing().when(mServiceMock).enforcePolicyAccess(); + + when(mHalMock.listModules()).thenReturn(Arrays.asList(mModuleMock)); + when(mHalMock.openSession(anyInt(), any(), anyBoolean(), any())) + .thenReturn(mTunerMock); + when(mHalMock.addAnnouncementListener(any(), any())).thenReturn(mICloseHandle); + + mAidlImpl = new IRadioServiceAidlImpl(mServiceMock, mHalMock); + } + + @Test + public void loadModules_forAidlImpl() { + assertWithMessage("Modules loaded in AIDL HAL") + .that(mAidlImpl.listModules()) + .containsExactly(mModuleMock); + } + + @Test + public void openTuner_forAidlImpl() throws Exception { + ITuner tuner = mAidlImpl.openTuner(/* moduleId= */ 0, mBandConfigMock, + /* withAudio= */ true, mTunerCallbackMock); + + assertWithMessage("Tuner opened in AIDL HAL") + .that(tuner).isEqualTo(mTunerMock); + } + + @Test + public void addAnnouncementListener_forAidlImpl() { + ICloseHandle closeHandle = mAidlImpl.addAnnouncementListener(ENABLE_TYPES, mListenerMock); + + verify(mHalMock).addAnnouncementListener(ENABLE_TYPES, mListenerMock); + assertWithMessage("Close handle of announcement listener for HAL 2") + .that(closeHandle).isEqualTo(mICloseHandle); + } + +} diff --git a/core/tests/BroadcastRadioTests/src/com/android/server/broadcastradio/IRadioServiceHidlImplTest.java b/core/tests/BroadcastRadioTests/src/com/android/server/broadcastradio/IRadioServiceHidlImplTest.java new file mode 100644 index 000000000000..f28e27d7f896 --- /dev/null +++ b/core/tests/BroadcastRadioTests/src/com/android/server/broadcastradio/IRadioServiceHidlImplTest.java @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.broadcastradio; + +import static com.google.common.truth.Truth.assertWithMessage; + +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.hardware.radio.Announcement; +import android.hardware.radio.IAnnouncementListener; +import android.hardware.radio.ICloseHandle; +import android.hardware.radio.ITuner; +import android.hardware.radio.ITunerCallback; +import android.hardware.radio.RadioManager; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Arrays; + +/** + * Tests for {@link android.hardware.radio.IRadioService} with HIDL HAL implementation + */ +@RunWith(MockitoJUnitRunner.class) +public final class IRadioServiceHidlImplTest { + + private static final int HAL1_MODULE_ID = 0; + private static final int[] ENABLE_TYPES = new int[]{Announcement.TYPE_TRAFFIC}; + + private IRadioServiceHidlImpl mHidlImpl; + + @Mock + private BroadcastRadioService mServiceMock; + @Mock + private com.android.server.broadcastradio.hal1.BroadcastRadioService mHal1Mock; + @Mock + private com.android.server.broadcastradio.hal2.BroadcastRadioService mHal2Mock; + @Mock + private RadioManager.ModuleProperties mHal1ModuleMock; + @Mock + private RadioManager.ModuleProperties mHal2ModuleMock; + @Mock + private RadioManager.BandConfig mBandConfigMock; + @Mock + private ITunerCallback mTunerCallbackMock; + @Mock + private IAnnouncementListener mListenerMock; + @Mock + private ICloseHandle mICloseHandle; + @Mock + private ITuner mHal1TunerMock; + @Mock + private ITuner mHal2TunerMock; + + @Before + public void setup() throws Exception { + doNothing().when(mServiceMock).enforcePolicyAccess(); + when(mHal1Mock.loadModules()).thenReturn(Arrays.asList(mHal1ModuleMock)); + when(mHal1Mock.openTuner(anyInt(), any(), anyBoolean(), any())).thenReturn(mHal1TunerMock); + + when(mHal2Mock.listModules()).thenReturn(Arrays.asList(mHal2ModuleMock)); + doAnswer(invocation -> { + int moduleId = (int) invocation.getArguments()[0]; + return moduleId != HAL1_MODULE_ID; + }).when(mHal2Mock).hasModule(anyInt()); + when(mHal2Mock.openSession(anyInt(), any(), anyBoolean(), any())) + .thenReturn(mHal2TunerMock); + when(mHal2Mock.addAnnouncementListener(any(), any())).thenReturn(mICloseHandle); + + mHidlImpl = new IRadioServiceHidlImpl(mServiceMock, mHal1Mock, mHal2Mock); + } + + @Test + public void loadModules_forHidlImpl() { + assertWithMessage("Modules loaded in HIDL HAL") + .that(mHidlImpl.listModules()) + .containsExactly(mHal1ModuleMock, mHal2ModuleMock); + } + + @Test + public void openTuner_withHal1ModuleId_forHidlImpl() throws Exception { + ITuner tuner = mHidlImpl.openTuner(HAL1_MODULE_ID, mBandConfigMock, + /* withAudio= */ true, mTunerCallbackMock); + + assertWithMessage("Tuner opened in HAL 1") + .that(tuner).isEqualTo(mHal1TunerMock); + } + + @Test + public void openTuner_withHal2ModuleId_forHidlImpl() throws Exception { + ITuner tuner = mHidlImpl.openTuner(HAL1_MODULE_ID + 1, mBandConfigMock, + /* withAudio= */ true, mTunerCallbackMock); + + assertWithMessage("Tuner opened in HAL 2") + .that(tuner).isEqualTo(mHal2TunerMock); + } + + @Test + public void addAnnouncementListener_forHidlImpl() { + when(mHal2Mock.hasAnyModules()).thenReturn(true); + ICloseHandle closeHandle = mHidlImpl.addAnnouncementListener(ENABLE_TYPES, mListenerMock); + + verify(mHal2Mock).addAnnouncementListener(ENABLE_TYPES, mListenerMock); + assertWithMessage("Close handle of announcement listener for HAL 2") + .that(closeHandle).isEqualTo(mICloseHandle); + } + +} diff --git a/core/tests/coretests/src/android/app/NotificationTest.java b/core/tests/coretests/src/android/app/NotificationTest.java index 0b8b29b9dda9..bcb13d2108b8 100644 --- a/core/tests/coretests/src/android/app/NotificationTest.java +++ b/core/tests/coretests/src/android/app/NotificationTest.java @@ -48,6 +48,7 @@ import static com.android.internal.util.ContrastColorUtilTest.assertContrastIsWi import static com.google.common.truth.Truth.assertThat; +import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.fail; import static org.junit.Assert.assertEquals; @@ -56,7 +57,9 @@ import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; import android.annotation.Nullable; import android.app.Notification.CallStyle; @@ -68,6 +71,7 @@ import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Typeface; import android.graphics.drawable.Icon; import android.net.Uri; import android.os.Build; @@ -79,7 +83,9 @@ import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.style.ForegroundColorSpan; +import android.text.style.StyleSpan; import android.text.style.TextAppearanceSpan; +import android.util.Pair; import android.widget.RemoteViews; import androidx.test.InstrumentationRegistry; @@ -89,6 +95,8 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.R; import com.android.internal.util.ContrastColorUtil; +import junit.framework.Assert; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -218,8 +226,10 @@ public class NotificationTest { @Test public void allPendingIntents_recollectedAfterReusingBuilder() { - PendingIntent intent1 = PendingIntent.getActivity(mContext, 0, new Intent("test1"), PendingIntent.FLAG_MUTABLE_UNAUDITED); - PendingIntent intent2 = PendingIntent.getActivity(mContext, 0, new Intent("test2"), PendingIntent.FLAG_MUTABLE_UNAUDITED); + PendingIntent intent1 = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE); + PendingIntent intent2 = PendingIntent.getActivity( + mContext, 0, new Intent("test2"), PendingIntent.FLAG_IMMUTABLE); Notification.Builder builder = new Notification.Builder(mContext, "channel"); builder.setContentIntent(intent1); @@ -669,30 +679,23 @@ public class NotificationTest { Notification notification = new Notification.Builder(mContext, "Channel").setStyle( style).build(); + int targetSize = mContext.getResources().getDimensionPixelSize( + ActivityManager.isLowRamDeviceStatic() + ? R.dimen.notification_person_icon_max_size_low_ram + : R.dimen.notification_person_icon_max_size); + Bitmap personIcon = style.getUser().getIcon().getBitmap(); - assertThat(personIcon.getWidth()).isEqualTo( - mContext.getResources().getDimensionPixelSize( - R.dimen.notification_person_icon_max_size)); - assertThat(personIcon.getHeight()).isEqualTo( - mContext.getResources().getDimensionPixelSize( - R.dimen.notification_person_icon_max_size)); + assertThat(personIcon.getWidth()).isEqualTo(targetSize); + assertThat(personIcon.getHeight()).isEqualTo(targetSize); Bitmap avatarIcon = style.getMessages().get(0).getSenderPerson().getIcon().getBitmap(); - assertThat(avatarIcon.getWidth()).isEqualTo( - mContext.getResources().getDimensionPixelSize( - R.dimen.notification_person_icon_max_size)); - assertThat(avatarIcon.getHeight()).isEqualTo( - mContext.getResources().getDimensionPixelSize( - R.dimen.notification_person_icon_max_size)); + assertThat(avatarIcon.getWidth()).isEqualTo(targetSize); + assertThat(avatarIcon.getHeight()).isEqualTo(targetSize); Bitmap historicAvatarIcon = style.getHistoricMessages().get( 0).getSenderPerson().getIcon().getBitmap(); - assertThat(historicAvatarIcon.getWidth()).isEqualTo( - mContext.getResources().getDimensionPixelSize( - R.dimen.notification_person_icon_max_size)); - assertThat(historicAvatarIcon.getHeight()).isEqualTo( - mContext.getResources().getDimensionPixelSize( - R.dimen.notification_person_icon_max_size)); + assertThat(historicAvatarIcon.getWidth()).isEqualTo(targetSize); + assertThat(historicAvatarIcon.getHeight()).isEqualTo(targetSize); } @Test @@ -780,7 +783,6 @@ public class NotificationTest { assertFalse(notification.isMediaNotification()); } - @Test public void validateColorizedPaletteForColor(int rawColor) { Notification.Colors cDay = new Notification.Colors(); Notification.Colors cNight = new Notification.Colors(); @@ -861,19 +863,22 @@ public class NotificationTest { Bundle fakeTypes = new Bundle(); fakeTypes.putParcelable(EXTRA_LARGE_ICON_BIG, new Bundle()); - style.restoreFromExtras(fakeTypes); // no crash, good } @Test public void testRestoreFromExtras_Messaging_invalidExtra_noCrash() { - Notification.Style style = new Notification.MessagingStyle(); + Notification.Style style = new Notification.MessagingStyle("test"); Bundle fakeTypes = new Bundle(); fakeTypes.putParcelable(EXTRA_MESSAGING_PERSON, new Bundle()); fakeTypes.putParcelable(EXTRA_CONVERSATION_ICON, new Bundle()); - style.restoreFromExtras(fakeTypes); + Notification n = new Notification.Builder(mContext, "test") + .setStyle(style) + .setExtras(fakeTypes) + .build(); + Notification.Builder.recoverBuilder(mContext, n); // no crash, good } @@ -885,22 +890,33 @@ public class NotificationTest { fakeTypes.putParcelable(EXTRA_MEDIA_SESSION, new Bundle()); fakeTypes.putParcelable(EXTRA_MEDIA_REMOTE_INTENT, new Bundle()); - style.restoreFromExtras(fakeTypes); + Notification n = new Notification.Builder(mContext, "test") + .setStyle(style) + .setExtras(fakeTypes) + .build(); + Notification.Builder.recoverBuilder(mContext, n); // no crash, good } @Test public void testRestoreFromExtras_Call_invalidExtra_noCrash() { - Notification.Style style = new CallStyle(); + PendingIntent intent1 = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE); + Notification.Style style = Notification.CallStyle.forIncomingCall( + new Person.Builder().setName("hi").build(), intent1, intent1); + Bundle fakeTypes = new Bundle(); fakeTypes.putParcelable(EXTRA_CALL_PERSON, new Bundle()); fakeTypes.putParcelable(EXTRA_ANSWER_INTENT, new Bundle()); fakeTypes.putParcelable(EXTRA_DECLINE_INTENT, new Bundle()); fakeTypes.putParcelable(EXTRA_HANG_UP_INTENT, new Bundle()); - style.restoreFromExtras(fakeTypes); - + Notification n = new Notification.Builder(mContext, "test") + .setStyle(style) + .setExtras(fakeTypes) + .build(); + Notification.Builder.recoverBuilder(mContext, n); // no crash, good } @@ -962,7 +978,11 @@ public class NotificationTest { fakeTypes.putParcelable(KEY_ON_READ, new Bundle()); fakeTypes.putParcelable(KEY_ON_REPLY, new Bundle()); fakeTypes.putParcelable(KEY_REMOTE_INPUT, new Bundle()); - Notification.CarExtender.UnreadConversation.getUnreadConversationFromBundle(fakeTypes); + + Notification n = new Notification.Builder(mContext, "test") + .setExtras(fakeTypes) + .build(); + Notification.CarExtender extender = new Notification.CarExtender(n); // no crash, good } @@ -980,6 +1000,493 @@ public class NotificationTest { // no crash, good } + + @Test + public void testDoesNotStripsExtenders() { + Notification.Builder nb = new Notification.Builder(mContext, "channel"); + nb.extend(new Notification.CarExtender().setColor(Color.RED)); + nb.extend(new Notification.TvExtender().setChannelId("different channel")); + nb.extend(new Notification.WearableExtender().setDismissalId("dismiss")); + Notification before = nb.build(); + Notification after = Notification.Builder.maybeCloneStrippedForDelivery(before); + + assertTrue(before == after); + + Assert.assertEquals("different channel", + new Notification.TvExtender(before).getChannelId()); + Assert.assertEquals(Color.RED, new Notification.CarExtender(before).getColor()); + Assert.assertEquals("dismiss", new Notification.WearableExtender(before).getDismissalId()); + } + + @Test + public void testStyleChangeVisiblyDifferent_noStyles() { + Notification.Builder n1 = new Notification.Builder(mContext, "test"); + Notification.Builder n2 = new Notification.Builder(mContext, "test"); + + assertFalse(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); + } + + @Test + public void testStyleChangeVisiblyDifferent_noStyleToStyle() { + Notification.Builder n1 = new Notification.Builder(mContext, "test"); + Notification.Builder n2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.BigTextStyle()); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); + } + + @Test + public void testStyleChangeVisiblyDifferent_styleToNoStyle() { + Notification.Builder n2 = new Notification.Builder(mContext, "test"); + Notification.Builder n1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.BigTextStyle()); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); + } + + @Test + public void testStyleChangeVisiblyDifferent_changeStyle() { + Notification.Builder n1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.InboxStyle()); + Notification.Builder n2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.BigTextStyle()); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); + } + + @Test + public void testInboxTextChange() { + Notification.Builder nInbox1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.InboxStyle().addLine("a").addLine("b")); + Notification.Builder nInbox2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.InboxStyle().addLine("b").addLine("c")); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nInbox1, nInbox2)); + } + + @Test + public void testBigTextTextChange() { + Notification.Builder nBigText1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.BigTextStyle().bigText("something")); + Notification.Builder nBigText2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.BigTextStyle().bigText("else")); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nBigText1, nBigText2)); + } + + @Test + public void testBigPictureChange() { + Bitmap bitA = Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888); + Bitmap bitB = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888); + + Notification.Builder nBigPic1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.BigPictureStyle().bigPicture(bitA)); + Notification.Builder nBigPic2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.BigPictureStyle().bigPicture(bitB)); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nBigPic1, nBigPic2)); + } + + @Test + public void testMessagingChange_text() { + Notification.Builder nM1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message( + "a", 100, new Person.Builder().setName("hi").build()))); + Notification.Builder nM2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message( + "a", 100, new Person.Builder().setName("hi").build())) + .addMessage(new Notification.MessagingStyle.Message( + "b", 100, new Person.Builder().setName("hi").build())) + ); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); + } + + @Test + public void testMessagingChange_data() { + Notification.Builder nM1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message( + "a", 100, new Person.Builder().setName("hi").build()) + .setData("text", mock(Uri.class)))); + Notification.Builder nM2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message( + "a", 100, new Person.Builder().setName("hi").build()))); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); + } + + @Test + public void testMessagingChange_sender() { + Person a = new Person.Builder().setName("A").build(); + Person b = new Person.Builder().setName("b").build(); + Notification.Builder nM1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message("a", 100, b))); + Notification.Builder nM2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message("a", 100, a))); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); + } + + @Test + public void testMessagingChange_key() { + Person a = new Person.Builder().setName("hi").setKey("A").build(); + Person b = new Person.Builder().setName("hi").setKey("b").build(); + Notification.Builder nM1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message("a", 100, a))); + Notification.Builder nM2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message("a", 100, b))); + + assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); + } + + @Test + public void testMessagingChange_ignoreTimeChange() { + Notification.Builder nM1 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message( + "a", 100, new Person.Builder().setName("hi").build()))); + Notification.Builder nM2 = new Notification.Builder(mContext, "test") + .setStyle(new Notification.MessagingStyle("") + .addMessage(new Notification.MessagingStyle.Message( + "a", 1000, new Person.Builder().setName("hi").build())) + ); + + assertFalse(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); + } + + @Test + public void testRemoteViews_nullChange() { + Notification.Builder n1 = new Notification.Builder(mContext, "test") + .setContent(mock(RemoteViews.class)); + Notification.Builder n2 = new Notification.Builder(mContext, "test"); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test"); + n2 = new Notification.Builder(mContext, "test") + .setContent(mock(RemoteViews.class)); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test") + .setCustomBigContentView(mock(RemoteViews.class)); + n2 = new Notification.Builder(mContext, "test"); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test"); + n2 = new Notification.Builder(mContext, "test") + .setCustomBigContentView(mock(RemoteViews.class)); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test"); + n2 = new Notification.Builder(mContext, "test"); + assertFalse(Notification.areRemoteViewsChanged(n1, n2)); + } + + @Test + public void testRemoteViews_layoutChange() { + RemoteViews a = mock(RemoteViews.class); + when(a.getLayoutId()).thenReturn(234); + RemoteViews b = mock(RemoteViews.class); + when(b.getLayoutId()).thenReturn(189); + + Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); + Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + } + + @Test + public void testRemoteViews_layoutSame() { + RemoteViews a = mock(RemoteViews.class); + when(a.getLayoutId()).thenReturn(234); + RemoteViews b = mock(RemoteViews.class); + when(b.getLayoutId()).thenReturn(234); + + Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); + Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); + assertFalse(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); + assertFalse(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); + assertFalse(Notification.areRemoteViewsChanged(n1, n2)); + } + + @Test + public void testRemoteViews_sequenceChange() { + RemoteViews a = mock(RemoteViews.class); + when(a.getLayoutId()).thenReturn(234); + when(a.getSequenceNumber()).thenReturn(1); + RemoteViews b = mock(RemoteViews.class); + when(b.getLayoutId()).thenReturn(234); + when(b.getSequenceNumber()).thenReturn(2); + + Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); + Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); + assertTrue(Notification.areRemoteViewsChanged(n1, n2)); + } + + @Test + public void testRemoteViews_sequenceSame() { + RemoteViews a = mock(RemoteViews.class); + when(a.getLayoutId()).thenReturn(234); + when(a.getSequenceNumber()).thenReturn(1); + RemoteViews b = mock(RemoteViews.class); + when(b.getLayoutId()).thenReturn(234); + when(b.getSequenceNumber()).thenReturn(1); + + Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); + Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); + assertFalse(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); + assertFalse(Notification.areRemoteViewsChanged(n1, n2)); + + n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); + n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); + assertFalse(Notification.areRemoteViewsChanged(n1, n2)); + } + + @Test + public void testActionsDifferent_null() { + Notification n1 = new Notification.Builder(mContext, "test") + .build(); + Notification n2 = new Notification.Builder(mContext, "test") + .build(); + + assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); + } + + @Test + public void testActionsDifferentSame() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + Notification n1 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) + .build(); + Notification n2 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) + .build(); + + assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); + } + + @Test + public void testActionsDifferentText() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + Notification n1 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) + .build(); + Notification n2 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent).build()) + .build(); + + assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); + } + + @Test + public void testActionsDifferentSpannables() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + Notification n1 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, + new SpannableStringBuilder().append("test1", + new StyleSpan(Typeface.BOLD), + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE), + intent).build()) + .build(); + Notification n2 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "test1", intent).build()) + .build(); + + assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); + } + + @Test + public void testActionsDifferentNumber() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE); + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + Notification n1 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) + .build(); + Notification n2 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) + .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent).build()) + .build(); + + assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); + } + + @Test + public void testActionsDifferentIntent() { + PendingIntent intent1 = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE); + PendingIntent intent2 = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE); + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + Notification n1 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent1).build()) + .build(); + Notification n2 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent2).build()) + .build(); + + assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); + } + + @Test + public void testActionsIgnoresRemoteInputs() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + Notification n1 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) + .addRemoteInput(new RemoteInput.Builder("a") + .setChoices(new CharSequence[] {"i", "m"}) + .build()) + .build()) + .build(); + Notification n2 = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) + .addRemoteInput(new RemoteInput.Builder("a") + .setChoices(new CharSequence[] {"t", "m"}) + .build()) + .build()) + .build(); + + assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); + } + + @Test + public void testFreeformRemoteInputActionPair_noRemoteInput() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + Notification notification = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) + .build()) + .build(); + Assert.assertNull(notification.findRemoteInputActionPair(false)); + } + + @Test + public void testFreeformRemoteInputActionPair_hasRemoteInput() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + RemoteInput remoteInput = new RemoteInput.Builder("a").build(); + + Notification.Action actionWithRemoteInput = + new Notification.Action.Builder(icon, "TEXT 1", intent) + .addRemoteInput(remoteInput) + .addRemoteInput(remoteInput) + .build(); + + Notification.Action actionWithoutRemoteInput = + new Notification.Action.Builder(icon, "TEXT 2", intent) + .build(); + + Notification notification = new Notification.Builder(mContext, "test") + .addAction(actionWithoutRemoteInput) + .addAction(actionWithRemoteInput) + .build(); + + Pair<RemoteInput, Notification.Action> remoteInputActionPair = + notification.findRemoteInputActionPair(false); + + assertNotNull(remoteInputActionPair); + Assert.assertEquals(remoteInput, remoteInputActionPair.first); + Assert.assertEquals(actionWithRemoteInput, remoteInputActionPair.second); + } + + @Test + public void testFreeformRemoteInputActionPair_requestFreeform_noFreeformRemoteInput() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + Notification notification = new Notification.Builder(mContext, "test") + .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) + .addRemoteInput( + new RemoteInput.Builder("a") + .setAllowFreeFormInput(false).build()) + .build()) + .build(); + Assert.assertNull(notification.findRemoteInputActionPair(true)); + } + + @Test + public void testFreeformRemoteInputActionPair_requestFreeform_hasFreeformRemoteInput() { + PendingIntent intent = PendingIntent.getActivity( + mContext, 0, new Intent("test1"), PendingIntent.FLAG_IMMUTABLE);; + Icon icon = Icon.createWithBitmap(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); + + RemoteInput remoteInput = + new RemoteInput.Builder("a").setAllowFreeFormInput(false).build(); + RemoteInput freeformRemoteInput = + new RemoteInput.Builder("b").setAllowFreeFormInput(true).build(); + + Notification.Action actionWithFreeformRemoteInput = + new Notification.Action.Builder(icon, "TEXT 1", intent) + .addRemoteInput(remoteInput) + .addRemoteInput(freeformRemoteInput) + .build(); + + Notification.Action actionWithoutFreeformRemoteInput = + new Notification.Action.Builder(icon, "TEXT 2", intent) + .addRemoteInput(remoteInput) + .build(); + + Notification notification = new Notification.Builder(mContext, "test") + .addAction(actionWithoutFreeformRemoteInput) + .addAction(actionWithFreeformRemoteInput) + .build(); + + Pair<RemoteInput, Notification.Action> remoteInputActionPair = + notification.findRemoteInputActionPair(true); + + assertNotNull(remoteInputActionPair); + Assert.assertEquals(freeformRemoteInput, remoteInputActionPair.first); + Assert.assertEquals(actionWithFreeformRemoteInput, remoteInputActionPair.second); + } + private void assertValid(Notification.Colors c) { // Assert that all colors are populated assertThat(c.getBackgroundColor()).isNotEqualTo(Notification.COLOR_INVALID); diff --git a/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java b/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java index ed2b10117308..3768063f2a91 100644 --- a/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java +++ b/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java @@ -368,4 +368,20 @@ public class PropertyInvalidatedCacheTests { PropertyInvalidatedCache.MODULE_BLUETOOTH, "getState"); assertEquals(n1, "cache_key.bluetooth.get_state"); } + + @Test + public void testOnTrimMemory() { + TestCache cache = new TestCache(MODULE, "trimMemoryTest"); + // The cache is not active until it has been invalidated once. + cache.invalidateCache(); + // Populate the cache with six entries. + for (int i = 0; i < 6; i++) { + cache.query(i); + } + // The maximum number of entries in TestCache is 4, so even though six entries were + // created, only four are retained. + assertEquals(4, cache.size()); + PropertyInvalidatedCache.onTrimMemory(); + assertEquals(0, cache.size()); + } } diff --git a/core/tests/mockingcoretests/src/android/app/activity/ActivityThreadClientTest.java b/core/tests/mockingcoretests/src/android/app/activity/ActivityThreadClientTest.java index 613eddd30c8a..88b2de7137fd 100644 --- a/core/tests/mockingcoretests/src/android/app/activity/ActivityThreadClientTest.java +++ b/core/tests/mockingcoretests/src/android/app/activity/ActivityThreadClientTest.java @@ -207,7 +207,7 @@ public class ActivityThreadClientTest { assertFalse("Must not report change if no public diff", shouldReportChange(currentConfig, newConfig, null /* sizeBuckets */, - 0 /* handledConfigChanges */)); + 0 /* handledConfigChanges */, false /* alwaysReportChange */)); final int[] verticalThresholds = {100, 400}; final SizeConfigurationBuckets buckets = new SizeConfigurationBuckets( @@ -221,24 +221,33 @@ public class ActivityThreadClientTest { assertFalse("Must not report changes if the diff is small and not handled", shouldReportChange(currentConfig, newConfig, buckets, - CONFIG_FONT_SCALE /* handledConfigChanges */)); + CONFIG_FONT_SCALE /* handledConfigChanges */, + false /* alwaysReportChange */)); assertTrue("Must report changes if the small diff is handled", shouldReportChange(currentConfig, newConfig, buckets, - CONFIG_SCREEN_SIZE /* handledConfigChanges */)); + CONFIG_SCREEN_SIZE /* handledConfigChanges */, + false /* alwaysReportChange */)); + + assertTrue("Must report changes if it should, even it is small and not handled", + shouldReportChange(currentConfig, newConfig, buckets, + CONFIG_FONT_SCALE /* handledConfigChanges */, + true /* alwaysReportChange */)); currentConfig.fontScale = 0.8f; newConfig.fontScale = 1.2f; assertTrue("Must report handled changes regardless of small unhandled change", shouldReportChange(currentConfig, newConfig, buckets, - CONFIG_FONT_SCALE /* handledConfigChanges */)); + CONFIG_FONT_SCALE /* handledConfigChanges */, + false /* alwaysReportChange */)); newConfig.screenHeightDp = 500; assertFalse("Must not report changes if there's unhandled big changes", shouldReportChange(currentConfig, newConfig, buckets, - CONFIG_FONT_SCALE /* handledConfigChanges */)); + CONFIG_FONT_SCALE /* handledConfigChanges */, + false /* alwaysReportChange */)); } private void recreateAndVerifyNoRelaunch(ActivityThread activityThread, TestActivity activity) { diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java index 1174b685e92c..bf7326a5b30e 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java @@ -20,10 +20,11 @@ import static android.app.ActivityManager.START_SUCCESS; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.view.Display.DEFAULT_DISPLAY; +import static android.view.WindowManager.TRANSIT_CLOSE; +import static android.view.WindowManager.TRANSIT_OPEN; import static android.window.TaskFragmentOrganizer.KEY_ERROR_CALLBACK_OP_TYPE; import static android.window.TaskFragmentOrganizer.KEY_ERROR_CALLBACK_TASK_FRAGMENT_INFO; import static android.window.TaskFragmentOrganizer.KEY_ERROR_CALLBACK_THROWABLE; -import static android.window.TaskFragmentOrganizer.getTransitionType; import static android.window.TaskFragmentTransaction.TYPE_ACTIVITY_REPARENTED_TO_TASK; import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_APPEARED; import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_ERROR; @@ -76,6 +77,7 @@ import androidx.annotation.Nullable; import androidx.window.common.CommonFoldingFeature; import androidx.window.common.EmptyLifecycleCallbacksAdapter; import androidx.window.extensions.WindowExtensionsProvider; +import androidx.window.extensions.embedding.TransactionManager.TransactionRecord; import androidx.window.extensions.layout.WindowLayoutComponentImpl; import com.android.internal.annotations.VisibleForTesting; @@ -100,6 +102,10 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen @GuardedBy("mLock") final SplitPresenter mPresenter; + @VisibleForTesting + @GuardedBy("mLock") + final TransactionManager mTransactionManager; + // Currently applied split configuration. @GuardedBy("mLock") private final List<EmbeddingRule> mSplitRules = new ArrayList<>(); @@ -150,6 +156,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen final MainThreadExecutor executor = new MainThreadExecutor(); mHandler = executor.mHandler; mPresenter = new SplitPresenter(executor, this); + mTransactionManager = new TransactionManager(mPresenter); final ActivityThread activityThread = ActivityThread.currentActivityThread(); final Application application = activityThread.getApplication(); // Register a callback to be notified about activities being created. @@ -167,7 +174,9 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen @Override public void accept(List<CommonFoldingFeature> foldingFeatures) { synchronized (mLock) { - final WindowContainerTransaction wct = new WindowContainerTransaction(); + final TransactionRecord transactionRecord = mTransactionManager + .startNewTransaction(); + final WindowContainerTransaction wct = transactionRecord.getTransaction(); for (int i = 0; i < mTaskContainers.size(); i++) { final TaskContainer taskContainer = mTaskContainers.valueAt(i); if (!taskContainer.isVisible()) { @@ -186,7 +195,9 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen updateContainersInTask(wct, taskContainer); updateAnimationOverride(taskContainer); } - mPresenter.applyTransaction(wct); + // The WCT should be applied and merged to the device state change transition if + // there is one. + transactionRecord.apply(false /* shouldApplyIndependently */); } } } @@ -256,7 +267,9 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen @Override public void onTransactionReady(@NonNull TaskFragmentTransaction transaction) { synchronized (mLock) { - final WindowContainerTransaction wct = new WindowContainerTransaction(); + final TransactionRecord transactionRecord = mTransactionManager.startNewTransaction( + transaction.getTransactionToken()); + final WindowContainerTransaction wct = transactionRecord.getTransaction(); final List<TaskFragmentTransaction.Change> changes = transaction.getChanges(); for (TaskFragmentTransaction.Change change : changes) { final int taskId = change.getTaskId(); @@ -307,8 +320,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen // Notify the server, and the server should apply and merge the // WindowContainerTransaction to the active sync to finish the TaskFragmentTransaction. - mPresenter.onTransactionHandled(transaction.getTransactionToken(), wct, - getTransitionType(wct), false /* shouldApplyIndependently */); + transactionRecord.apply(false /* shouldApplyIndependently */); updateCallbackIfNecessary(); } } @@ -333,6 +345,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen container.setInfo(wct, taskFragmentInfo); if (container.isFinished()) { + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_CLOSE); mPresenter.cleanupContainer(wct, container, false /* shouldFinishDependent */); } else { // Update with the latest Task configuration. @@ -368,15 +381,18 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen // Do not finish the dependents if the last activity is reparented to PiP. // Instead, the original split should be cleanup, and the dependent may be // expanded to fullscreen. + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_CLOSE); cleanupForEnterPip(wct, container); mPresenter.cleanupContainer(wct, container, false /* shouldFinishDependent */); } else if (taskFragmentInfo.isTaskClearedForReuse()) { // Do not finish the dependents if this TaskFragment was cleared due to // launching activity in the Task. + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_CLOSE); mPresenter.cleanupContainer(wct, container, false /* shouldFinishDependent */); } else if (!container.isWaitingActivityAppear()) { // Do not finish the container before the expected activity appear until // timeout. + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_CLOSE); mPresenter.cleanupContainer(wct, container, true /* shouldFinishDependent */); } } else if (wasInPip && isInPip) { @@ -571,6 +587,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen container.setInfo(wct, taskFragmentInfo); container.clearPendingAppearedActivities(); if (container.isEmpty()) { + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_CLOSE); mPresenter.cleanupContainer(wct, container, false /* shouldFinishDependent */); } break; @@ -1009,11 +1026,10 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen */ @GuardedBy("mLock") void onTaskFragmentAppearEmptyTimeout(@NonNull TaskFragmentContainer container) { - final WindowContainerTransaction wct = new WindowContainerTransaction(); - onTaskFragmentAppearEmptyTimeout(wct, container); + final TransactionRecord transactionRecord = mTransactionManager.startNewTransaction(); + onTaskFragmentAppearEmptyTimeout(transactionRecord.getTransaction(), container); // Can be applied independently as a timeout callback. - mPresenter.applyTransaction(wct, getTransitionType(wct), - true /* shouldApplyIndependently */); + transactionRecord.apply(true /* shouldApplyIndependently */); } /** @@ -1023,6 +1039,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen @GuardedBy("mLock") void onTaskFragmentAppearEmptyTimeout(@NonNull WindowContainerTransaction wct, @NonNull TaskFragmentContainer container) { + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_CLOSE); mPresenter.cleanupContainer(wct, container, false /* shouldFinishDependent */); } @@ -1562,6 +1579,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen * @param isOnCreated whether this happens during the primary activity onCreated. */ @VisibleForTesting + @GuardedBy("mLock") @Nullable Bundle getPlaceholderOptions(@NonNull Activity primaryActivity, boolean isOnCreated) { // Setting avoid move to front will also skip the animation. We only want to do that when @@ -1569,6 +1587,8 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen // Check if the primary is resumed or if this is called when the primary is onCreated // (not resumed yet). if (isOnCreated || primaryActivity.isResumed()) { + // Only set trigger type if the launch happens in foreground. + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_OPEN); return null; } final ActivityOptions options = ActivityOptions.makeBasic(); @@ -1595,6 +1615,8 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen if (SplitPresenter.shouldShowSplit(splitAttributes)) { return false; } + + mTransactionManager.getCurrentTransactionRecord().setOriginType(TRANSIT_CLOSE); mPresenter.cleanupContainer(wct, splitContainer.getSecondaryContainer(), false /* shouldFinishDependent */); return true; @@ -1905,23 +1927,26 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen // that we don't launch it if an activity itself already requested something to be // launched to side. synchronized (mLock) { - final WindowContainerTransaction wct = new WindowContainerTransaction(); - SplitController.this.onActivityCreated(wct, activity); + final TransactionRecord transactionRecord = mTransactionManager + .startNewTransaction(); + transactionRecord.setOriginType(TRANSIT_OPEN); + SplitController.this.onActivityCreated(transactionRecord.getTransaction(), + activity); // The WCT should be applied and merged to the activity launch transition. - mPresenter.applyTransaction(wct, getTransitionType(wct), - false /* shouldApplyIndependently */); + transactionRecord.apply(false /* shouldApplyIndependently */); } } @Override public void onActivityConfigurationChanged(@NonNull Activity activity) { synchronized (mLock) { - final WindowContainerTransaction wct = new WindowContainerTransaction(); - SplitController.this.onActivityConfigurationChanged(wct, activity); + final TransactionRecord transactionRecord = mTransactionManager + .startNewTransaction(); + SplitController.this.onActivityConfigurationChanged( + transactionRecord.getTransaction(), activity); // The WCT should be applied and merged to the Task change transition so that the // placeholder is launched in the same transition. - mPresenter.applyTransaction(wct, getTransitionType(wct), - false /* shouldApplyIndependently */); + transactionRecord.apply(false /* shouldApplyIndependently */); } } @@ -1977,7 +2002,10 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen } synchronized (mLock) { - final WindowContainerTransaction wct = new WindowContainerTransaction(); + final TransactionRecord transactionRecord = mTransactionManager + .startNewTransaction(); + transactionRecord.setOriginType(TRANSIT_OPEN); + final WindowContainerTransaction wct = transactionRecord.getTransaction(); final TaskFragmentContainer launchedInTaskFragment; if (launchingActivity != null) { final int taskId = getTaskId(launchingActivity); @@ -1990,13 +2018,14 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen if (launchedInTaskFragment != null) { // Make sure the WCT is applied immediately instead of being queued so that the // TaskFragment will be ready before activity attachment. - mPresenter.applyTransaction(wct, getTransitionType(wct), - false /* shouldApplyIndependently */); + transactionRecord.apply(false /* shouldApplyIndependently */); // Amend the request to let the WM know that the activity should be placed in // the dedicated container. options.putBinder(ActivityOptions.KEY_LAUNCH_TASK_FRAGMENT_TOKEN, launchedInTaskFragment.getTaskFragmentToken()); mCurrentIntent = intent; + } else { + transactionRecord.abort(); } } diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TransactionManager.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TransactionManager.java new file mode 100644 index 000000000000..0071fea41aa8 --- /dev/null +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TransactionManager.java @@ -0,0 +1,201 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.window.extensions.embedding; + +import static android.view.WindowManager.TRANSIT_CHANGE; +import static android.view.WindowManager.TRANSIT_NONE; + +import android.os.IBinder; +import android.view.WindowManager.TransitionType; +import android.window.TaskFragmentOrganizer; +import android.window.WindowContainerTransaction; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.android.internal.annotations.VisibleForTesting; + +/** + * Responsible for managing the current {@link WindowContainerTransaction} as a response to device + * state changes and app interactions. + * + * A typical use flow: + * 1. Call {@link #startNewTransaction} to start tracking the changes. + * 2. Use {@link TransactionRecord#setOriginType(int)} (int)} to record the type of operation that + * will start a new transition on system server. + * 3. Use {@link #getCurrentTransactionRecord()} to get current {@link TransactionRecord} for + * changes. + * 4. Call {@link TransactionRecord#apply(boolean)} to request the system server to apply changes in + * the current {@link WindowContainerTransaction}, or call {@link TransactionRecord#abort()} to + * dispose the current one. + * + * Note: + * There should be only one transaction at a time. The caller should not call + * {@link #startNewTransaction} again before calling {@link TransactionRecord#apply(boolean)} or + * {@link TransactionRecord#abort()} to the previous transaction. + */ +class TransactionManager { + + @NonNull + private final TaskFragmentOrganizer mOrganizer; + + @Nullable + private TransactionRecord mCurrentTransaction; + + TransactionManager(@NonNull TaskFragmentOrganizer organizer) { + mOrganizer = organizer; + } + + @NonNull + TransactionRecord startNewTransaction() { + return startNewTransaction(null /* taskFragmentTransactionToken */); + } + + /** + * Starts tracking the changes in a new {@link WindowContainerTransaction}. Caller can call + * {@link #getCurrentTransactionRecord()} later to continue adding change to the current + * transaction until {@link TransactionRecord#apply(boolean)} or + * {@link TransactionRecord#abort()} is called. + * @param taskFragmentTransactionToken {@link android.window.TaskFragmentTransaction + * #getTransactionToken()} if this is a response to a + * {@link android.window.TaskFragmentTransaction}. + */ + @NonNull + TransactionRecord startNewTransaction(@Nullable IBinder taskFragmentTransactionToken) { + if (mCurrentTransaction != null) { + mCurrentTransaction = null; + throw new IllegalStateException( + "The previous transaction has not been applied or aborted,"); + } + mCurrentTransaction = new TransactionRecord(taskFragmentTransactionToken); + return mCurrentTransaction; + } + + /** + * Gets the current {@link TransactionRecord} started from {@link #startNewTransaction}. + */ + @NonNull + TransactionRecord getCurrentTransactionRecord() { + if (mCurrentTransaction == null) { + throw new IllegalStateException("startNewTransaction() is not invoked before calling" + + " getCurrentTransactionRecord()."); + } + return mCurrentTransaction; + } + + /** The current transaction. The manager should only handle one transaction at a time. */ + class TransactionRecord { + /** + * {@link WindowContainerTransaction} containing the current change. + * @see #startNewTransaction(IBinder) + * @see #apply (boolean) + */ + @NonNull + private final WindowContainerTransaction mTransaction = new WindowContainerTransaction(); + + /** + * If the current transaction is a response to a + * {@link android.window.TaskFragmentTransaction}, this is the + * {@link android.window.TaskFragmentTransaction#getTransactionToken()}. + * @see #startNewTransaction(IBinder) + */ + @Nullable + private final IBinder mTaskFragmentTransactionToken; + + /** + * To track of the origin type of the current {@link #mTransaction}. When + * {@link #apply (boolean)} to start a new transition, this is the type to request. + * @see #setOriginType(int) + * @see #getTransactionTransitionType() + */ + @TransitionType + private int mOriginType = TRANSIT_NONE; + + TransactionRecord(@Nullable IBinder taskFragmentTransactionToken) { + mTaskFragmentTransactionToken = taskFragmentTransactionToken; + } + + @NonNull + WindowContainerTransaction getTransaction() { + ensureCurrentTransaction(); + return mTransaction; + } + + /** + * Sets the {@link TransitionType} that triggers this transaction. If there are multiple + * calls, only the first call will be respected as the "origin" type. + */ + void setOriginType(@TransitionType int type) { + ensureCurrentTransaction(); + if (mOriginType != TRANSIT_NONE) { + // Skip if the origin type has already been set. + return; + } + mOriginType = type; + } + + /** + * Requests the system server to apply the current transaction started from + * {@link #startNewTransaction}. + * @param shouldApplyIndependently If {@code true}, the {@link #mCurrentTransaction} will + * request a new transition, which will be queued until the + * sync engine is free if there is any other active sync. + * If {@code false}, the {@link #startNewTransaction} will + * be directly applied to the active sync. + */ + void apply(boolean shouldApplyIndependently) { + ensureCurrentTransaction(); + if (mTaskFragmentTransactionToken != null) { + // If this is a response to a TaskFragmentTransaction. + mOrganizer.onTransactionHandled(mTaskFragmentTransactionToken, mTransaction, + getTransactionTransitionType(), shouldApplyIndependently); + } else { + mOrganizer.applyTransaction(mTransaction, getTransactionTransitionType(), + shouldApplyIndependently); + } + dispose(); + } + + /** Called when there is no need to {@link #apply(boolean)} the current transaction. */ + void abort() { + ensureCurrentTransaction(); + dispose(); + } + + private void dispose() { + TransactionManager.this.mCurrentTransaction = null; + } + + private void ensureCurrentTransaction() { + if (TransactionManager.this.mCurrentTransaction != this) { + throw new IllegalStateException( + "This transaction has already been apply() or abort()."); + } + } + + /** + * Gets the {@link TransitionType} that we will request transition with for the + * current {@link WindowContainerTransaction}. + */ + @VisibleForTesting + @TransitionType + int getTransactionTransitionType() { + // Use TRANSIT_CHANGE as default if there is not opening/closing window. + return mOriginType != TRANSIT_NONE ? mOriginType : TRANSIT_CHANGE; + } + } +} diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java index 25d034756265..a40303150079 100644 --- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java +++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java @@ -132,6 +132,7 @@ public class SplitControllerTest { private SplitController mSplitController; private SplitPresenter mSplitPresenter; + private TransactionManager mTransactionManager; @Before public void setUp() { @@ -140,8 +141,10 @@ public class SplitControllerTest { .getCurrentWindowLayoutInfo(anyInt(), any()); mSplitController = new SplitController(mWindowLayoutComponent); mSplitPresenter = mSplitController.mPresenter; + mTransactionManager = mSplitController.mTransactionManager; spyOn(mSplitController); spyOn(mSplitPresenter); + spyOn(mTransactionManager); doNothing().when(mSplitPresenter).applyTransaction(any(), anyInt(), anyBoolean()); final Configuration activityConfig = new Configuration(); activityConfig.windowConfiguration.setBounds(TASK_BOUNDS); @@ -212,6 +215,8 @@ public class SplitControllerTest { @Test public void testOnTaskFragmentAppearEmptyTimeout() { + // Setup to make sure a transaction record is started. + mTransactionManager.startNewTransaction(); final TaskFragmentContainer tf = mSplitController.newContainer(mActivity, TASK_ID); doCallRealMethod().when(mSplitController).onTaskFragmentAppearEmptyTimeout(any(), any()); mSplitController.onTaskFragmentAppearEmptyTimeout(mTransaction, tf); @@ -615,6 +620,8 @@ public class SplitControllerTest { @Test public void testResolveActivityToContainer_placeholderRule_notInTaskFragment() { + // Setup to make sure a transaction record is started. + mTransactionManager.startNewTransaction(); setupPlaceholderRule(mActivity); final SplitPlaceholderRule placeholderRule = (SplitPlaceholderRule) mSplitController.getSplitRules().get(0); @@ -647,6 +654,8 @@ public class SplitControllerTest { @Test public void testResolveActivityToContainer_placeholderRule_inTopMostTaskFragment() { + // Setup to make sure a transaction record is started. + mTransactionManager.startNewTransaction(); setupPlaceholderRule(mActivity); final SplitPlaceholderRule placeholderRule = (SplitPlaceholderRule) mSplitController.getSplitRules().get(0); @@ -679,6 +688,8 @@ public class SplitControllerTest { @Test public void testResolveActivityToContainer_placeholderRule_inSecondarySplit() { + // Setup to make sure a transaction record is started. + mTransactionManager.startNewTransaction(); setupPlaceholderRule(mActivity); final SplitPlaceholderRule placeholderRule = (SplitPlaceholderRule) mSplitController.getSplitRules().get(0); @@ -961,6 +972,8 @@ public class SplitControllerTest { @Test public void testGetPlaceholderOptions() { + // Setup to make sure a transaction record is started. + mTransactionManager.startNewTransaction(); doReturn(true).when(mActivity).isResumed(); assertNull(mSplitController.getPlaceholderOptions(mActivity, false /* isOnCreated */)); @@ -1147,8 +1160,6 @@ public class SplitControllerTest { + "of other properties", SplitController.haveSamePresentation(splitRule1, splitRule2, new WindowMetrics(TASK_BOUNDS, WindowInsets.CONSUMED))); - - } /** Creates a mock activity in the organizer process. */ diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/TransactionManagerTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/TransactionManagerTest.java new file mode 100644 index 000000000000..62006bd51399 --- /dev/null +++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/TransactionManagerTest.java @@ -0,0 +1,204 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package androidx.window.extensions.embedding; + +import static android.view.WindowManager.TRANSIT_CHANGE; +import static android.view.WindowManager.TRANSIT_CLOSE; +import static android.view.WindowManager.TRANSIT_OPEN; + +import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; +import static com.android.dx.mockito.inline.extended.ExtendedMockito.verifyNoMoreInteractions; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertThrows; +import static org.mockito.Mockito.clearInvocations; + +import android.os.Binder; +import android.os.IBinder; +import android.platform.test.annotations.Presubmit; +import android.window.TaskFragmentOrganizer; +import android.window.WindowContainerTransaction; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; +import androidx.window.extensions.embedding.TransactionManager.TransactionRecord; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +/** + * Test class for {@link TransactionManager}. + * + * Build/Install/Run: + * atest WMJetpackUnitTests:TransactionManagerTest + */ +@Presubmit +@SmallTest +@RunWith(AndroidJUnit4.class) +public class TransactionManagerTest { + + @Mock + private TaskFragmentOrganizer mOrganizer; + private TransactionManager mTransactionManager; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + mTransactionManager = new TransactionManager(mOrganizer); + } + + @Test + public void testStartNewTransaction() { + mTransactionManager.startNewTransaction(); + + // Throw exception if #startNewTransaction is called twice without #apply() or #abort(). + assertThrows(IllegalStateException.class, mTransactionManager::startNewTransaction); + + // Allow to start new after #apply() the last transaction. + TransactionRecord transactionRecord = mTransactionManager.startNewTransaction(); + transactionRecord.apply(false /* shouldApplyIndependently */); + transactionRecord = mTransactionManager.startNewTransaction(); + + // Allow to start new after #abort() the last transaction. + transactionRecord.abort(); + mTransactionManager.startNewTransaction(); + } + + @Test + public void testSetTransactionOriginType() { + // Return TRANSIT_CHANGE if there is no trigger type set. + TransactionRecord transactionRecord = mTransactionManager.startNewTransaction(); + + assertEquals(TRANSIT_CHANGE, transactionRecord.getTransactionTransitionType()); + + // Return the first set type. + mTransactionManager.getCurrentTransactionRecord().abort(); + transactionRecord = mTransactionManager.startNewTransaction(); + transactionRecord.setOriginType(TRANSIT_OPEN); + + assertEquals(TRANSIT_OPEN, transactionRecord.getTransactionTransitionType()); + + transactionRecord.setOriginType(TRANSIT_CLOSE); + + assertEquals(TRANSIT_OPEN, transactionRecord.getTransactionTransitionType()); + + // Reset when #startNewTransaction(). + transactionRecord.abort(); + transactionRecord = mTransactionManager.startNewTransaction(); + + assertEquals(TRANSIT_CHANGE, transactionRecord.getTransactionTransitionType()); + } + + @Test + public void testGetCurrentTransactionRecord() { + // Throw exception if #getTransaction is called without calling #startNewTransaction(). + assertThrows(IllegalStateException.class, mTransactionManager::getCurrentTransactionRecord); + + TransactionRecord transactionRecord = mTransactionManager.startNewTransaction(); + assertNotNull(transactionRecord); + + // Same WindowContainerTransaction should be returned. + assertSame(transactionRecord, mTransactionManager.getCurrentTransactionRecord()); + + // Reset after #abort(). + transactionRecord.abort(); + assertThrows(IllegalStateException.class, mTransactionManager::getCurrentTransactionRecord); + + // New WindowContainerTransaction after #startNewTransaction(). + mTransactionManager.startNewTransaction(); + assertNotEquals(transactionRecord, mTransactionManager.getCurrentTransactionRecord()); + + // Reset after #apply(). + mTransactionManager.getCurrentTransactionRecord().apply( + false /* shouldApplyIndependently */); + assertThrows(IllegalStateException.class, mTransactionManager::getCurrentTransactionRecord); + } + + @Test + public void testApply() { + // #applyTransaction(false) + TransactionRecord transactionRecord = mTransactionManager.startNewTransaction(); + int transitionType = transactionRecord.getTransactionTransitionType(); + WindowContainerTransaction wct = transactionRecord.getTransaction(); + transactionRecord.apply(false /* shouldApplyIndependently */); + + verify(mOrganizer).applyTransaction(wct, transitionType, + false /* shouldApplyIndependently */); + + // #applyTransaction(true) + clearInvocations(mOrganizer); + transactionRecord = mTransactionManager.startNewTransaction(); + transitionType = transactionRecord.getTransactionTransitionType(); + wct = transactionRecord.getTransaction(); + transactionRecord.apply(true /* shouldApplyIndependently */); + + verify(mOrganizer).applyTransaction(wct, transitionType, + true /* shouldApplyIndependently */); + + // #onTransactionHandled(false) + clearInvocations(mOrganizer); + IBinder token = new Binder(); + transactionRecord = mTransactionManager.startNewTransaction(token); + transitionType = transactionRecord.getTransactionTransitionType(); + wct = transactionRecord.getTransaction(); + transactionRecord.apply(false /* shouldApplyIndependently */); + + verify(mOrganizer).onTransactionHandled(token, wct, transitionType, + false /* shouldApplyIndependently */); + + // #onTransactionHandled(true) + clearInvocations(mOrganizer); + token = new Binder(); + transactionRecord = mTransactionManager.startNewTransaction(token); + transitionType = transactionRecord.getTransactionTransitionType(); + wct = transactionRecord.getTransaction(); + transactionRecord.apply(true /* shouldApplyIndependently */); + + verify(mOrganizer).onTransactionHandled(token, wct, transitionType, + true /* shouldApplyIndependently */); + + // Throw exception if there is any more interaction. + final TransactionRecord record = transactionRecord; + assertThrows(IllegalStateException.class, + () -> record.apply(false /* shouldApplyIndependently */)); + assertThrows(IllegalStateException.class, + () -> record.apply(true /* shouldApplyIndependently */)); + assertThrows(IllegalStateException.class, + record::abort); + } + + @Test + public void testAbort() { + final TransactionRecord transactionRecord = mTransactionManager.startNewTransaction(); + transactionRecord.abort(); + + // Throw exception if there is any more interaction. + verifyNoMoreInteractions(mOrganizer); + assertThrows(IllegalStateException.class, + () -> transactionRecord.apply(false /* shouldApplyIndependently */)); + assertThrows(IllegalStateException.class, + () -> transactionRecord.apply(true /* shouldApplyIndependently */)); + assertThrows(IllegalStateException.class, + transactionRecord::abort); + } +} diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml index 0bc70857a113..3ee20ea95ee5 100644 --- a/libs/WindowManager/Shell/res/values/dimen.xml +++ b/libs/WindowManager/Shell/res/values/dimen.xml @@ -321,4 +321,21 @@ <!-- The smaller size of the dismiss target (shrinks when something is in the target). --> <dimen name="floating_dismiss_circle_small">120dp</dimen> + + <!-- The thickness of shadows of a window that has focus in DIP. --> + <dimen name="freeform_decor_shadow_focused_thickness">20dp</dimen> + + <!-- The thickness of shadows of a window that doesn't have focus in DIP. --> + <dimen name="freeform_decor_shadow_unfocused_thickness">5dp</dimen> + + <!-- Height of button (32dp) + 2 * margin (5dp each). --> + <dimen name="freeform_decor_caption_height">42dp</dimen> + + <!-- Width of buttons (64dp) + handle (128dp) + padding (24dp total). --> + <dimen name="freeform_decor_caption_width">216dp</dimen> + + <dimen name="freeform_resize_handle">30dp</dimen> + + <dimen name="freeform_resize_corner">44dp</dimen> + </resources> diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasks.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasks.aidl index b71cc32a0347..1a6c1d65db03 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasks.aidl +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasks.aidl @@ -16,7 +16,7 @@ package com.android.wm.shell.recents; -import android.app.ActivityManager; +import android.app.ActivityManager.RunningTaskInfo; import com.android.wm.shell.recents.IRecentTasksListener; import com.android.wm.shell.util.GroupedRecentTaskInfo; @@ -44,5 +44,5 @@ interface IRecentTasks { /** * Gets the set of running tasks. */ - ActivityManager.RunningTaskInfo[] getRunningTasks(int maxNum) = 4; + RunningTaskInfo[] getRunningTasks(int maxNum) = 4; } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasksListener.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasksListener.aidl index 59f72335678e..e8f58fe2bfad 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasksListener.aidl +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasksListener.aidl @@ -16,7 +16,7 @@ package com.android.wm.shell.recents; -import android.app.ActivityManager; +import android.app.ActivityManager.RunningTaskInfo; /** * Listener interface that Launcher attaches to SystemUI to get split-screen callbacks. @@ -31,10 +31,10 @@ oneway interface IRecentTasksListener { /** * Called when a running task appears. */ - void onRunningTaskAppeared(in ActivityManager.RunningTaskInfo taskInfo); + void onRunningTaskAppeared(in RunningTaskInfo taskInfo); /** * Called when a running task vanishes. */ - void onRunningTaskVanished(in ActivityManager.RunningTaskInfo taskInfo); -}
\ No newline at end of file + void onRunningTaskVanished(in RunningTaskInfo taskInfo); +} diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/util/SplitBounds.java b/libs/WindowManager/Shell/src/com/android/wm/shell/util/SplitBounds.java index e90389764af3..f209521b1da4 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/util/SplitBounds.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/util/SplitBounds.java @@ -33,6 +33,8 @@ public class SplitBounds implements Parcelable { // This class is orientation-agnostic, so we compute both for later use public final float topTaskPercent; public final float leftTaskPercent; + public final float dividerWidthPercent; + public final float dividerHeightPercent; /** * If {@code true}, that means at the time of creation of this object, the * split-screened apps were vertically stacked. This is useful in scenarios like @@ -62,8 +64,12 @@ public class SplitBounds implements Parcelable { appsStackedVertically = false; } - leftTaskPercent = this.leftTopBounds.width() / (float) rightBottomBounds.right; - topTaskPercent = this.leftTopBounds.height() / (float) rightBottomBounds.bottom; + float totalWidth = rightBottomBounds.right - leftTopBounds.left; + float totalHeight = rightBottomBounds.bottom - leftTopBounds.top; + leftTaskPercent = leftTopBounds.width() / totalWidth; + topTaskPercent = leftTopBounds.height() / totalHeight; + dividerWidthPercent = visualDividerBounds.width() / totalWidth; + dividerHeightPercent = visualDividerBounds.height() / totalHeight; } public SplitBounds(Parcel parcel) { @@ -75,6 +81,8 @@ public class SplitBounds implements Parcelable { appsStackedVertically = parcel.readBoolean(); leftTopTaskId = parcel.readInt(); rightBottomTaskId = parcel.readInt(); + dividerWidthPercent = parcel.readInt(); + dividerHeightPercent = parcel.readInt(); } @Override @@ -87,6 +95,8 @@ public class SplitBounds implements Parcelable { parcel.writeBoolean(appsStackedVertically); parcel.writeInt(leftTopTaskId); parcel.writeInt(rightBottomTaskId); + parcel.writeFloat(dividerWidthPercent); + parcel.writeFloat(dividerHeightPercent); } @Override diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java index 87700ee4fb50..7d1f130daaef 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java @@ -21,7 +21,6 @@ import android.app.WindowConfiguration; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; -import android.graphics.Rect; import android.graphics.drawable.VectorDrawable; import android.os.Handler; import android.view.Choreographer; @@ -43,22 +42,6 @@ import com.android.wm.shell.desktopmode.DesktopModeStatus; * The shadow's thickness is 20dp when the window is in focus and 5dp when the window isn't. */ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearLayout> { - // The thickness of shadows of a window that has focus in DIP. - private static final int DECOR_SHADOW_FOCUSED_THICKNESS_IN_DIP = 20; - // The thickness of shadows of a window that doesn't have focus in DIP. - private static final int DECOR_SHADOW_UNFOCUSED_THICKNESS_IN_DIP = 5; - - // Height of button (32dp) + 2 * margin (5dp each) - private static final int DECOR_CAPTION_HEIGHT_IN_DIP = 42; - // Width of buttons (64dp) + handle (128dp) + padding (24dp total) - private static final int DECOR_CAPTION_WIDTH_IN_DIP = 216; - private static final int RESIZE_HANDLE_IN_DIP = 30; - private static final int RESIZE_CORNER_IN_DIP = 44; - - private static final Rect EMPTY_OUTSET = new Rect(); - private static final Rect RESIZE_HANDLE_OUTSET = new Rect( - RESIZE_HANDLE_IN_DIP, RESIZE_HANDLE_IN_DIP, RESIZE_HANDLE_IN_DIP, RESIZE_HANDLE_IN_DIP); - private final Handler mHandler; private final Choreographer mChoreographer; private final SyncTransactionQueue mSyncQueue; @@ -69,6 +52,7 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL private DragResizeInputListener mDragResizeListener; + private RelayoutParams mRelayoutParams = new RelayoutParams(); private final WindowDecoration.RelayoutResult<WindowDecorLinearLayout> mResult = new WindowDecoration.RelayoutResult<>(); @@ -114,19 +98,31 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL void relayout(ActivityManager.RunningTaskInfo taskInfo, SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT) { - final int shadowRadiusDp = taskInfo.isFocused - ? DECOR_SHADOW_FOCUSED_THICKNESS_IN_DIP : DECOR_SHADOW_UNFOCUSED_THICKNESS_IN_DIP; + final int shadowRadiusID = taskInfo.isFocused + ? R.dimen.freeform_decor_shadow_focused_thickness + : R.dimen.freeform_decor_shadow_unfocused_thickness; final boolean isFreeform = mTaskInfo.configuration.windowConfiguration.getWindowingMode() == WindowConfiguration.WINDOWING_MODE_FREEFORM; final boolean isDragResizeable = isFreeform && mTaskInfo.isResizeable; - final Rect outset = isDragResizeable ? RESIZE_HANDLE_OUTSET : EMPTY_OUTSET; WindowDecorLinearLayout oldRootView = mResult.mRootView; final SurfaceControl oldDecorationSurface = mDecorationContainerSurface; final WindowContainerTransaction wct = new WindowContainerTransaction(); - relayout(taskInfo, R.layout.caption_window_decoration, oldRootView, - DECOR_CAPTION_HEIGHT_IN_DIP, DECOR_CAPTION_WIDTH_IN_DIP, outset, shadowRadiusDp, - startT, finishT, wct, mResult); + + int outsetLeftId = R.dimen.freeform_resize_handle; + int outsetTopId = R.dimen.freeform_resize_handle; + int outsetRightId = R.dimen.freeform_resize_handle; + int outsetBottomId = R.dimen.freeform_resize_handle; + + mRelayoutParams.mRunningTaskInfo = taskInfo; + mRelayoutParams.mLayoutResId = R.layout.caption_window_decoration; + mRelayoutParams.mCaptionHeightId = R.dimen.freeform_decor_caption_height; + mRelayoutParams.mCaptionWidthId = R.dimen.freeform_decor_caption_width; + mRelayoutParams.mShadowRadiusId = shadowRadiusID; + if (isDragResizeable) { + mRelayoutParams.setOutsets(outsetLeftId, outsetTopId, outsetRightId, outsetBottomId); + } + relayout(mRelayoutParams, startT, finishT, wct, oldRootView, mResult); mTaskOrganizer.applyTransaction(wct); @@ -167,10 +163,12 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL } int touchSlop = ViewConfiguration.get(mResult.mRootView.getContext()).getScaledTouchSlop(); - + int resize_handle = mResult.mRootView.getResources() + .getDimensionPixelSize(R.dimen.freeform_resize_handle); + int resize_corner = mResult.mRootView.getResources() + .getDimensionPixelSize(R.dimen.freeform_resize_corner); mDragResizeListener.setGeometry( - mResult.mWidth, mResult.mHeight, (int) (mResult.mDensity * RESIZE_HANDLE_IN_DIP), - (int) (mResult.mDensity * RESIZE_CORNER_IN_DIP), touchSlop); + mResult.mWidth, mResult.mHeight, resize_handle, resize_corner, touchSlop); } /** diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java index bf863ea2c7ab..01cab9aae312 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java @@ -19,11 +19,11 @@ package com.android.wm.shell.windowdecor; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.content.res.Configuration; +import android.content.res.Resources; import android.graphics.Color; import android.graphics.PixelFormat; import android.graphics.Point; import android.graphics.Rect; -import android.util.DisplayMetrics; import android.view.Display; import android.view.InsetsState; import android.view.LayoutInflater; @@ -142,15 +142,14 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> */ abstract void relayout(RunningTaskInfo taskInfo); - void relayout(RunningTaskInfo taskInfo, int layoutResId, T rootView, float captionHeightDp, - float captionWidthDp, Rect outsetsDp, float shadowRadiusDp, - SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT, - WindowContainerTransaction wct, RelayoutResult<T> outResult) { + void relayout(RelayoutParams params, SurfaceControl.Transaction startT, + SurfaceControl.Transaction finishT, WindowContainerTransaction wct, T rootView, + RelayoutResult<T> outResult) { outResult.reset(); final Configuration oldTaskConfig = mTaskInfo.getConfiguration(); - if (taskInfo != null) { - mTaskInfo = taskInfo; + if (params.mRunningTaskInfo != null) { + mTaskInfo = params.mRunningTaskInfo; } if (!mTaskInfo.isVisible) { @@ -159,7 +158,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> return; } - if (rootView == null && layoutResId == 0) { + if (rootView == null && params.mLayoutResId == 0) { throw new IllegalArgumentException("layoutResId and rootView can't both be invalid."); } @@ -176,15 +175,15 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> return; } mDecorWindowContext = mContext.createConfigurationContext(taskConfig); - if (layoutResId != 0) { - outResult.mRootView = - (T) LayoutInflater.from(mDecorWindowContext).inflate(layoutResId, null); + if (params.mLayoutResId != 0) { + outResult.mRootView = (T) LayoutInflater.from(mDecorWindowContext) + .inflate(params.mLayoutResId, null); } } if (outResult.mRootView == null) { - outResult.mRootView = - (T) LayoutInflater.from(mDecorWindowContext).inflate(layoutResId, null); + outResult.mRootView = (T) LayoutInflater.from(mDecorWindowContext) + .inflate(params.mLayoutResId , null); } // DecorationContainerSurface @@ -200,18 +199,18 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> } final Rect taskBounds = taskConfig.windowConfiguration.getBounds(); - outResult.mDensity = taskConfig.densityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE; - final int decorContainerOffsetX = -(int) (outsetsDp.left * outResult.mDensity); - final int decorContainerOffsetY = -(int) (outsetsDp.top * outResult.mDensity); + final int decorContainerOffsetX = -loadResource(params.mOutsetLeftId); + final int decorContainerOffsetY = -loadResource(params.mOutsetTopId); outResult.mWidth = taskBounds.width() - + (int) (outsetsDp.right * outResult.mDensity) + + loadResource(params.mOutsetRightId) - decorContainerOffsetX; outResult.mHeight = taskBounds.height() - + (int) (outsetsDp.bottom * outResult.mDensity) + + loadResource(params.mOutsetBottomId) - decorContainerOffsetY; startT.setPosition( mDecorationContainerSurface, decorContainerOffsetX, decorContainerOffsetY) - .setWindowCrop(mDecorationContainerSurface, outResult.mWidth, outResult.mHeight) + .setWindowCrop(mDecorationContainerSurface, + outResult.mWidth, outResult.mHeight) // TODO(b/244455401): Change the z-order when it's better organized .setLayer(mDecorationContainerSurface, mTaskInfo.numActivities + 1) .show(mDecorationContainerSurface); @@ -226,12 +225,13 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> .build(); } - float shadowRadius = outResult.mDensity * shadowRadiusDp; + float shadowRadius = loadResource(params.mShadowRadiusId); int backgroundColorInt = mTaskInfo.taskDescription.getBackgroundColor(); mTmpColor[0] = (float) Color.red(backgroundColorInt) / 255.f; mTmpColor[1] = (float) Color.green(backgroundColorInt) / 255.f; mTmpColor[2] = (float) Color.blue(backgroundColorInt) / 255.f; - startT.setWindowCrop(mTaskBackgroundSurface, taskBounds.width(), taskBounds.height()) + startT.setWindowCrop(mTaskBackgroundSurface, taskBounds.width(), + taskBounds.height()) .setShadowRadius(mTaskBackgroundSurface, shadowRadius) .setColor(mTaskBackgroundSurface, mTmpColor) // TODO(b/244455401): Change the z-order when it's better organized @@ -248,8 +248,8 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> .build(); } - final int captionHeight = (int) Math.ceil(captionHeightDp * outResult.mDensity); - final int captionWidth = (int) Math.ceil(captionWidthDp * outResult.mDensity); + final int captionHeight = loadResource(params.mCaptionHeightId); + final int captionWidth = loadResource(params.mCaptionWidthId); //Prevent caption from going offscreen if task is too high up final int captionYPos = taskBounds.top <= captionHeight / 2 ? 0 : captionHeight / 2; @@ -289,8 +289,10 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> // Caption insets mCaptionInsetsRect.set(taskBounds); - mCaptionInsetsRect.bottom = mCaptionInsetsRect.top + captionHeight - captionYPos; - wct.addRectInsetsProvider(mTaskInfo.token, mCaptionInsetsRect, CAPTION_INSETS_TYPES); + mCaptionInsetsRect.bottom = + mCaptionInsetsRect.top + captionHeight - captionYPos; + wct.addRectInsetsProvider(mTaskInfo.token, mCaptionInsetsRect, + CAPTION_INSETS_TYPES); } else { startT.hide(mCaptionContainerSurface); } @@ -307,6 +309,13 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> .setCrop(mTaskSurface, mTaskSurfaceCrop); } + private int loadResource(int resourceId) { + if (resourceId == Resources.ID_NULL) { + return 0; + } + return mDecorWindowContext.getResources().getDimensionPixelSize(resourceId); + } + /** * Obtains the {@link Display} instance for the display ID in {@link #mTaskInfo} if it exists or * registers {@link #mOnDisplaysChangedListener} if it doesn't. @@ -368,13 +377,11 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> static class RelayoutResult<T extends View & TaskFocusStateConsumer> { int mWidth; int mHeight; - float mDensity; T mRootView; void reset() { mWidth = 0; mHeight = 0; - mDensity = 0; mRootView = null; } } @@ -395,4 +402,37 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> return new SurfaceControlViewHost(c, d, wmm); } } + + static class RelayoutParams{ + RunningTaskInfo mRunningTaskInfo; + int mLayoutResId; + int mCaptionHeightId; + int mCaptionWidthId; + int mShadowRadiusId; + + int mOutsetTopId; + int mOutsetBottomId; + int mOutsetLeftId; + int mOutsetRightId; + + void setOutsets(int leftId, int topId, int rightId, int bottomId) { + mOutsetLeftId = leftId; + mOutsetTopId = topId; + mOutsetRightId = rightId; + mOutsetBottomId = bottomId; + } + + void reset() { + mLayoutResId = Resources.ID_NULL; + mCaptionHeightId = Resources.ID_NULL; + mCaptionWidthId = Resources.ID_NULL; + mShadowRadiusId = Resources.ID_NULL; + + mOutsetTopId = Resources.ID_NULL; + mOutsetBottomId = Resources.ID_NULL; + mOutsetLeftId = Resources.ID_NULL; + mOutsetRightId = Resources.ID_NULL; + } + + } }
\ No newline at end of file diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt index 1fc0375e9feb..f8025396ddc9 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt @@ -108,6 +108,14 @@ class AutoEnterPipOnGoToHomeTest(testSpec: FlickerTestParameter) : EnterPipTest( } } + @FlakyTest(bugId = 239807171) + @Test + override fun pipAppLayerAlwaysVisible() = super.pipAppLayerAlwaysVisible() + + @FlakyTest(bugId = 239807171) + @Test + override fun pipLayerRemainInsideVisibleBounds() = super.pipLayerRemainInsideVisibleBounds() + @Presubmit @Test override fun focusChanges() { diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt index 9b1247abfb71..9e765752ea9e 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt @@ -16,9 +16,9 @@ package com.android.wm.shell.flicker.splitscreen +import android.platform.test.annotations.FlakyTest import android.platform.test.annotations.IwTest import android.platform.test.annotations.Presubmit -import android.view.WindowManagerPolicyConstants import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter @@ -121,7 +121,7 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS override fun navBarLayerIsVisibleAtStartAndEnd() = super.navBarLayerIsVisibleAtStartAndEnd() /** {@inheritDoc} */ - @Presubmit + @FlakyTest(bugId = 206753786) @Test override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd() @@ -173,11 +173,7 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS @JvmStatic fun getParams(): List<FlickerTestParameter> { return FlickerTestParameterFactory.getInstance() - .getConfigNonRotationTests( - // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy. - supportedNavigationModes = - listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY) - ) + .getConfigNonRotationTests() } } } diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByDivider.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByDivider.kt index ec8bc457551e..45eae2e2fe40 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByDivider.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByDivider.kt @@ -20,14 +20,12 @@ import android.platform.test.annotations.FlakyTest import android.platform.test.annotations.IwTest import android.platform.test.annotations.Postsubmit import android.platform.test.annotations.Presubmit -import android.view.WindowManagerPolicyConstants import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter import com.android.server.wm.flicker.FlickerTestParameterFactory import com.android.server.wm.flicker.dsl.FlickerBuilder import com.android.server.wm.flicker.helpers.WindowUtils -import com.android.server.wm.flicker.helpers.isShellTransitionsEnabled import com.android.wm.shell.flicker.SPLIT_SCREEN_DIVIDER_COMPONENT import com.android.wm.shell.flicker.appWindowBecomesInvisible import com.android.wm.shell.flicker.appWindowIsVisibleAtEnd @@ -36,7 +34,6 @@ import com.android.wm.shell.flicker.layerIsVisibleAtEnd import com.android.wm.shell.flicker.splitAppLayerBoundsBecomesInvisible import com.android.wm.shell.flicker.splitScreenDismissed import com.android.wm.shell.flicker.splitScreenDividerBecomesInvisible -import org.junit.Assume import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith @@ -96,7 +93,9 @@ class DismissSplitScreenByDivider (testSpec: FlickerTestParameter) : SplitScreen fun primaryAppBoundsBecomesInvisible() = testSpec.splitAppLayerBoundsBecomesInvisible( primaryApp, landscapePosLeft = tapl.isTablet, portraitPosTop = false) - private fun secondaryAppBoundsIsFullscreenAtEnd_internal() { + @Presubmit + @Test + fun secondaryAppBoundsIsFullscreenAtEnd() { testSpec.assertLayers { this.isVisible(secondaryApp) .isVisible(SPLIT_SCREEN_DIVIDER_COMPONENT) @@ -118,20 +117,6 @@ class DismissSplitScreenByDivider (testSpec: FlickerTestParameter) : SplitScreen @Presubmit @Test - fun secondaryAppBoundsIsFullscreenAtEnd() { - Assume.assumeFalse(isShellTransitionsEnabled) - secondaryAppBoundsIsFullscreenAtEnd_internal() - } - - @FlakyTest(bugId = 250528485) - @Test - fun secondaryAppBoundsIsFullscreenAtEnd_shellTransit() { - Assume.assumeTrue(isShellTransitionsEnabled) - secondaryAppBoundsIsFullscreenAtEnd_internal() - } - - @Presubmit - @Test fun primaryAppWindowBecomesInvisible() = testSpec.appWindowBecomesInvisible(primaryApp) @Presubmit @@ -151,7 +136,7 @@ class DismissSplitScreenByDivider (testSpec: FlickerTestParameter) : SplitScreen super.navBarLayerIsVisibleAtStartAndEnd() /** {@inheritDoc} */ - @Postsubmit + @FlakyTest(bugId = 206753786) @Test override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd() @@ -208,10 +193,7 @@ class DismissSplitScreenByDivider (testSpec: FlickerTestParameter) : SplitScreen @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): List<FlickerTestParameter> { - return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( - // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy. - supportedNavigationModes = - listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)) + return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests() } } } diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByGoHome.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByGoHome.kt index a2eefece4995..6cfbb4789dc1 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByGoHome.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DismissSplitScreenByGoHome.kt @@ -19,7 +19,6 @@ package com.android.wm.shell.flicker.splitscreen import android.platform.test.annotations.FlakyTest import android.platform.test.annotations.IwTest import android.platform.test.annotations.Presubmit -import android.view.WindowManagerPolicyConstants import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter @@ -118,7 +117,7 @@ class DismissSplitScreenByGoHome( super.navBarLayerIsVisibleAtStartAndEnd() /** {@inheritDoc} */ - @Presubmit + @FlakyTest(bugId = 206753786) @Test override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd() @@ -160,7 +159,7 @@ class DismissSplitScreenByGoHome( super.taskBarWindowIsAlwaysVisible() /** {@inheritDoc} */ - @Presubmit + @FlakyTest @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() @@ -175,11 +174,7 @@ class DismissSplitScreenByGoHome( @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): List<FlickerTestParameter> { - return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( - // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy. - supportedNavigationModes = - listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY) - ) + return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests() } } } diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DragDividerToResize.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DragDividerToResize.kt index 1cf0a970c417..a80c88aad3d9 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DragDividerToResize.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/DragDividerToResize.kt @@ -20,8 +20,6 @@ import android.platform.test.annotations.FlakyTest import android.platform.test.annotations.IwTest import android.platform.test.annotations.Postsubmit import android.platform.test.annotations.Presubmit -import android.view.Surface -import android.view.WindowManagerPolicyConstants import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerParametersRunnerFactory import com.android.server.wm.flicker.FlickerTestParameter @@ -35,6 +33,8 @@ import com.android.wm.shell.flicker.layerKeepVisible import com.android.wm.shell.flicker.splitAppLayerBoundsChanges import com.android.wm.shell.flicker.splitScreenDividerIsVisibleAtEnd import com.android.wm.shell.flicker.splitScreenDividerIsVisibleAtStart +import org.junit.Assume +import org.junit.Before import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith @@ -50,7 +50,7 @@ import org.junit.runners.Parameterized @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) -class DragDividerToResize (testSpec: FlickerTestParameter) : SplitScreenBase(testSpec) { +class DragDividerToResize(testSpec: FlickerTestParameter) : SplitScreenBase(testSpec) { override val transition: FlickerBuilder.() -> Unit get() = { @@ -63,6 +63,11 @@ class DragDividerToResize (testSpec: FlickerTestParameter) : SplitScreenBase(tes } } + @Before + fun before() { + Assume.assumeTrue(tapl.isTablet || !testSpec.isLandscapeOrSeascapeAtStart) + } + @IwTest(focusArea = "sysui") @Presubmit @Test @@ -110,12 +115,18 @@ class DragDividerToResize (testSpec: FlickerTestParameter) : SplitScreenBase(tes @Presubmit @Test fun primaryAppBoundsChanges() = testSpec.splitAppLayerBoundsChanges( - primaryApp, landscapePosLeft = true, portraitPosTop = false) + primaryApp, + landscapePosLeft = true, + portraitPosTop = false + ) @FlakyTest(bugId = 250530664) @Test fun secondaryAppBoundsChanges() = testSpec.splitAppLayerBoundsChanges( - secondaryApp, landscapePosLeft = false, portraitPosTop = true) + secondaryApp, + landscapePosLeft = false, + portraitPosTop = true + ) /** {@inheritDoc} */ @Postsubmit @@ -187,11 +198,7 @@ class DragDividerToResize (testSpec: FlickerTestParameter) : SplitScreenBase(tes @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): List<FlickerTestParameter> { - return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests( - supportedRotations = listOf(Surface.ROTATION_0), - // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy. - supportedNavigationModes = - listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)) + return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests() } } } diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchAppByDoubleTapDivider.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchAppByDoubleTapDivider.kt index 84a8c0a59f32..73159c981b82 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchAppByDoubleTapDivider.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchAppByDoubleTapDivider.kt @@ -16,7 +16,6 @@ package com.android.wm.shell.flicker.splitscreen -import android.platform.test.annotations.FlakyTest import android.platform.test.annotations.IwTest import android.platform.test.annotations.Postsubmit import android.platform.test.annotations.Presubmit @@ -146,19 +145,15 @@ class SwitchAppByDoubleTapDivider(testSpec: FlickerTestParameter) : SplitScreenB // robust enough to get the correct end state. } - @FlakyTest(bugId = 241524174) @Test fun splitScreenDividerKeepVisible() = testSpec.layerKeepVisible(SPLIT_SCREEN_DIVIDER_COMPONENT) - @FlakyTest(bugId = 241524174) @Test fun primaryAppLayerIsVisibleAtEnd() = testSpec.layerIsVisibleAtEnd(primaryApp) - @FlakyTest(bugId = 241524174) @Test fun secondaryAppLayerIsVisibleAtEnd() = testSpec.layerIsVisibleAtEnd(secondaryApp) - @FlakyTest(bugId = 241524174) @Test fun primaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd( primaryApp, @@ -166,9 +161,6 @@ class SwitchAppByDoubleTapDivider(testSpec: FlickerTestParameter) : SplitScreenB portraitPosTop = true ) - // TODO(b/246490534): Move back to presubmit after withAppTransitionIdle is robust enough to - // get the correct end state. - @FlakyTest(bugId = 246490534) @Test fun secondaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd( secondaryApp, @@ -176,11 +168,9 @@ class SwitchAppByDoubleTapDivider(testSpec: FlickerTestParameter) : SplitScreenB portraitPosTop = false ) - @FlakyTest(bugId = 241524174) @Test fun primaryAppWindowIsVisibleAtEnd() = testSpec.appWindowIsVisibleAtEnd(primaryApp) - @FlakyTest(bugId = 241524174) @Test fun secondaryAppWindowIsVisibleAtEnd() = testSpec.appWindowIsVisibleAtEnd(secondaryApp) diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java index fa62b9c00fc7..103c8dab17d5 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java @@ -51,6 +51,7 @@ import android.window.WindowContainerTransaction; import androidx.test.filters.SmallTest; +import com.android.wm.shell.R; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.TestRunningTaskInfoBuilder; @@ -76,13 +77,9 @@ import java.util.function.Supplier; @SmallTest @RunWith(AndroidTestingRunner.class) public class WindowDecorationTests extends ShellTestCase { - private static final int CAPTION_HEIGHT_DP = 32; - private static final int CAPTION_WIDTH_DP = 216; - private static final int SHADOW_RADIUS_DP = 5; private static final Rect TASK_BOUNDS = new Rect(100, 300, 400, 400); private static final Point TASK_POSITION_IN_PARENT = new Point(40, 60); - private final Rect mOutsetsDp = new Rect(); private final WindowDecoration.RelayoutResult<TestView> mRelayoutResult = new WindowDecoration.RelayoutResult<>(); @@ -104,6 +101,7 @@ public class WindowDecorationTests extends ShellTestCase { private final List<SurfaceControl.Builder> mMockSurfaceControlBuilders = new ArrayList<>(); private SurfaceControl.Transaction mMockSurfaceControlStartT; private SurfaceControl.Transaction mMockSurfaceControlFinishT; + private WindowDecoration.RelayoutParams mRelayoutParams = new WindowDecoration.RelayoutParams(); @Before public void setUp() { @@ -147,7 +145,8 @@ public class WindowDecorationTests extends ShellTestCase { // Density is 2. Outsets are (20, 40, 60, 80) px. Shadow radius is 10px. Caption height is // 64px. taskInfo.configuration.densityDpi = DisplayMetrics.DENSITY_DEFAULT * 2; - mOutsetsDp.set(10, 20, 30, 40); + mRelayoutParams.setOutsets(R.dimen.freeform_resize_handle, R.dimen.freeform_resize_handle, + R.dimen.freeform_resize_handle, R.dimen.freeform_resize_handle); final SurfaceControl taskSurface = mock(SurfaceControl.class); final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo, taskSurface); @@ -197,8 +196,13 @@ public class WindowDecorationTests extends ShellTestCase { // Density is 2. Outsets are (20, 40, 60, 80) px. Shadow radius is 10px. Caption height is // 64px. taskInfo.configuration.densityDpi = DisplayMetrics.DENSITY_DEFAULT * 2; - mOutsetsDp.set(10, 20, 30, 40); - +// int outsetLeftId = R.dimen.split_divider_bar_width; +// int outsetTopId = R.dimen.gestures_onehanded_drag_threshold; +// int outsetRightId = R.dimen.freeform_resize_handle; +// int outsetBottomId = R.dimen.bubble_dismiss_target_padding_x; +// mRelayoutParams.setOutsets(outsetLeftId, outsetTopId, outsetRightId, outsetBottomId); + mRelayoutParams.setOutsets(R.dimen.freeform_resize_handle, R.dimen.freeform_resize_handle, + R.dimen.freeform_resize_handle, R.dimen.freeform_resize_handle); final SurfaceControl taskSurface = mock(SurfaceControl.class); final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo, taskSurface); @@ -207,8 +211,8 @@ public class WindowDecorationTests extends ShellTestCase { verify(decorContainerSurfaceBuilder).setParent(taskSurface); verify(decorContainerSurfaceBuilder).setContainerLayer(); verify(mMockSurfaceControlStartT).setTrustedOverlay(decorContainerSurface, true); - verify(mMockSurfaceControlStartT).setPosition(decorContainerSurface, -20, -40); - verify(mMockSurfaceControlStartT).setWindowCrop(decorContainerSurface, 380, 220); + verify(mMockSurfaceControlStartT).setPosition(decorContainerSurface, -60, -60); + verify(mMockSurfaceControlStartT).setWindowCrop(decorContainerSurface, 420, 220); verify(taskBackgroundSurfaceBuilder).setParent(taskSurface); verify(taskBackgroundSurfaceBuilder).setEffectLayer(); @@ -221,34 +225,36 @@ public class WindowDecorationTests extends ShellTestCase { verify(captionContainerSurfaceBuilder).setParent(decorContainerSurface); verify(captionContainerSurfaceBuilder).setContainerLayer(); - verify(mMockSurfaceControlStartT).setPosition(captionContainerSurface, -46, 8); - verify(mMockSurfaceControlStartT).setWindowCrop(captionContainerSurface, 300, 64); + verify(mMockSurfaceControlStartT).setPosition(captionContainerSurface, -6, -156); + verify(mMockSurfaceControlStartT).setWindowCrop(captionContainerSurface, 300, 432); verify(mMockSurfaceControlStartT).show(captionContainerSurface); verify(mMockSurfaceControlViewHostFactory).create(any(), eq(defaultDisplay), any()); + verify(mMockSurfaceControlViewHost) .setView(same(mMockView), - argThat(lp -> lp.height == 64 - && lp.width == 300 + argThat(lp -> lp.height == 432 + && lp.width == 432 && (lp.flags & LayoutParams.FLAG_NOT_FOCUSABLE) != 0)); if (ViewRootImpl.CAPTION_ON_SHELL) { verify(mMockView).setTaskFocusState(true); verify(mMockWindowContainerTransaction) .addRectInsetsProvider(taskInfo.token, - new Rect(100, 300, 400, 364), + new Rect(100, 300, 400, 516), new int[] { InsetsState.ITYPE_CAPTION_BAR }); } verify(mMockSurfaceControlFinishT) .setPosition(taskSurface, TASK_POSITION_IN_PARENT.x, TASK_POSITION_IN_PARENT.y); verify(mMockSurfaceControlFinishT) - .setCrop(taskSurface, new Rect(-20, -40, 360, 180)); + .setCrop(taskSurface, new Rect(-60, -60, 360, 160)); verify(mMockSurfaceControlStartT) .show(taskSurface); - assertEquals(380, mRelayoutResult.mWidth); + assertEquals(420, mRelayoutResult.mWidth); assertEquals(220, mRelayoutResult.mHeight); - assertEquals(2, mRelayoutResult.mDensity, 0.f); + + } @Test @@ -287,7 +293,8 @@ public class WindowDecorationTests extends ShellTestCase { // Density is 2. Outsets are (20, 40, 60, 80) px. Shadow radius is 10px. Caption height is // 64px. taskInfo.configuration.densityDpi = DisplayMetrics.DENSITY_DEFAULT * 2; - mOutsetsDp.set(10, 20, 30, 40); + mRelayoutParams.setOutsets(R.dimen.freeform_resize_handle, R.dimen.freeform_resize_handle, + R.dimen.freeform_resize_handle, R.dimen.freeform_resize_handle); final SurfaceControl taskSurface = mock(SurfaceControl.class); final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo, taskSurface); @@ -410,9 +417,15 @@ public class WindowDecorationTests extends ShellTestCase { @Override void relayout(ActivityManager.RunningTaskInfo taskInfo) { - relayout(null /* taskInfo */, 0 /* layoutResId */, mMockView, CAPTION_HEIGHT_DP, - CAPTION_WIDTH_DP, mOutsetsDp, SHADOW_RADIUS_DP, mMockSurfaceControlStartT, - mMockSurfaceControlFinishT, mMockWindowContainerTransaction, mRelayoutResult); + + mRelayoutParams.mLayoutResId = 0; + mRelayoutParams.mCaptionHeightId = R.dimen.freeform_decor_caption_width; + mRelayoutParams.mCaptionWidthId = R.dimen.freeform_decor_caption_width; + mRelayoutParams.mShadowRadiusId = + R.dimen.freeform_decor_shadow_unfocused_thickness; + + relayout(mRelayoutParams, mMockSurfaceControlStartT, mMockSurfaceControlFinishT, + mMockWindowContainerTransaction, mMockView, mRelayoutResult); } } } diff --git a/media/java/android/media/ImageReader.java b/media/java/android/media/ImageReader.java index ca906d2cd6d1..f223bfd357d6 100644 --- a/media/java/android/media/ImageReader.java +++ b/media/java/android/media/ImageReader.java @@ -314,7 +314,7 @@ public class ImageReader implements AutoCloseable { } private void initializeImageReader(int width, int height, int imageFormat, int maxImages, - long usage, int hardwareBufferFormat, int dataSpace, boolean useLegacyImageFormat) { + long usage, int hardwareBufferFormat, int dataSpace) { if (width < 1 || height < 1) { throw new IllegalArgumentException( "The image dimensions must be positive"); @@ -342,14 +342,8 @@ public class ImageReader implements AutoCloseable { // Only include memory for 1 buffer, since actually accounting for the memory used is // complex, and 1 buffer is enough for the VM to treat the ImageReader as being of some // size. - if (hardwareBufferFormat == HardwareBuffer.BLOB) { - mEstimatedNativeAllocBytes = ImageUtils.getEstimatedNativeAllocBytes( + mEstimatedNativeAllocBytes = ImageUtils.getEstimatedNativeAllocBytes( width, height, imageFormat, /*buffer count*/ 1); - } else { - mEstimatedNativeAllocBytes = ImageUtils.getEstimatedNativeAllocBytes( - width, height, useLegacyImageFormat ? imageFormat : hardwareBufferFormat, - /*buffer count*/ 1); - } VMRuntime.getRuntime().registerNativeAllocation(mEstimatedNativeAllocBytes); } @@ -364,11 +358,10 @@ public class ImageReader implements AutoCloseable { // retrieve hal Format and hal dataspace from imageFormat mHardwareBufferFormat = PublicFormatUtils.getHalFormat(mFormat); mDataSpace = PublicFormatUtils.getHalDataspace(mFormat); - mUseLegacyImageFormat = true; mNumPlanes = ImageUtils.getNumPlanesForFormat(mFormat); initializeImageReader(width, height, imageFormat, maxImages, usage, mHardwareBufferFormat, - mDataSpace, mUseLegacyImageFormat); + mDataSpace); } private ImageReader(int width, int height, int maxImages, long usage, @@ -380,12 +373,11 @@ public class ImageReader implements AutoCloseable { mParent = parent; mHardwareBufferFormat = hardwareBufferFormat; mDataSpace = dataSpace; - mUseLegacyImageFormat = false; mNumPlanes = ImageUtils.getNumPlanesForHardwareBufferFormat(mHardwareBufferFormat); mFormat = PublicFormatUtils.getPublicFormat(hardwareBufferFormat, dataSpace); initializeImageReader(width, height, mFormat, maxImages, usage, hardwareBufferFormat, - dataSpace, mUseLegacyImageFormat); + dataSpace); } /** @@ -579,12 +571,7 @@ public class ImageReader implements AutoCloseable { * @hide */ public Image acquireNextImageNoThrowISE() { - SurfaceImage si; - if (mUseLegacyImageFormat) { - si = new SurfaceImage(mFormat); - } else { - si = new SurfaceImage(mHardwareBufferFormat, mDataSpace); - } + SurfaceImage si = new SurfaceImage(mFormat); return acquireNextSurfaceImage(si) == ACQUIRE_SUCCESS ? si : null; } @@ -607,7 +594,7 @@ public class ImageReader implements AutoCloseable { // A null image will eventually be returned if ImageReader is already closed. int status = ACQUIRE_NO_BUFS; if (mIsReaderValid) { - status = nativeImageSetup(si, mUseLegacyImageFormat); + status = nativeImageSetup(si); } switch (status) { @@ -661,11 +648,7 @@ public class ImageReader implements AutoCloseable { // Initialize with reader format, but can be overwritten by native if the image // format is different from the reader format. SurfaceImage si; - if (mUseLegacyImageFormat) { - si = new SurfaceImage(mFormat); - } else { - si = new SurfaceImage(mHardwareBufferFormat, mDataSpace); - } + si = new SurfaceImage(mFormat); int status = acquireNextSurfaceImage(si); switch (status) { @@ -1142,8 +1125,6 @@ public class ImageReader implements AutoCloseable { private final @NamedDataSpace int mDataSpace; - private final boolean mUseLegacyImageFormat; - /** * This field is used by native code, do not access or modify. */ @@ -1184,12 +1165,6 @@ public class ImageReader implements AutoCloseable { mDataSpace = ImageReader.this.mDataSpace; } - SurfaceImage(int hardwareBufferFormat, int dataSpace) { - mHardwareBufferFormat = hardwareBufferFormat; - mDataSpace = dataSpace; - mFormat = PublicFormatUtils.getPublicFormat(mHardwareBufferFormat, mDataSpace); - } - @Override public void close() { synchronized (this.mCloseLock) { @@ -1207,12 +1182,10 @@ public class ImageReader implements AutoCloseable { // update mFormat only if ImageReader is initialized by factory pattern. // if using builder pattern, mFormat has been updated upon initialization. // no need update here. - if (ImageReader.this.mUseLegacyImageFormat) { - int readerFormat = ImageReader.this.getImageFormat(); - // Assume opaque reader always produce opaque images. - mFormat = (readerFormat == ImageFormat.PRIVATE) ? readerFormat : - nativeGetFormat(readerFormat); - } + int readerFormat = ImageReader.this.getImageFormat(); + // Assume opaque reader always produce opaque images. + mFormat = (readerFormat == ImageFormat.PRIVATE) ? readerFormat : + nativeGetFormat(readerFormat); return mFormat; } @@ -1311,8 +1284,8 @@ public class ImageReader implements AutoCloseable { throwISEIfImageIsInvalid(); if (mPlanes == null) { - mPlanes = nativeCreatePlanes(ImageReader.this.mNumPlanes, ImageReader.this.mFormat, - ImageReader.this.mUsage); + mPlanes = nativeCreatePlanes(ImageReader.this.mNumPlanes, + ImageReader.this.mHardwareBufferFormat, ImageReader.this.mUsage); } // Shallow copy is fine. return mPlanes.clone(); @@ -1443,7 +1416,7 @@ public class ImageReader implements AutoCloseable { private AtomicBoolean mIsDetached = new AtomicBoolean(false); private synchronized native SurfacePlane[] nativeCreatePlanes(int numPlanes, - int readerFormat, long readerUsage); + int hardwareBufferFormat, long readerUsage); private synchronized native int nativeGetWidth(); private synchronized native int nativeGetHeight(); private synchronized native int nativeGetFormat(int readerFormat); @@ -1466,7 +1439,7 @@ public class ImageReader implements AutoCloseable { * @see #ACQUIRE_NO_BUFS * @see #ACQUIRE_MAX_IMAGES */ - private synchronized native int nativeImageSetup(Image i, boolean legacyValidateImageFormat); + private synchronized native int nativeImageSetup(Image i); /** * @hide diff --git a/media/java/android/media/ImageWriter.java b/media/java/android/media/ImageWriter.java index 259c1386aff4..0291f64c0640 100644 --- a/media/java/android/media/ImageWriter.java +++ b/media/java/android/media/ImageWriter.java @@ -248,7 +248,7 @@ public class ImageWriter implements AutoCloseable { } private void initializeImageWriter(Surface surface, int maxImages, - boolean useSurfaceImageFormatInfo, boolean useLegacyImageFormat, int imageFormat, + boolean useSurfaceImageFormatInfo, int imageFormat, int hardwareBufferFormat, int dataSpace, int width, int height, long usage) { if (surface == null || maxImages < 1) { throw new IllegalArgumentException("Illegal input argument: surface " + surface @@ -264,10 +264,9 @@ public class ImageWriter implements AutoCloseable { if (useSurfaceImageFormatInfo) { // nativeInit internally overrides UNKNOWN format. So does surface format query after // nativeInit and before getEstimatedNativeAllocBytes(). - imageFormat = SurfaceUtils.getSurfaceFormat(surface); - mDataSpace = dataSpace = PublicFormatUtils.getHalDataspace(dataSpace); - mHardwareBufferFormat = - hardwareBufferFormat = PublicFormatUtils.getHalFormat(imageFormat); + mHardwareBufferFormat = hardwareBufferFormat = SurfaceUtils.getSurfaceFormat(surface); + mDataSpace = dataSpace = SurfaceUtils.getSurfaceDataspace(surface); + imageFormat = PublicFormatUtils.getPublicFormat(hardwareBufferFormat, dataSpace); } // Estimate the native buffer allocation size and register it so it gets accounted for @@ -280,37 +279,11 @@ public class ImageWriter implements AutoCloseable { mWidth = width == -1 ? surfSize.getWidth() : width; mHeight = height == -1 ? surfSize.getHeight() : height; - if (hardwareBufferFormat == HardwareBuffer.BLOB) { - // TODO(b/246344817): remove mWriterFormat and mDataSpace re-set here after fixing. - mWriterFormat = imageFormat = getImageFormatByBLOB(dataSpace); - mDataSpace = PublicFormatUtils.getHalDataspace(imageFormat); - - mEstimatedNativeAllocBytes = ImageUtils.getEstimatedNativeAllocBytes(mWidth, mHeight, + mEstimatedNativeAllocBytes = ImageUtils.getEstimatedNativeAllocBytes(mWidth, mHeight, imageFormat, /*buffer count*/ 1); - } else { - mEstimatedNativeAllocBytes = - ImageUtils.getEstimatedNativeAllocBytes(mWidth, mHeight, - useLegacyImageFormat ? imageFormat : hardwareBufferFormat, /*buffer count*/ 1); - } VMRuntime.getRuntime().registerNativeAllocation(mEstimatedNativeAllocBytes); } - // Several public formats use the same native HAL_PIXEL_FORMAT_BLOB. The native - // allocation estimation sequence depends on the public formats values. To avoid - // possible errors, convert where necessary. - private int getImageFormatByBLOB(int dataspace) { - switch (dataspace) { - case DataSpace.DATASPACE_DEPTH: - return ImageFormat.DEPTH_POINT_CLOUD; - case DataSpace.DATASPACE_DYNAMIC_DEPTH: - return ImageFormat.DEPTH_JPEG; - case DataSpace.DATASPACE_HEIF: - return ImageFormat.HEIC; - default: - return ImageFormat.JPEG; - } - } - private ImageWriter(Surface surface, int maxImages, boolean useSurfaceImageFormatInfo, int imageFormat, int width, int height) { mMaxImages = maxImages; @@ -319,7 +292,7 @@ public class ImageWriter implements AutoCloseable { mDataSpace = PublicFormatUtils.getHalDataspace(imageFormat); } - initializeImageWriter(surface, maxImages, useSurfaceImageFormatInfo, true, + initializeImageWriter(surface, maxImages, useSurfaceImageFormatInfo, imageFormat, mHardwareBufferFormat, mDataSpace, width, height, mUsage); } @@ -332,7 +305,7 @@ public class ImageWriter implements AutoCloseable { mDataSpace = PublicFormatUtils.getHalDataspace(imageFormat); } - initializeImageWriter(surface, maxImages, useSurfaceImageFormatInfo, true, + initializeImageWriter(surface, maxImages, useSurfaceImageFormatInfo, imageFormat, mHardwareBufferFormat, mDataSpace, width, height, usage); } @@ -351,7 +324,7 @@ public class ImageWriter implements AutoCloseable { mDataSpace = dataSpace; } - initializeImageWriter(surface, maxImages, useSurfaceImageFormatInfo, false, + initializeImageWriter(surface, maxImages, useSurfaceImageFormatInfo, imageFormat, hardwareBufferFormat, dataSpace, width, height, usage); } @@ -770,13 +743,15 @@ public class ImageWriter implements AutoCloseable { // need do some cleanup to make sure no orphaned // buffer caused leak. Rect crop = image.getCropRect(); + int hardwareBufferFormat = PublicFormatUtils.getHalFormat(image.getFormat()); if (image.getNativeContext() != 0) { - nativeAttachAndQueueImage(mNativeContext, image.getNativeContext(), image.getFormat(), - image.getTimestamp(), image.getDataSpace(), crop.left, crop.top, crop.right, - crop.bottom, image.getTransform(), image.getScalingMode()); + nativeAttachAndQueueImage(mNativeContext, image.getNativeContext(), + hardwareBufferFormat, image.getTimestamp(), image.getDataSpace(), + crop.left, crop.top, crop.right, crop.bottom, image.getTransform(), + image.getScalingMode()); } else { GraphicBuffer gb = GraphicBuffer.createFromHardwareBuffer(image.getHardwareBuffer()); - nativeAttachAndQueueGraphicBuffer(mNativeContext, gb, image.getFormat(), + nativeAttachAndQueueGraphicBuffer(mNativeContext, gb, hardwareBufferFormat, image.getTimestamp(), image.getDataSpace(), crop.left, crop.top, crop.right, crop.bottom, image.getTransform(), image.getScalingMode()); gb.destroy(); @@ -1167,8 +1142,7 @@ public class ImageWriter implements AutoCloseable { if (mPlanes == null) { int numPlanes = ImageUtils.getNumPlanesForFormat(getFormat()); - mPlanes = nativeCreatePlanes(numPlanes, getOwner().getFormat(), - getOwner().getDataSpace()); + mPlanes = nativeCreatePlanes(numPlanes, getOwner().getFormat()); } return mPlanes.clone(); @@ -1276,8 +1250,7 @@ public class ImageWriter implements AutoCloseable { } // Create the SurfacePlane object and fill the information - private synchronized native SurfacePlane[] nativeCreatePlanes(int numPlanes, int writerFmt, - int dataSpace); + private synchronized native SurfacePlane[] nativeCreatePlanes(int numPlanes, int writerFmt); private synchronized native int nativeGetWidth(); @@ -1304,10 +1277,10 @@ public class ImageWriter implements AutoCloseable { int transform, int scalingMode); private synchronized native int nativeAttachAndQueueImage(long nativeCtx, - long imageNativeBuffer, int imageFormat, long timestampNs, int dataSpace, + long imageNativeBuffer, int hardwareBufferFormat, long timestampNs, int dataSpace, int left, int top, int right, int bottom, int transform, int scalingMode); private synchronized native int nativeAttachAndQueueGraphicBuffer(long nativeCtx, - GraphicBuffer graphicBuffer, int imageFormat, long timestampNs, int dataSpace, + GraphicBuffer graphicBuffer, int hardwareBufferFormat, long timestampNs, int dataSpace, int left, int top, int right, int bottom, int transform, int scalingMode); private synchronized native void cancelImage(long nativeCtx, Image image); diff --git a/media/java/android/media/MediaCrypto.java b/media/java/android/media/MediaCrypto.java index 889a5f7efbb2..1930262ea253 100644 --- a/media/java/android/media/MediaCrypto.java +++ b/media/java/android/media/MediaCrypto.java @@ -75,14 +75,17 @@ public final class MediaCrypto { public final native boolean requiresSecureDecoderComponent(@NonNull String mime); /** - * Associate a MediaDrm session with this MediaCrypto instance. The - * MediaDrm session is used to securely load decryption keys for a - * crypto scheme. The crypto keys loaded through the MediaDrm session + * Associate a new MediaDrm session with this MediaCrypto instance. + * + * <p>The MediaDrm session is used to securely load decryption keys for a + * crypto scheme. The crypto keys loaded through the MediaDrm session * may be selected for use during the decryption operation performed * by {@link android.media.MediaCodec#queueSecureInputBuffer} by specifying - * their key ids in the {@link android.media.MediaCodec.CryptoInfo#key} field. - * @param sessionId the MediaDrm sessionId to associate with this - * MediaCrypto instance + * their key IDs in the {@link android.media.MediaCodec.CryptoInfo#key} field. + * + * @param sessionId The MediaDrm sessionId to associate with this MediaCrypto + * instance. The session's scheme must match the scheme UUID used when + * constructing this MediaCrypto instance. * @throws MediaCryptoException on failure to set the sessionId */ public final native void setMediaDrmSession(@NonNull byte[] sessionId) diff --git a/media/java/android/media/MediaRoute2Info.java b/media/java/android/media/MediaRoute2Info.java index 57815370e2ba..681e1124d0ab 100644 --- a/media/java/android/media/MediaRoute2Info.java +++ b/media/java/android/media/MediaRoute2Info.java @@ -539,9 +539,9 @@ public final class MediaRoute2Info implements Parcelable { } /** - * Gets the Deduplication ID of the route if available. - * @see RouteDiscoveryPreference#shouldRemoveDuplicates() - * @hide + * Gets the deduplication IDs associated to the route. + * + * <p>Two routes with a matching deduplication ID originate from the same receiver device. */ @NonNull public Set<String> getDeduplicationIds() { @@ -1017,13 +1017,7 @@ public final class MediaRoute2Info implements Parcelable { } /** - * Sets the deduplication ID of the route. - * Routes have the same ID could be removed even when - * they are from different providers. - * <p> - * If it's {@code null}, the route will not be removed. - * @see RouteDiscoveryPreference#shouldRemoveDuplicates() - * @hide + * Sets the {@link MediaRoute2Info#getDeduplicationIds() deduplication IDs} of the route. */ @NonNull public Builder setDeduplicationIds(@NonNull Set<String> id) { diff --git a/media/java/android/media/audiopolicy/AudioMixingRule.java b/media/java/android/media/audiopolicy/AudioMixingRule.java index 08655ca6ad6b..9c0b825fbfa3 100644 --- a/media/java/android/media/audiopolicy/AudioMixingRule.java +++ b/media/java/android/media/audiopolicy/AudioMixingRule.java @@ -704,8 +704,12 @@ public class AudioMixingRule { * Combines all of the matching and exclusion rules that have been set and return a new * {@link AudioMixingRule} object. * @return a new {@link AudioMixingRule} object + * @throws IllegalArgumentException if the rule is empty. */ public AudioMixingRule build() { + if (mCriteria.isEmpty()) { + throw new IllegalArgumentException("Cannot build AudioMixingRule with no rules."); + } return new AudioMixingRule( mTargetMixType == AudioMix.MIX_TYPE_INVALID ? AudioMix.MIX_TYPE_PLAYERS : mTargetMixType, diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java index b1c97300d08a..51b976bf9f69 100644 --- a/media/java/android/media/tv/tuner/Tuner.java +++ b/media/java/android/media/tv/tuner/Tuner.java @@ -289,6 +289,7 @@ public class Tuner implements AutoCloseable { private Integer mFrontendHandle; private Tuner mFeOwnerTuner = null; private int mFrontendType = FrontendSettings.TYPE_UNDEFINED; + private Integer mDesiredFrontendId = null; private int mUserId; private Lnb mLnb; private Integer mLnbHandle; @@ -1326,10 +1327,18 @@ public class Tuner implements AutoCloseable { private boolean requestFrontend() { int[] feHandle = new int[1]; - TunerFrontendRequest request = new TunerFrontendRequest(); - request.clientId = mClientId; - request.frontendType = mFrontendType; - boolean granted = mTunerResourceManager.requestFrontend(request, feHandle); + boolean granted = false; + try { + TunerFrontendRequest request = new TunerFrontendRequest(); + request.clientId = mClientId; + request.frontendType = mFrontendType; + request.desiredId = mDesiredFrontendId == null + ? TunerFrontendRequest.DEFAULT_DESIRED_ID + : mDesiredFrontendId; + granted = mTunerResourceManager.requestFrontend(request, feHandle); + } finally { + mDesiredFrontendId = null; + } if (granted) { mFrontendHandle = feHandle[0]; mFrontend = nativeOpenFrontendByHandle(mFrontendHandle); @@ -2367,6 +2376,50 @@ public class Tuner implements AutoCloseable { } /** + * Request a frontend by frontend id. + * + * <p> This API is used if the applications want to select a desired frontend before + * {@link tune} to use a specific satellite or sending SatCR DiSEqC command for {@link tune}. + * + * @param desiredId the desired fronted Id. It can be retrieved by + * {@link getAvailableFrontendInfos} + * + * @return result status of open operation. + * @throws SecurityException if the caller does not have appropriate permissions. + */ + @Result + public int requestFrontendById(int desiredId) { + mFrontendLock.lock(); + try { + if (mFeOwnerTuner != null) { + Log.e(TAG, "Operation connot be done by sharee of tuner"); + return RESULT_INVALID_STATE; + } + if (mFrontendHandle != null) { + Log.e(TAG, "A frontend has been opened before"); + return RESULT_INVALID_STATE; + } + FrontendInfo frontendInfo = getFrontendInfoById(desiredId); + if (frontendInfo == null) { + Log.e(TAG, "Failed to get a FrontendInfo by frontend id: " + desiredId); + return RESULT_UNAVAILABLE; + } + int frontendType = frontendInfo.getType(); + if (DEBUG) { + Log.d(TAG, "Opening frontend with type " + frontendType + ", id " + desiredId); + } + mFrontendType = frontendType; + mDesiredFrontendId = desiredId; + if (!checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND, mFrontendLock)) { + return RESULT_UNAVAILABLE; + } + return RESULT_SUCCESS; + } finally { + mFrontendLock.unlock(); + } + } + + /** * Open a shared filter instance. * * @param context the context of the caller. @@ -2445,7 +2498,7 @@ public class Tuner implements AutoCloseable { return granted; } - private boolean checkResource(int resourceType, ReentrantLock localLock) { + private boolean checkResource(int resourceType, ReentrantLock localLock) { switch (resourceType) { case TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND: { if (mFrontendHandle == null && !requestResource(resourceType, localLock)) { @@ -2483,7 +2536,7 @@ public class Tuner implements AutoCloseable { // 3) if no, then first release the held lock and grab the TRMS lock to avoid deadlock // 4) grab the local lock again and release the TRMS lock // If localLock is null, we'll assume the caller does not want the lock related operations - private boolean requestResource(int resourceType, ReentrantLock localLock) { + private boolean requestResource(int resourceType, ReentrantLock localLock) { boolean enableLockOperations = localLock != null; // release the local lock first to avoid deadlock diff --git a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl index 144b98c36655..e0af76d27a95 100644 --- a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl +++ b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl @@ -140,19 +140,29 @@ interface ITunerResourceManager { void setLnbInfoList(in int[] lnbIds); /* - * This API is used by the Tuner framework to request an available frontend from the TunerHAL. + * This API is used by the Tuner framework to request a frontend from the TunerHAL. * - * <p>There are three possible scenarios: + * <p>There are two cases: * <ul> - * <li>If there is frontend available, the API would send the id back. - * - * <li>If no Frontend is available but the current request info can show higher priority than - * other uses of Frontend, the API will send + * <li>If the desiredId is not {@link TunerFrontendRequest#DEFAULT_DESIRED_ID} + * <li><li>If the desired frontend with the given frontendType is available, the API would send + * the id back. + * <li><li>If the desired frontend with the given frontendType is in use but the current request + * info can show higher priority than other uses of Frontend, the API will send * {@link IResourcesReclaimListener#onReclaimResources()} to the {@link Tuner}. Tuner would * handle the resource reclaim on the holder of lower priority and notify the holder of its * resource loss. + * <li><li>If no frontend can be granted, the API would return false. + * <ul> * - * <li>If no frontend can be granted, the API would return false. + * <li>If the desiredId is {@link TunerFrontendRequest#DEFAULT_DESIRED_ID} + * <li><li>If there is frontend available, the API would send the id back. + * <li><li>If no Frontend is available but the current request info can show higher priority + * than other uses of Frontend, the API will send + * {@link IResourcesReclaimListener#onReclaimResources()} to the {@link Tuner}. Tuner would + * handle the resource reclaim on the holder of lower priority and notify the holder of its + * resource loss. + * <li><li>If no frontend can be granted, the API would return false. * <ul> * * <p><strong>Note:</strong> {@link #setFrontendInfoList(TunerFrontendInfo[])} must be called diff --git a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendRequest.aidl b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendRequest.aidl index 4d9822215842..c4598a49d5dd 100644 --- a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendRequest.aidl +++ b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendRequest.aidl @@ -22,7 +22,11 @@ package android.media.tv.tunerresourcemanager; * @hide */ parcelable TunerFrontendRequest { + const int DEFAULT_DESIRED_ID = 0xFFFFFFFF; + int clientId; int frontendType; -}
\ No newline at end of file + + int desiredId = DEFAULT_DESIRED_ID; +} diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp index 556f98cefca1..ca1bb3e97815 100644 --- a/media/jni/android_media_ImageReader.cpp +++ b/media/jni/android_media_ImageReader.cpp @@ -375,11 +375,11 @@ static void ImageReader_classInit(JNIEnv* env, jclass clazz) } static void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz, jint width, jint height, - jint maxImages, jlong ndkUsage, jint nativeFormat, jint dataSpace) { + jint maxImages, jlong ndkUsage, jint nativeHalFormat, jint dataSpace) { status_t res; - ALOGV("%s: width:%d, height: %d, nativeFormat: %d, maxImages:%d", - __FUNCTION__, width, height, nativeFormat, maxImages); + ALOGV("%s: width:%d, height: %d, nativeHalFormat: %d, maxImages:%d", + __FUNCTION__, width, height, nativeHalFormat, maxImages); android_dataspace nativeDataspace = static_cast<android_dataspace>(dataSpace); @@ -395,7 +395,7 @@ static void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz, jint w BufferQueue::createBufferQueue(&gbProducer, &gbConsumer); sp<BufferItemConsumer> bufferConsumer; String8 consumerName = String8::format("ImageReader-%dx%df%xm%d-%d-%d", - width, height, nativeFormat, maxImages, getpid(), + width, height, nativeHalFormat, maxImages, getpid(), createProcessUniqueId()); uint64_t consumerUsage = android_hardware_HardwareBuffer_convertToGrallocUsageBits(ndkUsage); @@ -404,8 +404,8 @@ static void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz, jint w /*controlledByApp*/true); if (bufferConsumer == nullptr) { jniThrowExceptionFmt(env, "java/lang/RuntimeException", - "Failed to allocate native buffer consumer for format 0x%x and usage 0x%x", - nativeFormat, consumerUsage); + "Failed to allocate native buffer consumer for hal format 0x%x and usage 0x%x", + nativeHalFormat, consumerUsage); return; } @@ -419,7 +419,7 @@ static void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz, jint w ctx->setProducer(gbProducer); bufferConsumer->setFrameAvailableListener(ctx); ImageReader_setNativeContext(env, thiz, ctx); - ctx->setBufferFormat(nativeFormat); + ctx->setBufferFormat(nativeHalFormat); ctx->setBufferDataspace(nativeDataspace); ctx->setBufferWidth(width); ctx->setBufferHeight(height); @@ -428,14 +428,14 @@ static void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz, jint w res = bufferConsumer->setDefaultBufferSize(width, height); if (res != OK) { jniThrowExceptionFmt(env, "java/lang/IllegalStateException", - "Failed to set buffer consumer default size (%dx%d) for format 0x%x", - width, height, nativeFormat); + "Failed to set buffer consumer default size (%dx%d) for Hal format 0x%x", + width, height, nativeHalFormat); return; } - res = bufferConsumer->setDefaultBufferFormat(nativeFormat); + res = bufferConsumer->setDefaultBufferFormat(nativeHalFormat); if (res != OK) { jniThrowExceptionFmt(env, "java/lang/IllegalStateException", - "Failed to set buffer consumer default format 0x%x", nativeFormat); + "Failed to set buffer consumer default Halformat 0x%x", nativeHalFormat); return; } res = bufferConsumer->setDefaultBufferDataSpace(nativeDataspace); @@ -522,8 +522,7 @@ static void ImageReader_imageRelease(JNIEnv* env, jobject thiz, jobject image) ALOGV("%s: Image (format: 0x%x) has been released", __FUNCTION__, ctx->getBufferFormat()); } -static jint ImageReader_imageSetup(JNIEnv* env, jobject thiz, jobject image, - jboolean legacyValidateImageFormat) { +static jint ImageReader_imageSetup(JNIEnv* env, jobject thiz, jobject image) { ALOGV("%s:", __FUNCTION__); JNIImageReaderContext* ctx = ImageReader_getContext(env, thiz); if (ctx == NULL) { @@ -577,29 +576,29 @@ static jint ImageReader_imageSetup(JNIEnv* env, jobject thiz, jobject image, int outputWidth = getBufferWidth(buffer); int outputHeight = getBufferHeight(buffer); - int imgReaderFmt = ctx->getBufferFormat(); + int imgReaderHalFmt = ctx->getBufferFormat(); int imageReaderWidth = ctx->getBufferWidth(); int imageReaderHeight = ctx->getBufferHeight(); int bufferFormat = buffer->mGraphicBuffer->getPixelFormat(); - if ((bufferFormat != HAL_PIXEL_FORMAT_BLOB) && (imgReaderFmt != HAL_PIXEL_FORMAT_BLOB) && + if ((bufferFormat != HAL_PIXEL_FORMAT_BLOB) && (imgReaderHalFmt != HAL_PIXEL_FORMAT_BLOB) && (imageReaderWidth != outputWidth || imageReaderHeight != outputHeight)) { ALOGV("%s: Producer buffer size: %dx%d, doesn't match ImageReader configured size: %dx%d", __FUNCTION__, outputWidth, outputHeight, imageReaderWidth, imageReaderHeight); } - if (legacyValidateImageFormat && imgReaderFmt != bufferFormat) { - if (imgReaderFmt == HAL_PIXEL_FORMAT_YCbCr_420_888 && + if (imgReaderHalFmt != bufferFormat) { + if (imgReaderHalFmt == HAL_PIXEL_FORMAT_YCbCr_420_888 && isPossiblyYUV(bufferFormat)) { // Treat formats that are compatible with flexible YUV // (HAL_PIXEL_FORMAT_YCbCr_420_888) as HAL_PIXEL_FORMAT_YCbCr_420_888. ALOGV("%s: Treat buffer format to 0x%x as HAL_PIXEL_FORMAT_YCbCr_420_888", __FUNCTION__, bufferFormat); - } else if (imgReaderFmt == HAL_PIXEL_FORMAT_YCBCR_P010 && + } else if (imgReaderHalFmt == HAL_PIXEL_FORMAT_YCBCR_P010 && isPossibly10BitYUV(bufferFormat)) { // Treat formats that are compatible with flexible 10-bit YUV // (HAL_PIXEL_FORMAT_YCBCR_P010) as HAL_PIXEL_FORMAT_YCBCR_P010. ALOGV("%s: Treat buffer format to 0x%x as HAL_PIXEL_FORMAT_YCBCR_P010", __FUNCTION__, bufferFormat); - } else if (imgReaderFmt == HAL_PIXEL_FORMAT_BLOB && + } else if (imgReaderHalFmt == HAL_PIXEL_FORMAT_BLOB && bufferFormat == HAL_PIXEL_FORMAT_RGBA_8888) { // Using HAL_PIXEL_FORMAT_RGBA_8888 Gralloc buffers containing JPEGs to get around // SW write limitations for (b/17379185). @@ -847,7 +846,7 @@ static jobjectArray ImageReader_createImagePlanes(JNIEnv* env, jobject /*thiz*/, } static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz, - int numPlanes, int readerFormat, uint64_t ndkReaderUsage) + int numPlanes, int halReaderFormat, uint64_t ndkReaderUsage) { ALOGV("%s: create SurfacePlane array with size %d", __FUNCTION__, numPlanes); int rowStride = 0; @@ -856,9 +855,6 @@ static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz, uint32_t dataSize = 0; jobject byteBuffer = NULL; - PublicFormat publicReaderFormat = static_cast<PublicFormat>(readerFormat); - int halReaderFormat = mapPublicFormatToHalFormat(publicReaderFormat); - if (isFormatOpaque(halReaderFormat) && numPlanes > 0) { String8 msg; msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)" @@ -968,7 +964,7 @@ static const JNINativeMethod gImageReaderMethods[] = { {"nativeInit", "(Ljava/lang/Object;IIIJII)V", (void*)ImageReader_init }, {"nativeClose", "()V", (void*)ImageReader_close }, {"nativeReleaseImage", "(Landroid/media/Image;)V", (void*)ImageReader_imageRelease }, - {"nativeImageSetup", "(Landroid/media/Image;Z)I", (void*)ImageReader_imageSetup }, + {"nativeImageSetup", "(Landroid/media/Image;)I", (void*)ImageReader_imageSetup }, {"nativeGetSurface", "()Landroid/view/Surface;", (void*)ImageReader_getSurface }, {"nativeDetachImage", "(Landroid/media/Image;Z)I", (void*)ImageReader_detachImage }, {"nativeCreateImagePlanes", diff --git a/media/jni/android_media_ImageWriter.cpp b/media/jni/android_media_ImageWriter.cpp index fbc4bb9f9a81..1927b6c5ca68 100644 --- a/media/jni/android_media_ImageWriter.cpp +++ b/media/jni/android_media_ImageWriter.cpp @@ -415,7 +415,9 @@ static jlong ImageWriter_init(JNIEnv* env, jobject thiz, jobject weakThiz, jobje // Get the dimension and format of the producer. sp<ANativeWindow> anw = producer; - int32_t width, height, surfaceFormat; + int32_t width, height, surfaceHalFormat; + int32_t surfaceFormat = 0; + int32_t surfaceDataspace = 0; if (userWidth < 0) { if ((res = anw->query(anw.get(), NATIVE_WINDOW_WIDTH, &width)) != OK) { ALOGE("%s: Query Surface width failed: %s (%d)", __FUNCTION__, strerror(-res), res); @@ -451,11 +453,18 @@ static jlong ImageWriter_init(JNIEnv* env, jobject thiz, jobject weakThiz, jobje // Query surface format if no valid user format is specified, otherwise, override surface format // with user format. if (useSurfaceImageFormatInfo) { - if ((res = anw->query(anw.get(), NATIVE_WINDOW_FORMAT, &surfaceFormat)) != OK) { + // retrieve hal format + if ((res = anw->query(anw.get(), NATIVE_WINDOW_FORMAT, &surfaceHalFormat)) != OK) { ALOGE("%s: Query Surface format failed: %s (%d)", __FUNCTION__, strerror(-res), res); jniThrowRuntimeException(env, "Failed to query Surface format"); return 0; } + if ((res = anw->query( + anw.get(), NATIVE_WINDOW_DEFAULT_DATASPACE, &surfaceDataspace)) != OK) { + ALOGE("%s: Query Surface dataspace failed: %s (%d)", __FUNCTION__, strerror(-res), res); + jniThrowRuntimeException(env, "Failed to query Surface dataspace"); + return 0; + } } else { // Set consumer buffer format to user specified format android_dataspace nativeDataspace = static_cast<android_dataspace>(dataSpace); @@ -475,17 +484,22 @@ static jlong ImageWriter_init(JNIEnv* env, jobject thiz, jobject weakThiz, jobje return 0; } ctx->setBufferDataSpace(nativeDataspace); - surfaceFormat = static_cast<int32_t>(mapHalFormatDataspaceToPublicFormat( - hardwareBufferFormat, nativeDataspace)); + surfaceDataspace = dataSpace; + surfaceHalFormat = hardwareBufferFormat; } - ctx->setBufferFormat(surfaceFormat); + ctx->setBufferFormat(surfaceHalFormat); + ctx->setBufferDataSpace(static_cast<android_dataspace>(surfaceDataspace)); + + // update class.mWriterFormat + surfaceFormat = static_cast<int32_t>(mapHalFormatDataspaceToPublicFormat( + surfaceHalFormat, static_cast<android_dataspace>(surfaceDataspace))); env->SetIntField(thiz, gImageWriterClassInfo.mWriterFormat, reinterpret_cast<jint>(surfaceFormat)); // ndkUsage == -1 means setUsage in ImageWriter class is not called. // skip usage setting if setUsage in ImageWriter is not called and imageformat is opaque. - if (!(ndkUsage == -1 && isFormatOpaque(surfaceFormat))) { + if (!(ndkUsage == -1 && isFormatOpaque(surfaceHalFormat))) { if (ndkUsage == -1) { ndkUsage = GRALLOC_USAGE_SW_WRITE_OFTEN; } @@ -809,7 +823,7 @@ static status_t attachAndQeueuGraphicBuffer(JNIEnv* env, JNIImageWriterContext * } static jint ImageWriter_attachAndQueueImage(JNIEnv* env, jobject thiz, jlong nativeCtx, - jlong nativeBuffer, jint imageFormat, jlong timestampNs, jint dataSpace, + jlong nativeBuffer, jint nativeHalFormat, jlong timestampNs, jint dataSpace, jint left, jint top, jint right, jint bottom, jint transform, jint scalingMode) { ALOGV("%s", __FUNCTION__); JNIImageWriterContext* const ctx = reinterpret_cast<JNIImageWriterContext *>(nativeCtx); @@ -820,7 +834,7 @@ static jint ImageWriter_attachAndQueueImage(JNIEnv* env, jobject thiz, jlong nat } sp<Surface> surface = ctx->getProducer(); - if (isFormatOpaque(imageFormat) != isFormatOpaque(ctx->getBufferFormat())) { + if (isFormatOpaque(ctx->getBufferFormat()) != isFormatOpaque(nativeHalFormat)) { jniThrowException(env, "java/lang/IllegalStateException", "Trying to attach an opaque image into a non-opaque ImageWriter, or vice versa"); return -1; @@ -840,8 +854,8 @@ static jint ImageWriter_attachAndQueueImage(JNIEnv* env, jobject thiz, jlong nat } static jint ImageWriter_attachAndQueueGraphicBuffer(JNIEnv* env, jobject thiz, jlong nativeCtx, - jobject buffer, jint format, jlong timestampNs, jint dataSpace, jint left, jint top, - jint right, jint bottom, jint transform, jint scalingMode) { + jobject buffer, jint nativeHalFormat, jlong timestampNs, jint dataSpace, + jint left, jint top, jint right, jint bottom, jint transform, jint scalingMode) { ALOGV("%s", __FUNCTION__); JNIImageWriterContext* const ctx = reinterpret_cast<JNIImageWriterContext *>(nativeCtx); if (ctx == NULL || thiz == NULL) { @@ -851,7 +865,7 @@ static jint ImageWriter_attachAndQueueGraphicBuffer(JNIEnv* env, jobject thiz, j } sp<Surface> surface = ctx->getProducer(); - if (isFormatOpaque(format) != isFormatOpaque(ctx->getBufferFormat())) { + if (isFormatOpaque(ctx->getBufferFormat()) != isFormatOpaque(nativeHalFormat)) { jniThrowException(env, "java/lang/IllegalStateException", "Trying to attach an opaque image into a non-opaque ImageWriter, or vice versa"); return -1; @@ -1028,32 +1042,32 @@ static void Image_getLockedImage(JNIEnv* env, jobject thiz, LockedImage *image) } static bool Image_getLockedImageInfo(JNIEnv* env, LockedImage* buffer, int idx, - int32_t writerFormat, uint8_t **base, uint32_t *size, int *pixelStride, int *rowStride) { + int32_t halFormat, uint8_t **base, uint32_t *size, int *pixelStride, int *rowStride) { ALOGV("%s", __FUNCTION__); - status_t res = getLockedImageInfo(buffer, idx, writerFormat, base, size, + status_t res = getLockedImageInfo(buffer, idx, halFormat, base, size, pixelStride, rowStride); if (res != OK) { jniThrowExceptionFmt(env, "java/lang/UnsupportedOperationException", - "Pixel format: 0x%x is unsupported", writerFormat); + "Pixel format: 0x%x is unsupported", halFormat); return false; } return true; } static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz, - int numPlanes, int writerFormat, int dataSpace) { + int numPlanes, int writerFormat) { ALOGV("%s: create SurfacePlane array with size %d", __FUNCTION__, numPlanes); int rowStride, pixelStride; uint8_t *pData; uint32_t dataSize; jobject byteBuffer; + int halFormat = mapPublicFormatToHalFormat(static_cast<PublicFormat>(writerFormat)); - int format = Image_getFormat(env, thiz, dataSpace); - if (isFormatOpaque(format) && numPlanes > 0) { + if (isFormatOpaque(halFormat) && numPlanes > 0) { String8 msg; msg.appendFormat("Format 0x%x is opaque, thus not writable, the number of planes (%d)" - " must be 0", format, numPlanes); + " must be 0", writerFormat, numPlanes); jniThrowException(env, "java/lang/IllegalArgumentException", msg.string()); return NULL; } @@ -1065,7 +1079,8 @@ static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz, " probably out of memory"); return NULL; } - if (isFormatOpaque(format)) { + + if (isFormatOpaque(halFormat)) { return surfacePlanes; } @@ -1074,10 +1089,8 @@ static jobjectArray Image_createSurfacePlanes(JNIEnv* env, jobject thiz, Image_getLockedImage(env, thiz, &lockedImg); // Create all SurfacePlanes - PublicFormat publicWriterFormat = static_cast<PublicFormat>(writerFormat); - writerFormat = mapPublicFormatToHalFormat(publicWriterFormat); for (int i = 0; i < numPlanes; i++) { - if (!Image_getLockedImageInfo(env, &lockedImg, i, writerFormat, + if (!Image_getLockedImageInfo(env, &lockedImg, i, halFormat, &pData, &dataSize, &pixelStride, &rowStride)) { return NULL; } @@ -1119,7 +1132,7 @@ static JNINativeMethod gImageWriterMethods[] = { }; static JNINativeMethod gImageMethods[] = { - {"nativeCreatePlanes", "(III)[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;", + {"nativeCreatePlanes", "(II)[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;", (void*)Image_createSurfacePlanes }, {"nativeGetWidth", "()I", (void*)Image_getWidth }, {"nativeGetHeight", "()I", (void*)Image_getHeight }, diff --git a/media/tests/AudioPolicyTest/src/com/android/audiopolicytest/AudioMixingRuleUnitTests.java b/media/tests/AudioPolicyTest/src/com/android/audiopolicytest/AudioMixingRuleUnitTests.java index a83e7d3a6ef1..3cbfd50ff859 100644 --- a/media/tests/AudioPolicyTest/src/com/android/audiopolicytest/AudioMixingRuleUnitTests.java +++ b/media/tests/AudioPolicyTest/src/com/android/audiopolicytest/AudioMixingRuleUnitTests.java @@ -212,6 +212,12 @@ public class AudioMixingRuleUnitTests { containsInAnyOrder(isAudioMixSessionCriterion(TEST_SESSION_ID))); } + @Test + public void audioMixingRuleWithNoRulesFails() { + assertThrows(IllegalArgumentException.class, + () -> new AudioMixingRule.Builder().build()); + } + private static Matcher isAudioMixUidCriterion(int uid, boolean exclude) { return new CustomTypeSafeMatcher<AudioMixMatchCriterion>("uid mix criterion") { diff --git a/packages/CarrierDefaultApp/Android.bp b/packages/CarrierDefaultApp/Android.bp index fc753da19394..6990ad0fbd7d 100644 --- a/packages/CarrierDefaultApp/Android.bp +++ b/packages/CarrierDefaultApp/Android.bp @@ -10,6 +10,7 @@ package { android_app { name: "CarrierDefaultApp", srcs: ["src/**/*.java"], + libs: ["SliceStore"], platform_apis: true, certificate: "platform", } diff --git a/packages/CarrierDefaultApp/AndroidManifest.xml b/packages/CarrierDefaultApp/AndroidManifest.xml index 632dfb397d51..a5b104b597ee 100644 --- a/packages/CarrierDefaultApp/AndroidManifest.xml +++ b/packages/CarrierDefaultApp/AndroidManifest.xml @@ -28,6 +28,7 @@ <uses-permission android:name="android.permission.NETWORK_BYPASS_PRIVATE_DNS" /> <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> <application android:label="@string/app_name" @@ -71,5 +72,22 @@ <data android:host="*" /> </intent-filter> </activity-alias> + + <receiver android:name="com.android.carrierdefaultapp.SliceStoreBroadcastReceiver" + android:exported="true"> + <intent-filter> + <action android:name="com.android.phone.slicestore.action.START_SLICE_STORE" /> + <action android:name="com.android.phone.slicestore.action.SLICE_STORE_RESPONSE_TIMEOUT" /> + <action android:name="com.android.phone.slicestore.action.NOTIFICATION_CANCELED" /> + </intent-filter> + </receiver> + <activity android:name="com.android.carrierdefaultapp.SliceStoreActivity" + android:label="@string/slice_store_label" + android:exported="true" + android:configChanges="keyboardHidden|orientation|screenSize"> + <intent-filter> + <category android:name="android.intent.category.DEFAULT"/> + </intent-filter> + </activity> </application> </manifest> diff --git a/packages/CarrierDefaultApp/res/drawable/ic_network_boost.xml b/packages/CarrierDefaultApp/res/drawable/ic_network_boost.xml new file mode 100644 index 000000000000..ad8a21c7abb6 --- /dev/null +++ b/packages/CarrierDefaultApp/res/drawable/ic_network_boost.xml @@ -0,0 +1,23 @@ +<!-- + ~ Copyright (C) 2022 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path android:fillColor="@android:color/white" + android:pathData="M3,17V15H8Q8,15 8,15Q8,15 8,15V13Q8,13 8,13Q8,13 8,13H3V7H10V9H5V11H8Q8.825,11 9.413,11.587Q10,12.175 10,13V15Q10,15.825 9.413,16.413Q8.825,17 8,17ZM21,11V15Q21,15.825 20.413,16.413Q19.825,17 19,17H14Q13.175,17 12.588,16.413Q12,15.825 12,15V9Q12,8.175 12.588,7.587Q13.175,7 14,7H19Q19.825,7 20.413,7.587Q21,8.175 21,9H14Q14,9 14,9Q14,9 14,9V15Q14,15 14,15Q14,15 14,15H19Q19,15 19,15Q19,15 19,15V13H16.5V11Z"/> +</vector>
\ No newline at end of file diff --git a/packages/CarrierDefaultApp/res/values/strings.xml b/packages/CarrierDefaultApp/res/values/strings.xml index 65a7cecca20f..ce88a401d18e 100644 --- a/packages/CarrierDefaultApp/res/values/strings.xml +++ b/packages/CarrierDefaultApp/res/values/strings.xml @@ -13,4 +13,18 @@ <string name="ssl_error_warning">The network you’re trying to join has security issues.</string> <string name="ssl_error_example">For example, the login page may not belong to the organization shown.</string> <string name="ssl_error_continue">Continue anyway via browser</string> + + <!-- Telephony notification channel name for network boost notifications. --> + <string name="network_boost_notification_channel">Network Boost</string> + <!-- Notification title text for the network boost notification. --> + <string name="network_boost_notification_title">%s recommends a data boost</string> + <!-- Notification detail text for the network boost notification. --> + <string name="network_boost_notification_detail">Buy a network boost for better performance</string> + <!-- Notification button text to cancel the network boost notification. --> + <string name="network_boost_notification_button_not_now">Not now</string> + <!-- Notification button text to manage the network boost notification. --> + <string name="network_boost_notification_button_manage">Manage</string> + + <!-- Label to display when the slice store opens. --> + <string name="slice_store_label">Purchase a network boost.</string> </resources> diff --git a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SliceStoreActivity.java b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SliceStoreActivity.java new file mode 100644 index 000000000000..24cb5f948474 --- /dev/null +++ b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SliceStoreActivity.java @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.carrierdefaultapp; + +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.app.Activity; +import android.app.NotificationManager; +import android.content.Intent; +import android.os.Bundle; +import android.telephony.CarrierConfigManager; +import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; +import android.util.Log; +import android.webkit.WebView; + +import com.android.phone.slicestore.SliceStore; + +import java.net.MalformedURLException; +import java.net.URL; + +/** + * Activity that launches when the user clicks on the network boost notification. + */ +public class SliceStoreActivity extends Activity { + private static final String TAG = "SliceStoreActivity"; + + private URL mUrl; + private WebView mWebView; + private int mPhoneId; + private int mSubId; + private @TelephonyManager.PremiumCapability int mCapability; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Intent intent = getIntent(); + mPhoneId = intent.getIntExtra(SliceStore.EXTRA_PHONE_ID, + SubscriptionManager.INVALID_PHONE_INDEX); + mSubId = intent.getIntExtra(SliceStore.EXTRA_SUB_ID, + SubscriptionManager.INVALID_SUBSCRIPTION_ID); + mCapability = intent.getIntExtra(SliceStore.EXTRA_PREMIUM_CAPABILITY, + SliceStore.PREMIUM_CAPABILITY_INVALID); + mUrl = getUrl(); + logd("onCreate: mPhoneId=" + mPhoneId + ", mSubId=" + mSubId + ", mCapability=" + + TelephonyManager.convertPremiumCapabilityToString(mCapability) + + ", mUrl=" + mUrl); + getApplicationContext().getSystemService(NotificationManager.class) + .cancel(SliceStoreBroadcastReceiver.NETWORK_BOOST_NOTIFICATION_TAG, mCapability); + if (!SliceStoreBroadcastReceiver.isIntentValid(intent)) { + loge("Not starting SliceStoreActivity with an invalid Intent: " + intent); + SliceStoreBroadcastReceiver.sendSliceStoreResponse( + intent, SliceStore.EXTRA_INTENT_REQUEST_FAILED); + finishAndRemoveTask(); + return; + } + if (mUrl == null) { + loge("Unable to create a URL from carrier configs."); + SliceStoreBroadcastReceiver.sendSliceStoreResponse( + intent, SliceStore.EXTRA_INTENT_CARRIER_ERROR); + finishAndRemoveTask(); + return; + } + if (mSubId != SubscriptionManager.getDefaultSubscriptionId()) { + loge("Unable to start SliceStore on the non-default data subscription: " + mSubId); + SliceStoreBroadcastReceiver.sendSliceStoreResponse( + intent, SliceStore.EXTRA_INTENT_NOT_DEFAULT_DATA); + finishAndRemoveTask(); + return; + } + + SliceStoreBroadcastReceiver.updateSliceStoreActivity(mCapability, this); + + mWebView = new WebView(getApplicationContext()); + setContentView(mWebView); + mWebView.loadUrl(mUrl.toString()); + // TODO(b/245882601): Get back response from WebView + } + + @Override + protected void onDestroy() { + logd("onDestroy: User canceled the purchase by closing the application."); + SliceStoreBroadcastReceiver.sendSliceStoreResponse( + getIntent(), SliceStore.EXTRA_INTENT_CANCELED); + SliceStoreBroadcastReceiver.removeSliceStoreActivity(mCapability); + super.onDestroy(); + } + + private @Nullable URL getUrl() { + String url = getApplicationContext().getSystemService(CarrierConfigManager.class) + .getConfigForSubId(mSubId).getString( + CarrierConfigManager.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING); + try { + return new URL(url); + } catch (MalformedURLException e) { + loge("Invalid URL: " + url); + } + return null; + } + + private static void logd(@NonNull String s) { + Log.d(TAG, s); + } + + private static void loge(@NonNull String s) { + Log.e(TAG, s); + } +} diff --git a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SliceStoreBroadcastReceiver.java b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SliceStoreBroadcastReceiver.java new file mode 100644 index 000000000000..7eb851dcdd58 --- /dev/null +++ b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SliceStoreBroadcastReceiver.java @@ -0,0 +1,315 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.carrierdefaultapp; + +import android.annotation.NonNull; +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.graphics.drawable.Icon; +import android.os.UserHandle; +import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; +import android.text.TextUtils; +import android.util.Log; +import android.webkit.WebView; + +import com.android.phone.slicestore.SliceStore; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.Map; + +/** + * The SliceStoreBroadcastReceiver listens for {@link SliceStore#ACTION_START_SLICE_STORE} from the + * SliceStore in the phone process to start the SliceStore application. It displays the network + * boost notification to the user and will start the {@link SliceStoreActivity} to display the + * {@link WebView} to purchase network boosts from the user's carrier. + */ +public class SliceStoreBroadcastReceiver extends BroadcastReceiver{ + private static final String TAG = "SliceStoreBroadcastReceiver"; + + /** Weak references to {@link SliceStoreActivity} for each capability, if it exists. */ + private static final Map<Integer, WeakReference<SliceStoreActivity>> sSliceStoreActivities = + new HashMap<>(); + + /** Channel ID for the network boost notification. */ + private static final String NETWORK_BOOST_NOTIFICATION_CHANNEL_ID = "network_boost"; + /** Tag for the network boost notification. */ + public static final String NETWORK_BOOST_NOTIFICATION_TAG = "SliceStore.Notification"; + /** Action for when the user clicks the "Not now" button on the network boost notification. */ + private static final String ACTION_NOTIFICATION_CANCELED = + "com.android.phone.slicestore.action.NOTIFICATION_CANCELED"; + + /** + * Create a weak reference to {@link SliceStoreActivity}. The reference will be removed when + * {@link SliceStoreActivity#onDestroy()} is called. + * + * @param capability The premium capability requested. + * @param sliceStoreActivity The instance of SliceStoreActivity. + */ + public static void updateSliceStoreActivity(@TelephonyManager.PremiumCapability int capability, + @NonNull SliceStoreActivity sliceStoreActivity) { + sSliceStoreActivities.put(capability, new WeakReference<>(sliceStoreActivity)); + } + + /** + * Remove the weak reference to {@link SliceStoreActivity} when + * {@link SliceStoreActivity#onDestroy()} is called. + * + * @param capability The premium capability requested. + */ + public static void removeSliceStoreActivity( + @TelephonyManager.PremiumCapability int capability) { + sSliceStoreActivities.remove(capability); + } + + /** + * Send the PendingIntent containing the corresponding SliceStore response. + * + * @param intent The Intent containing the PendingIntent extra. + * @param extra The extra to get the PendingIntent to send. + */ + public static void sendSliceStoreResponse(@NonNull Intent intent, @NonNull String extra) { + PendingIntent pendingIntent = intent.getParcelableExtra(extra, PendingIntent.class); + if (pendingIntent == null) { + loge("PendingIntent does not exist for extra: " + extra); + return; + } + try { + pendingIntent.send(); + } catch (PendingIntent.CanceledException e) { + loge("Unable to send " + getPendingIntentType(extra) + " intent: " + e); + } + } + + /** + * Check whether the Intent is valid and can be used to complete purchases in the SliceStore. + * This checks that all necessary extras exist and that the values are valid. + * + * @param intent The intent to check + * @return {@code true} if the intent is valid and {@code false} otherwise. + */ + public static boolean isIntentValid(@NonNull Intent intent) { + int phoneId = intent.getIntExtra(SliceStore.EXTRA_PHONE_ID, + SubscriptionManager.INVALID_PHONE_INDEX); + if (phoneId == SubscriptionManager.INVALID_PHONE_INDEX) { + loge("isIntentValid: invalid phone index: " + phoneId); + return false; + } + + int subId = intent.getIntExtra(SliceStore.EXTRA_SUB_ID, + SubscriptionManager.INVALID_SUBSCRIPTION_ID); + if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { + loge("isIntentValid: invalid subscription ID: " + subId); + return false; + } + + int capability = intent.getIntExtra(SliceStore.EXTRA_PREMIUM_CAPABILITY, + SliceStore.PREMIUM_CAPABILITY_INVALID); + if (capability == SliceStore.PREMIUM_CAPABILITY_INVALID) { + loge("isIntentValid: invalid premium capability: " + capability); + return false; + } + + String appName = intent.getStringExtra(SliceStore.EXTRA_REQUESTING_APP_NAME); + if (TextUtils.isEmpty(appName)) { + loge("isIntentValid: empty requesting application name: " + appName); + return false; + } + + return isPendingIntentValid(intent, SliceStore.EXTRA_INTENT_CANCELED) + && isPendingIntentValid(intent, SliceStore.EXTRA_INTENT_CARRIER_ERROR) + && isPendingIntentValid(intent, SliceStore.EXTRA_INTENT_REQUEST_FAILED) + && isPendingIntentValid(intent, SliceStore.EXTRA_INTENT_NOT_DEFAULT_DATA); + } + + private static boolean isPendingIntentValid(@NonNull Intent intent, @NonNull String extra) { + String intentType = getPendingIntentType(extra); + PendingIntent pendingIntent = intent.getParcelableExtra(extra, PendingIntent.class); + if (pendingIntent == null) { + loge("isPendingIntentValid: " + intentType + " intent not found."); + return false; + } else if (pendingIntent.getCreatorPackage().equals(TelephonyManager.PHONE_PROCESS_NAME)) { + return true; + } + loge("isPendingIntentValid: " + intentType + " intent was created by " + + pendingIntent.getCreatorPackage() + " instead of the phone process."); + return false; + } + + @NonNull private static String getPendingIntentType(@NonNull String extra) { + switch (extra) { + case SliceStore.EXTRA_INTENT_CANCELED: return "canceled"; + case SliceStore.EXTRA_INTENT_CARRIER_ERROR: return "carrier error"; + case SliceStore.EXTRA_INTENT_REQUEST_FAILED: return "request failed"; + case SliceStore.EXTRA_INTENT_NOT_DEFAULT_DATA: return "not default data"; + default: { + loge("Unknown pending intent extra: " + extra); + return "unknown(" + extra + ")"; + } + } + } + + @Override + public void onReceive(@NonNull Context context, @NonNull Intent intent) { + logd("onReceive intent: " + intent.getAction()); + switch (intent.getAction()) { + case SliceStore.ACTION_START_SLICE_STORE: + onDisplayBoosterNotification(context, intent); + break; + case SliceStore.ACTION_SLICE_STORE_RESPONSE_TIMEOUT: + onTimeout(context, intent); + break; + case ACTION_NOTIFICATION_CANCELED: + onUserCanceled(context, intent); + break; + default: + loge("Received unknown action: " + intent.getAction()); + } + } + + private void onDisplayBoosterNotification(@NonNull Context context, @NonNull Intent intent) { + if (!isIntentValid(intent)) { + sendSliceStoreResponse(intent, SliceStore.EXTRA_INTENT_REQUEST_FAILED); + return; + } + + context.getSystemService(NotificationManager.class).createNotificationChannel( + new NotificationChannel(NETWORK_BOOST_NOTIFICATION_CHANNEL_ID, + context.getResources().getString( + R.string.network_boost_notification_channel), + NotificationManager.IMPORTANCE_DEFAULT)); + + Notification notification = + new Notification.Builder(context, NETWORK_BOOST_NOTIFICATION_CHANNEL_ID) + .setContentTitle(String.format(context.getResources().getString( + R.string.network_boost_notification_title), + intent.getStringExtra(SliceStore.EXTRA_REQUESTING_APP_NAME))) + .setContentText(context.getResources().getString( + R.string.network_boost_notification_detail)) + .setSmallIcon(R.drawable.ic_network_boost) + .setContentIntent(createContentIntent(context, intent, 1)) + .setDeleteIntent(intent.getParcelableExtra( + SliceStore.EXTRA_INTENT_CANCELED, PendingIntent.class)) + // Add an action for the "Not now" button, which has the same behavior as + // the user canceling or closing the notification. + .addAction(new Notification.Action.Builder( + Icon.createWithResource(context, R.drawable.ic_network_boost), + context.getResources().getString( + R.string.network_boost_notification_button_not_now), + createCanceledIntent(context, intent)).build()) + // Add an action for the "Manage" button, which has the same behavior as + // the user clicking on the notification. + .addAction(new Notification.Action.Builder( + Icon.createWithResource(context, R.drawable.ic_network_boost), + context.getResources().getString( + R.string.network_boost_notification_button_manage), + createContentIntent(context, intent, 2)).build()) + .build(); + + int capability = intent.getIntExtra(SliceStore.EXTRA_PREMIUM_CAPABILITY, + SliceStore.PREMIUM_CAPABILITY_INVALID); + logd("Display the booster notification for capability " + + TelephonyManager.convertPremiumCapabilityToString(capability)); + context.getSystemService(NotificationManager.class).notifyAsUser( + NETWORK_BOOST_NOTIFICATION_TAG, capability, notification, UserHandle.ALL); + } + + /** + * Create the intent for when the user clicks on the "Manage" button on the network boost + * notification or the notification itself. This will open {@link SliceStoreActivity}. + * + * @param context The Context to create the intent for. + * @param intent The source Intent used to launch the SliceStore application. + * @param requestCode The request code for the PendingIntent. + * + * @return The intent to start {@link SliceStoreActivity}. + */ + @NonNull private PendingIntent createContentIntent(@NonNull Context context, + @NonNull Intent intent, int requestCode) { + Intent i = new Intent(context, SliceStoreActivity.class); + i.setComponent(ComponentName.unflattenFromString( + "com.android.carrierdefaultapp/.SliceStoreActivity")); + i.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT + | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + i.putExtras(intent); + return PendingIntent.getActivityAsUser(context, requestCode, i, + PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_MUTABLE, null /* options */, + UserHandle.CURRENT); + } + + /** + * Create the canceled intent for when the user clicks the "Not now" button on the network boost + * notification. This will send {@link #ACTION_NOTIFICATION_CANCELED} and has the same function + * as if the user had canceled or removed the notification. + * + * @param context The Context to create the intent for. + * @param intent The source Intent used to launch the SliceStore application. + * + * @return The canceled intent. + */ + @NonNull private PendingIntent createCanceledIntent(@NonNull Context context, + @NonNull Intent intent) { + Intent i = new Intent(ACTION_NOTIFICATION_CANCELED); + i.setComponent(ComponentName.unflattenFromString( + "com.android.carrierdefaultapp/.SliceStoreBroadcastReceiver")); + i.putExtras(intent); + return PendingIntent.getBroadcast(context, 0, i, + PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_MUTABLE); + } + + private void onTimeout(@NonNull Context context, @NonNull Intent intent) { + int capability = intent.getIntExtra(SliceStore.EXTRA_PREMIUM_CAPABILITY, + SliceStore.PREMIUM_CAPABILITY_INVALID); + logd("Purchase capability " + TelephonyManager.convertPremiumCapabilityToString(capability) + + " timed out."); + if (sSliceStoreActivities.get(capability) == null) { + // Notification is still active + logd("Closing booster notification since the user did not respond in time."); + context.getSystemService(NotificationManager.class).cancelAsUser( + NETWORK_BOOST_NOTIFICATION_TAG, capability, UserHandle.ALL); + } else { + // Notification was dismissed but SliceStoreActivity is still active + logd("Closing SliceStore WebView since the user did not complete the purchase " + + "in time."); + sSliceStoreActivities.get(capability).get().finishAndRemoveTask(); + // TODO: Display a toast to indicate timeout for better UX? + } + } + + private void onUserCanceled(@NonNull Context context, @NonNull Intent intent) { + int capability = intent.getIntExtra(SliceStore.EXTRA_PREMIUM_CAPABILITY, + SliceStore.PREMIUM_CAPABILITY_INVALID); + logd("onUserCanceled: " + TelephonyManager.convertPremiumCapabilityToString(capability)); + context.getSystemService(NotificationManager.class) + .cancelAsUser(NETWORK_BOOST_NOTIFICATION_TAG, capability, UserHandle.ALL); + sendSliceStoreResponse(intent, SliceStore.EXTRA_INTENT_CANCELED); + } + + private static void logd(String s) { + Log.d(TAG, s); + } + + private static void loge(String s) { + Log.e(TAG, s); + } +} diff --git a/packages/CredentialManager/Android.bp b/packages/CredentialManager/Android.bp index 51943fffb36d..25529bba382f 100644 --- a/packages/CredentialManager/Android.bp +++ b/packages/CredentialManager/Android.bp @@ -32,4 +32,8 @@ android_app { platform_apis: true, kotlincflags: ["-Xjvm-default=enable"], + + optimize: { + proguard_compatibility: false, + }, } diff --git a/packages/CredentialManager/res/values/strings.xml b/packages/CredentialManager/res/values/strings.xml index 2c24bf14117a..92ce77282cb9 100644 --- a/packages/CredentialManager/res/values/strings.xml +++ b/packages/CredentialManager/res/values/strings.xml @@ -1,4 +1,5 @@ -<resources> +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name">CredentialManager</string> <string name="string_cancel">Cancel</string> <string name="string_continue">Continue</string> @@ -12,4 +13,7 @@ <string name="choose_create_option_title">Create a passkey at</string> <string name="choose_sign_in_title">Use saved sign in</string> <string name="create_passkey_at">Create passkey at</string> + <string name="use_provider_for_all_title">Use <xliff:g id="providerInfoName">%1$s</xliff:g> for all your sign-ins?</string> + <string name="set_as_default">Set as default</string> + <string name="use_once">Use once</string> </resources>
\ No newline at end of file diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialEntryUi.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialEntryUi.kt index 96cc02f94361..ee4f4ca9c832 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialEntryUi.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialEntryUi.kt @@ -29,6 +29,7 @@ class CredentialEntryUi( val userName: CharSequence, val displayName: CharSequence?, val icon: Icon?, + val usageData: CharSequence?, // TODO: add last used. ) { companion object { @@ -38,18 +39,21 @@ class CredentialEntryUi( var title: String? = null var subTitle: String? = null var icon: Icon? = null + var usageData: String? = null items.forEach { if (it.hasHint(Entry.HINT_ICON)) { icon = it.icon - } else if (it.hasHint(Entry.HINT_SUBTITLE)) { + } else if (it.hasHint(Entry.HINT_SUBTITLE) && it.subType == null) { subTitle = it.text.toString() } else if (it.hasHint(Entry.HINT_TITLE)) { title = it.text.toString() + } else if (it.hasHint(Entry.HINT_SUBTITLE) && it.subType == Slice.SUBTYPE_MESSAGE) { + usageData = it.text.toString() } } // TODO: fail NPE more elegantly. - return CredentialEntryUi(title!!, subTitle, icon) + return CredentialEntryUi(title!!, subTitle, icon, usageData) } } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt index 8db547a49c88..ec0c5b708abe 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt @@ -16,15 +16,20 @@ package com.android.credentialmanager +import android.app.Activity import android.app.slice.Slice import android.app.slice.SliceSpec import android.content.Context import android.content.Intent +import android.credentials.ui.Constants import android.credentials.ui.Entry import android.credentials.ui.ProviderData import android.credentials.ui.RequestInfo +import android.credentials.ui.UserSelectionResult import android.graphics.drawable.Icon import android.os.Binder +import android.os.Bundle +import android.os.ResultReceiver import com.android.credentialmanager.createflow.CreatePasskeyUiState import com.android.credentialmanager.createflow.CreateScreenState import com.android.credentialmanager.getflow.GetCredentialUiState @@ -37,6 +42,8 @@ class CredentialManagerRepo( ) { private val requestInfo: RequestInfo private val providerList: List<ProviderData> + // TODO: require non-null. + val resultReceiver: ResultReceiver? init { requestInfo = intent.extras?.getParcelable( @@ -52,6 +59,29 @@ class CredentialManagerRepo( ProviderData.EXTRA_PROVIDER_DATA_LIST, ProviderData::class.java ) ?: testProviderList() + + resultReceiver = intent.getParcelableExtra( + Constants.EXTRA_RESULT_RECEIVER, + ResultReceiver::class.java + ) + } + + fun onCancel() { + resultReceiver?.send(Activity.RESULT_CANCELED, null) + } + + fun onOptionSelected(providerPackageName: String, entryId: Int) { + val userSelectionResult = UserSelectionResult( + requestInfo.token, + providerPackageName, + entryId + ) + val resultData = Bundle() + resultData.putParcelable( + UserSelectionResult.EXTRA_USER_SELECTION_RESULT, + userSelectionResult + ) + resultReceiver?.send(Activity.RESULT_OK, resultData) } fun getCredentialInitialUiState(): GetCredentialUiState { @@ -89,42 +119,46 @@ class CredentialManagerRepo( // TODO: below are prototype functionalities. To be removed for productionization. private fun testProviderList(): List<ProviderData> { return listOf( - ProviderData( + ProviderData.Builder( "com.google", - listOf<Entry>( - newEntry(1, "elisa.beckett@gmail.com", "Elisa Backett"), - newEntry(2, "elisa.work@google.com", "Elisa Backett Work"), - ), - listOf<Entry>( - newEntry(3, "Go to Settings", ""), - newEntry(4, "Switch Account", ""), - ), - null - ), - ProviderData( + "Google Password Manager", + Icon.createWithResource(context, R.drawable.ic_launcher_foreground)) + .setCredentialEntries( + listOf<Entry>( + newEntry(1, "elisa.beckett@gmail.com", "Elisa Backett", + "20 passwords and 7 passkeys saved"), + newEntry(2, "elisa.work@google.com", "Elisa Backett Work", + "20 passwords and 7 passkeys saved"), + ) + ).setActionChips( + listOf<Entry>( + newEntry(3, "Go to Settings", "", + "20 passwords and 7 passkeys saved"), + newEntry(4, "Switch Account", "", + "20 passwords and 7 passkeys saved"), + ), + ).build(), + ProviderData.Builder( "com.dashlane", - listOf<Entry>( - newEntry(5, "elisa.beckett@dashlane.com", "Elisa Backett"), - newEntry(6, "elisa.work@dashlane.com", "Elisa Backett Work"), - ), - listOf<Entry>( - newEntry(7, "Manage Accounts", "Manage your accounts in the dashlane app"), - ), - null - ), - ProviderData( - "com.lastpass", - listOf<Entry>( - newEntry(8, "elisa.beckett@lastpass.com", "Elisa Backett"), - ), - listOf<Entry>(), - null - ) - + "Dashlane", + Icon.createWithResource(context, R.drawable.ic_launcher_foreground)) + .setCredentialEntries( + listOf<Entry>( + newEntry(1, "elisa.beckett@dashlane.com", "Elisa Backett", + "20 passwords and 7 passkeys saved"), + newEntry(2, "elisa.work@dashlane.com", "Elisa Backett Work", + "20 passwords and 7 passkeys saved"), + ) + ).setActionChips( + listOf<Entry>( + newEntry(3, "Manage Accounts", "Manage your accounts in the dashlane app", + "20 passwords and 7 passkeys saved"), + ), + ).build(), ) } - private fun newEntry(id: Int, title: String, subtitle: String): Entry { + private fun newEntry(id: Int, title: String, subtitle: String, usageData: String): Entry { val slice = Slice.Builder( Entry.CREDENTIAL_MANAGER_ENTRY_URI, SliceSpec(Entry.VERSION, 1) ) @@ -134,6 +168,7 @@ class CredentialManagerRepo( Icon.createWithResource(context, R.drawable.ic_passkey), null, listOf(Entry.HINT_ICON)) + .addText(usageData, Slice.SUBTYPE_MESSAGE, listOf(Entry.HINT_SUBTITLE)) .build() return Entry( id, diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt index b538ae79091f..78edaa936bcd 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialSelectorActivity.kt @@ -23,9 +23,15 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.runtime.Composable +import androidx.lifecycle.Observer +import androidx.lifecycle.viewmodel.compose.viewModel import com.android.credentialmanager.common.DialogType +import com.android.credentialmanager.common.DialogResult +import com.android.credentialmanager.common.ResultState import com.android.credentialmanager.createflow.CreatePasskeyScreen +import com.android.credentialmanager.createflow.CreatePasskeyViewModel import com.android.credentialmanager.getflow.GetCredentialScreen +import com.android.credentialmanager.getflow.GetCredentialViewModel import com.android.credentialmanager.ui.theme.CredentialSelectorTheme @ExperimentalMaterialApi @@ -57,10 +63,20 @@ class CredentialSelectorActivity : ComponentActivity() { val dialogType = DialogType.toDialogType(operationType) when (dialogType) { DialogType.CREATE_PASSKEY -> { - CreatePasskeyScreen(cancelActivity = onCancel) + val viewModel: CreatePasskeyViewModel = viewModel() + viewModel.observeDialogResult().observe( + this@CredentialSelectorActivity, + onCancel + ) + CreatePasskeyScreen(viewModel = viewModel) } DialogType.GET_CREDENTIALS -> { - GetCredentialScreen(cancelActivity = onCancel) + val viewModel: GetCredentialViewModel = viewModel() + viewModel.observeDialogResult().observe( + this@CredentialSelectorActivity, + onCancel + ) + GetCredentialScreen(viewModel = viewModel) } else -> { Log.w("AccountSelector", "Unknown type, not rendering any UI") @@ -69,7 +85,9 @@ class CredentialSelectorActivity : ComponentActivity() { } } - private val onCancel = { - this@CredentialSelectorActivity.finish() + private val onCancel = Observer<DialogResult> { + if (it.resultState == ResultState.COMPLETE || it.resultState == ResultState.CANCELED) { + this@CredentialSelectorActivity.finish() + } } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt index 7159ab97202b..6b503ff9c10b 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt @@ -35,7 +35,7 @@ class GetFlowUtils { ProviderInfo( // TODO: replace to extract from the service data structure when available icon = context.getDrawable(R.drawable.ic_passkey)!!, - name = it.packageName, + name = it.providerId, appDomainName = "tribank.us", credentialTypeIcon = context.getDrawable(R.drawable.ic_passkey)!!, credentialOptions = toCredentialOptionInfoList(it.credentialEntries, context) @@ -60,6 +60,7 @@ class GetFlowUtils { title = credentialEntryUi.userName.toString(), subtitle = credentialEntryUi.displayName?.toString() ?: "Unknown display name", id = it.entryId, + usageData = credentialEntryUi.usageData?.toString() ?: "Unknown usageData", ) } } @@ -77,7 +78,7 @@ class CreateFlowUtils { com.android.credentialmanager.createflow.ProviderInfo( // TODO: replace to extract from the service data structure when available icon = context.getDrawable(R.drawable.ic_passkey)!!, - name = it.packageName, + name = it.providerId, appDomainName = "tribank.us", credentialTypeIcon = context.getDrawable(R.drawable.ic_passkey)!!, createOptions = toCreationOptionInfoList(it.credentialEntries, context), @@ -99,6 +100,7 @@ class CreateFlowUtils { title = saveEntryUi.title.toString(), subtitle = saveEntryUi.subTitle?.toString() ?: "Unknown subtitle", id = it.entryId, + usageData = saveEntryUi.usageData?.toString() ?: "Unknown usageData", ) } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/SaveEntryUi.kt b/packages/CredentialManager/src/com/android/credentialmanager/SaveEntryUi.kt index 2b63e1d1cd69..cd52197f9257 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/SaveEntryUi.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/SaveEntryUi.kt @@ -29,6 +29,7 @@ class SaveEntryUi( val title: CharSequence, val subTitle: CharSequence?, val icon: Icon?, + val usageData: CharSequence?, // TODO: add ) { companion object { @@ -38,18 +39,21 @@ class SaveEntryUi( var title: String? = null var subTitle: String? = null var icon: Icon? = null + var usageData: String? = null items.forEach { if (it.hasHint(Entry.HINT_ICON)) { icon = it.icon - } else if (it.hasHint(Entry.HINT_SUBTITLE)) { + } else if (it.hasHint(Entry.HINT_SUBTITLE) && it.subType == null) { subTitle = it.text.toString() } else if (it.hasHint(Entry.HINT_TITLE)) { title = it.text.toString() + } else if (it.hasHint(Entry.HINT_SUBTITLE) && it.subType == Slice.SUBTYPE_MESSAGE) { + usageData = it.text.toString() } } // TODO: fail NPE more elegantly. - return SaveEntryUi(title!!, subTitle, icon) + return SaveEntryUi(title!!, subTitle, icon, usageData) } } } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GalleryDebugActivity.kt b/packages/CredentialManager/src/com/android/credentialmanager/common/DialogResult.kt index 23072a231417..b75166347c56 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GalleryDebugActivity.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/common/DialogResult.kt @@ -14,8 +14,13 @@ * limitations under the License. */ -package com.android.settingslib.spa.gallery +package com.android.credentialmanager.common -import com.android.settingslib.spa.framework.DebugActivity +enum class ResultState { + COMPLETE, + CANCELED, +} -class GalleryDebugActivity : DebugActivity() +data class DialogResult( + val resultState: ResultState, +)
\ No newline at end of file diff --git a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt index 12f18460ce24..19820d6cd98c 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt @@ -31,6 +31,7 @@ data class CreateOptionInfo( val title: String, val subtitle: String, val id: Int, + val usageData: String ) /** The name of the current screen. */ @@ -39,4 +40,5 @@ enum class CreateScreenState { PROVIDER_SELECTION, CREATION_OPTION_SELECTION, MORE_OPTIONS_SELECTION, + MORE_OPTIONS_ROW_INTRO, } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt index b61f4652ad22..82fce9f7a98d 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt @@ -35,9 +35,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap -import androidx.lifecycle.viewmodel.compose.viewModel import com.android.credentialmanager.R import com.android.credentialmanager.ui.theme.Grey100 import com.android.credentialmanager.ui.theme.Shapes @@ -49,8 +49,7 @@ import com.android.credentialmanager.ui.theme.lightSurface1 @ExperimentalMaterialApi @Composable fun CreatePasskeyScreen( - viewModel: CreatePasskeyViewModel = viewModel(), - cancelActivity: () -> Unit, + viewModel: CreatePasskeyViewModel, ) { val state = rememberModalBottomSheetState( initialValue = ModalBottomSheetValue.Expanded, @@ -63,25 +62,30 @@ fun CreatePasskeyScreen( when (uiState.currentScreenState) { CreateScreenState.PASSKEY_INTRO -> ConfirmationCard( onConfirm = {viewModel.onConfirmIntro()}, - onCancel = cancelActivity, + onCancel = {viewModel.onCancel()}, ) CreateScreenState.PROVIDER_SELECTION -> ProviderSelectionCard( providerList = uiState.providers, - onCancel = cancelActivity, + onCancel = {viewModel.onCancel()}, onProviderSelected = {viewModel.onProviderSelected(it)} ) CreateScreenState.CREATION_OPTION_SELECTION -> CreationSelectionCard( providerInfo = uiState.selectedProvider!!, onOptionSelected = {viewModel.onCreateOptionSelected(it)}, - onCancel = cancelActivity, + onCancel = {viewModel.onCancel()}, multiProvider = uiState.providers.size > 1, - onMoreOptionSelected = {viewModel.onMoreOptionSelected(it)} + onMoreOptionsSelected = {viewModel.onMoreOptionsSelected(it)} ) - CreateScreenState.MORE_OPTIONS_SELECTION -> MoreOptionSelectionCard( + CreateScreenState.MORE_OPTIONS_SELECTION -> MoreOptionsSelectionCard( providerInfo = uiState.selectedProvider!!, - onCancel = cancelActivity, - onBackButtonSelected = {viewModel.onBackButtonSelected(it)} + providerList = uiState.providers, + onBackButtonSelected = {viewModel.onBackButtonSelected(it)}, + onOptionSelected = {viewModel.onMoreOptionsRowSelected(it)} ) + CreateScreenState.MORE_OPTIONS_ROW_INTRO -> MoreOptionsRowIntroCard( + providerInfo = uiState.selectedProvider!!, + onDefaultOrNotSelected = {viewModel.onDefaultOrNotSelected(it)} + ) } }, scrimColor = Color.Transparent, @@ -89,7 +93,7 @@ fun CreatePasskeyScreen( ) {} LaunchedEffect(state.currentValue) { if (state.currentValue == ModalBottomSheetValue.Hidden) { - cancelActivity() + viewModel.onCancel() } } } @@ -211,11 +215,13 @@ fun ProviderSelectionCard( } } +@ExperimentalMaterialApi @Composable -fun MoreOptionSelectionCard( +fun MoreOptionsSelectionCard( providerInfo: ProviderInfo, - onCancel: () -> Unit, - onBackButtonSelected: (String) -> Unit + providerList: List<ProviderInfo>, + onBackButtonSelected: (String) -> Unit, + onOptionSelected: (String) -> Unit ) { Card( backgroundColor = lightBackgroundColor, @@ -242,7 +248,8 @@ fun MoreOptionSelectionCard( Text( text = stringResource(R.string.create_passkey_at), style = Typography.body1, - modifier = Modifier.padding(horizontal = 28.dp) + modifier = Modifier.padding(horizontal = 28.dp), + textAlign = TextAlign.Center ) Card( shape = Shapes.medium, @@ -253,22 +260,59 @@ fun MoreOptionSelectionCard( LazyColumn( verticalArrangement = Arrangement.spacedBy(2.dp) ) { + // TODO: change the order according to usage frequency + providerList.forEach { providerInfo -> + providerInfo.createOptions.forEach { createOptionInfo -> + item { + MoreOptionsInfoRow(providerInfo = providerInfo, + createOptionInfo = createOptionInfo, + onOptionSelected = onOptionSelected) + } + } + } } } Divider( - thickness = 24.dp, - color = Color.Transparent + thickness = 18.dp, + color = Color.Transparent, + modifier = Modifier.padding(bottom = 40.dp) + ) + } + } +} + +@ExperimentalMaterialApi +@Composable +fun MoreOptionsRowIntroCard( + providerInfo: ProviderInfo, + onDefaultOrNotSelected: (String) -> Unit, +) { + Card( + backgroundColor = lightBackgroundColor, + ) { + Column() { + Text( + text = stringResource(R.string.use_provider_for_all_title, providerInfo.name), + style = Typography.subtitle1, + modifier = Modifier.padding(all = 24.dp).align(alignment = Alignment.CenterHorizontally) ) Row( - horizontalArrangement = Arrangement.Start, + horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth().padding(horizontal = 24.dp) ) { - CancelButton(stringResource(R.string.string_cancel), onCancel) + CancelButton( + stringResource(R.string.use_once), + onclick = { onDefaultOrNotSelected(providerInfo.name) } + ) + ConfirmButton( + stringResource(R.string.set_as_default), + onclick = { onDefaultOrNotSelected(providerInfo.name) } + ) } Divider( thickness = 18.dp, color = Color.Transparent, - modifier = Modifier.padding(bottom = 16.dp) + modifier = Modifier.padding(bottom = 40.dp) ) } } @@ -348,7 +392,7 @@ fun CreationSelectionCard( onOptionSelected: (Int) -> Unit, onCancel: () -> Unit, multiProvider: Boolean, - onMoreOptionSelected: (String) -> Unit, + onMoreOptionsSelected: (String) -> Unit, ) { Card( backgroundColor = lightBackgroundColor, @@ -390,7 +434,7 @@ fun CreationSelectionCard( } if (multiProvider) { item { - MoreOptionRow(onSelect = { onMoreOptionSelected(providerInfo.name) }) + MoreOptionsRow(onSelect = { onMoreOptionsSelected(providerInfo.name) }) } } } @@ -450,7 +494,46 @@ fun CreateOptionRow(createOptionInfo: CreateOptionInfo, onOptionSelected: (Int) @ExperimentalMaterialApi @Composable -fun MoreOptionRow(onSelect: () -> Unit) { +fun MoreOptionsInfoRow( + providerInfo: ProviderInfo, + createOptionInfo: CreateOptionInfo, + onOptionSelected: (String) -> Unit +) { + Chip( + modifier = Modifier.fillMaxWidth(), + onClick = { onOptionSelected(providerInfo.name) }, + leadingIcon = { + Image(modifier = Modifier.size(24.dp, 24.dp).padding(start = 10.dp), + bitmap = createOptionInfo.icon.toBitmap().asImageBitmap(), + // painter = painterResource(R.drawable.ic_passkey), + // TODO: add description. + contentDescription = "") + }, + colors = ChipDefaults.chipColors( + backgroundColor = Grey100, + leadingIconContentColor = Grey100 + ), + shape = Shapes.large + ) { + Column() { + Text( + text = if (providerInfo.createOptions.size > 1) + {providerInfo.name + " for " + createOptionInfo.title} else { providerInfo.name}, + style = Typography.h6, + modifier = Modifier.padding(top = 16.dp) + ) + Text( + text = createOptionInfo.usageData, + style = Typography.body2, + modifier = Modifier.padding(bottom = 16.dp) + ) + } + } +} + +@ExperimentalMaterialApi +@Composable +fun MoreOptionsRow(onSelect: () -> Unit) { Chip( modifier = Modifier.fillMaxWidth().height(52.dp), onClick = onSelect, diff --git a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt index 5b70f9d91c54..ff44e2ee1b06 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt @@ -20,8 +20,12 @@ import android.util.Log import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import com.android.credentialmanager.CredentialManagerRepo +import com.android.credentialmanager.common.DialogResult +import com.android.credentialmanager.common.ResultState data class CreatePasskeyUiState( val providers: List<ProviderInfo>, @@ -36,6 +40,14 @@ class CreatePasskeyViewModel( var uiState by mutableStateOf(credManRepo.createPasskeyInitialUiState()) private set + val dialogResult: MutableLiveData<DialogResult> by lazy { + MutableLiveData<DialogResult>() + } + + fun observeDialogResult(): LiveData<DialogResult> { + return dialogResult + } + fun onConfirmIntro() { if (uiState.providers.size > 1) { uiState = uiState.copy( @@ -60,6 +72,13 @@ class CreatePasskeyViewModel( fun onCreateOptionSelected(createOptionId: Int) { Log.d("Account Selector", "Option selected for creation: $createOptionId") + CredentialManagerRepo.getInstance().onOptionSelected( + uiState.selectedProvider!!.name, + createOptionId + ) + dialogResult.value = DialogResult( + ResultState.COMPLETE, + ) } fun getProviderInfoByName(providerName: String): ProviderInfo { @@ -68,7 +87,7 @@ class CreatePasskeyViewModel( } } - fun onMoreOptionSelected(providerName: String) { + fun onMoreOptionsSelected(providerName: String) { uiState = uiState.copy( currentScreenState = CreateScreenState.MORE_OPTIONS_SELECTION, selectedProvider = getProviderInfoByName(providerName) @@ -81,4 +100,24 @@ class CreatePasskeyViewModel( selectedProvider = getProviderInfoByName(providerName) ) } + + fun onMoreOptionsRowSelected(providerName: String) { + uiState = uiState.copy( + currentScreenState = CreateScreenState.MORE_OPTIONS_ROW_INTRO, + selectedProvider = getProviderInfoByName(providerName) + ) + } + + fun onCancel() { + CredentialManagerRepo.getInstance().onCancel() + dialogResult.value = DialogResult(ResultState.CANCELED) + } + + fun onDefaultOrNotSelected(providerName: String) { + uiState = uiState.copy( + currentScreenState = CreateScreenState.CREATION_OPTION_SELECTION, + selectedProvider = getProviderInfoByName(providerName) + ) + // TODO: implement the if choose as default or not logic later + } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt index 0b188221e8b3..48c67bb8770d 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt @@ -44,7 +44,6 @@ import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.core.graphics.drawable.toBitmap -import androidx.lifecycle.viewmodel.compose.viewModel import com.android.credentialmanager.R import com.android.credentialmanager.createflow.CancelButton import com.android.credentialmanager.ui.theme.Grey100 @@ -55,8 +54,7 @@ import com.android.credentialmanager.ui.theme.lightBackgroundColor @ExperimentalMaterialApi @Composable fun GetCredentialScreen( - viewModel: GetCredentialViewModel = viewModel(), - cancelActivity: () -> Unit, + viewModel: GetCredentialViewModel, ) { val state = rememberModalBottomSheetState( initialValue = ModalBottomSheetValue.Expanded, @@ -69,7 +67,7 @@ fun GetCredentialScreen( when (uiState.currentScreenState) { GetScreenState.CREDENTIAL_SELECTION -> CredentialSelectionCard( providerInfo = uiState.selectedProvider!!, - onCancel = cancelActivity, + onCancel = {viewModel.onCancel()}, onOptionSelected = {viewModel.onCredentailSelected(it)}, multiProvider = uiState.providers.size > 1, onMoreOptionSelected = {viewModel.onMoreOptionSelected()}, @@ -81,7 +79,7 @@ fun GetCredentialScreen( ) {} LaunchedEffect(state.currentValue) { if (state.currentValue == ModalBottomSheetValue.Hidden) { - cancelActivity() + viewModel.onCancel() } } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt index 0fdd8ecd38c9..33858f523e3c 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialViewModel.kt @@ -20,8 +20,12 @@ import android.util.Log import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import com.android.credentialmanager.CredentialManagerRepo +import com.android.credentialmanager.common.DialogResult +import com.android.credentialmanager.common.ResultState data class GetCredentialUiState( val providers: List<ProviderInfo>, @@ -36,11 +40,31 @@ class GetCredentialViewModel( var uiState by mutableStateOf(credManRepo.getCredentialInitialUiState()) private set + val dialogResult: MutableLiveData<DialogResult> by lazy { + MutableLiveData<DialogResult>() + } + + fun observeDialogResult(): LiveData<DialogResult> { + return dialogResult + } + fun onCredentailSelected(credentialId: Int) { Log.d("Account Selector", "credential selected: $credentialId") + CredentialManagerRepo.getInstance().onOptionSelected( + uiState.selectedProvider!!.name, + credentialId + ) + dialogResult.value = DialogResult( + ResultState.COMPLETE, + ) } fun onMoreOptionSelected() { Log.d("Account Selector", "More Option selected") } + + fun onCancel() { + CredentialManagerRepo.getInstance().onCancel() + dialogResult.value = DialogResult(ResultState.CANCELED) + } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt index acea8c9d6536..a39b211b29ca 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt @@ -31,6 +31,7 @@ data class CredentialOptionInfo( val title: String, val subtitle: String, val id: Int, + val usageData: String ) /** The name of the current screen. */ diff --git a/packages/SettingsLib/ActivityEmbedding/Android.bp b/packages/SettingsLib/ActivityEmbedding/Android.bp index 332bebffb637..c35fb3b17880 100644 --- a/packages/SettingsLib/ActivityEmbedding/Android.bp +++ b/packages/SettingsLib/ActivityEmbedding/Android.bp @@ -26,4 +26,9 @@ android_library { "androidx.window.extensions", "androidx.window.sidecar", ], + + apex_available: [ + "//apex_available:platform", + "com.android.permission", + ], } diff --git a/packages/SettingsLib/ActivityEmbedding/AndroidManifest.xml b/packages/SettingsLib/ActivityEmbedding/AndroidManifest.xml index 27425589c822..0949e1defc2f 100644 --- a/packages/SettingsLib/ActivityEmbedding/AndroidManifest.xml +++ b/packages/SettingsLib/ActivityEmbedding/AndroidManifest.xml @@ -21,6 +21,7 @@ <uses-sdk android:minSdkVersion="21" /> <application> + <uses-library android:name="org.apache.http.legacy" android:required="false" /> <uses-library android:name="androidx.window.extensions" android:required="false" /> <uses-library android:name="androidx.window.sidecar" android:required="false" /> </application> diff --git a/packages/SettingsLib/Spa/build.gradle b/packages/SettingsLib/Spa/build.gradle index 811cdd804f8b..68c63dad6726 100644 --- a/packages/SettingsLib/Spa/build.gradle +++ b/packages/SettingsLib/Spa/build.gradle @@ -17,6 +17,7 @@ buildscript { ext { spa_min_sdk = 21 + spa_target_sdk = 33 jetpack_compose_version = '1.2.0-alpha04' jetpack_compose_compiler_version = '1.3.2' jetpack_compose_material3_version = '1.0.0-alpha06' diff --git a/packages/SettingsLib/Spa/gallery/AndroidManifest.xml b/packages/SettingsLib/Spa/gallery/AndroidManifest.xml index 0a4972fac1bb..f1a24aff4319 100644 --- a/packages/SettingsLib/Spa/gallery/AndroidManifest.xml +++ b/packages/SettingsLib/Spa/gallery/AndroidManifest.xml @@ -17,6 +17,8 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.settingslib.spa.gallery"> + <uses-sdk android:minSdkVersion="21"/> + <application android:name=".GalleryApplication" android:icon="@mipmap/ic_launcher" @@ -32,14 +34,24 @@ </intent-filter> </activity> + <provider + android:name=".GalleryEntryProvider" + android:authorities="com.android.spa.gallery.provider" + android:enabled="true" + android:exported="false"> + </provider> + <activity - android:name=".GalleryDebugActivity" + android:name="com.android.settingslib.spa.framework.debug.BlankActivity" + android:exported="true"> + </activity> + <activity + android:name="com.android.settingslib.spa.framework.debug.DebugActivity" android:exported="true"> </activity> - <provider - android:name=".GalleryEntryProvider" - android:authorities="com.android.spa.gallery.provider" + android:name="com.android.settingslib.spa.framework.debug.DebugProvider" + android:authorities="com.android.spa.gallery.debug" android:enabled="true" android:exported="false"> </provider> diff --git a/packages/SettingsLib/Spa/gallery/build.gradle b/packages/SettingsLib/Spa/gallery/build.gradle index 551a0b107e3a..c1ce7d96702d 100644 --- a/packages/SettingsLib/Spa/gallery/build.gradle +++ b/packages/SettingsLib/Spa/gallery/build.gradle @@ -21,12 +21,12 @@ plugins { android { namespace 'com.android.settingslib.spa.gallery' - compileSdk 33 + compileSdk spa_target_sdk defaultConfig { applicationId "com.android.settingslib.spa.gallery" minSdk spa_min_sdk - targetSdk 33 + targetSdk spa_target_sdk versionCode 1 versionName "1.0" } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GallerySpaEnvironment.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GallerySpaEnvironment.kt index acb22dac9854..4af25893ea37 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GallerySpaEnvironment.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GallerySpaEnvironment.kt @@ -25,6 +25,7 @@ import com.android.settingslib.spa.gallery.home.HomePageProvider import com.android.settingslib.spa.gallery.page.ArgumentPageProvider import com.android.settingslib.spa.gallery.page.FooterPageProvider import com.android.settingslib.spa.gallery.page.IllustrationPageProvider +import com.android.settingslib.spa.gallery.page.ProgressBarPageProvider import com.android.settingslib.spa.gallery.page.SettingsPagerPageProvider import com.android.settingslib.spa.gallery.page.SliderPageProvider import com.android.settingslib.spa.gallery.preference.MainSwitchPreferencePageProvider @@ -66,6 +67,7 @@ object GallerySpaEnvironment : SpaEnvironment() { IllustrationPageProvider, CategoryPageProvider, ActionButtonPageProvider, + ProgressBarPageProvider, ), rootPages = listOf( HomePageProvider.createSettingsPage(), diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt index e40775a95813..7fd49db93748 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/home/HomePage.kt @@ -31,6 +31,7 @@ import com.android.settingslib.spa.gallery.page.ArgumentPageModel import com.android.settingslib.spa.gallery.page.ArgumentPageProvider import com.android.settingslib.spa.gallery.page.FooterPageProvider import com.android.settingslib.spa.gallery.page.IllustrationPageProvider +import com.android.settingslib.spa.gallery.page.ProgressBarPageProvider import com.android.settingslib.spa.gallery.page.SettingsPagerPageProvider import com.android.settingslib.spa.gallery.page.SliderPageProvider import com.android.settingslib.spa.gallery.preference.PreferenceMainPageProvider @@ -54,6 +55,7 @@ object HomePageProvider : SettingsPageProvider { IllustrationPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), CategoryPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), ActionButtonPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), + ProgressBarPageProvider.buildInjectEntry().setLink(fromPage = owner).build(), ) } diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ProgressBarPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ProgressBarPage.kt new file mode 100644 index 000000000000..dc45df4a0374 --- /dev/null +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/ProgressBarPage.kt @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.gallery.page + +import android.os.Bundle +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Delete +import androidx.compose.material.icons.outlined.SystemUpdate +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.android.settingslib.spa.framework.common.SettingsEntryBuilder +import com.android.settingslib.spa.framework.common.SettingsPage +import com.android.settingslib.spa.framework.common.SettingsPageProvider +import com.android.settingslib.spa.framework.compose.navigator +import com.android.settingslib.spa.framework.theme.SettingsTheme +import com.android.settingslib.spa.widget.preference.Preference +import com.android.settingslib.spa.widget.preference.PreferenceModel +import com.android.settingslib.spa.widget.preference.ProgressBarPreference +import com.android.settingslib.spa.widget.preference.ProgressBarPreferenceModel +import com.android.settingslib.spa.widget.preference.ProgressBarWithDataPreference +import com.android.settingslib.spa.widget.scaffold.RegularScaffold +import com.android.settingslib.spa.widget.ui.CircularLoadingBar +import com.android.settingslib.spa.widget.ui.CircularProgressBar +import com.android.settingslib.spa.widget.ui.LinearLoadingBar +import kotlinx.coroutines.delay + +private const val TITLE = "Sample ProgressBar" + +object ProgressBarPageProvider : SettingsPageProvider { + override val name = "ProgressBar" + + fun buildInjectEntry(): SettingsEntryBuilder { + return SettingsEntryBuilder.createInject(owner = SettingsPage.create(name)) + .setIsAllowSearch(true) + .setUiLayoutFn { + Preference(object : PreferenceModel { + override val title = TITLE + override val onClick = navigator(name) + }) + } + } + + @Composable + override fun Page(arguments: Bundle?) { + // Mocks a loading time of 2 seconds. + var loading by remember { mutableStateOf(true) } + LaunchedEffect(Unit) { + delay(2000) + loading = false + } + + RegularScaffold(title = TITLE) { + // Auto update the progress and finally jump tp 0.4f. + var progress by remember { mutableStateOf(0f) } + LaunchedEffect(Unit) { + delay(2000) + while (progress < 1f) { + delay(100) + progress += 0.01f + } + delay(500) + progress = 0.4f + } + + // Show as a placeholder for progress bar + LargeProgressBar(progress) + // The remaining information only shows after loading complete. + if (!loading) { + SimpleProgressBar() + ProgressBarWithData() + CircularProgressBar(progress = progress, radius = 160f) + } + } + + // Add loading bar examples, running for 2 seconds. + LinearLoadingBar(isLoading = loading, yOffset = 64.dp) + CircularLoadingBar(isLoading = loading) + } +} + +@Composable +private fun LargeProgressBar(progress: Float) { + ProgressBarPreference(object : ProgressBarPreferenceModel { + override val title = "Large Progress Bar" + override val progress = progress + override val height = 20f + }) +} + +@Composable +private fun SimpleProgressBar() { + ProgressBarPreference(object : ProgressBarPreferenceModel { + override val title = "Simple Progress Bar" + override val progress = 0.2f + override val icon = Icons.Outlined.SystemUpdate + }) +} + +@Composable +private fun ProgressBarWithData() { + ProgressBarWithDataPreference(model = object : ProgressBarPreferenceModel { + override val title = "Progress Bar with Data" + override val progress = 0.2f + override val icon = Icons.Outlined.Delete + }, data = "25G") +} + +@Preview(showBackground = true) +@Composable +private fun ProgressBarPagePreview() { + SettingsTheme { + ProgressBarPageProvider.Page(null) + } +} diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt index 0f95bf6f32c7..7567c6daf996 100644 --- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt +++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SliderPage.kt @@ -33,8 +33,8 @@ import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SettingsPageProvider import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.theme.SettingsTheme -import com.android.settingslib.spa.widget.SettingsSlider -import com.android.settingslib.spa.widget.SettingsSliderModel +import com.android.settingslib.spa.widget.preference.SliderPreference +import com.android.settingslib.spa.widget.preference.SliderPreferenceModel import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.scaffold.RegularScaffold @@ -51,7 +51,7 @@ object SliderPageProvider : SettingsPageProvider { SettingsEntryBuilder.create("Simple Slider", owner) .setIsAllowSearch(true) .setUiLayoutFn { - SettingsSlider(object : SettingsSliderModel { + SliderPreference(object : SliderPreferenceModel { override val title = "Simple Slider" override val initValue = 40 }) @@ -61,7 +61,7 @@ object SliderPageProvider : SettingsPageProvider { SettingsEntryBuilder.create("Slider with icon", owner) .setIsAllowSearch(true) .setUiLayoutFn { - SettingsSlider(object : SettingsSliderModel { + SliderPreference(object : SliderPreferenceModel { override val title = "Slider with icon" override val initValue = 30 override val onValueChangeFinished = { @@ -78,7 +78,7 @@ object SliderPageProvider : SettingsPageProvider { val initValue = 0 var icon by remember { mutableStateOf(Icons.Outlined.MusicOff) } var sliderPosition by remember { mutableStateOf(initValue) } - SettingsSlider(object : SettingsSliderModel { + SliderPreference(object : SliderPreferenceModel { override val title = "Slider with changeable icon" override val initValue = initValue override val onValueChange = { it: Int -> @@ -96,7 +96,7 @@ object SliderPageProvider : SettingsPageProvider { SettingsEntryBuilder.create("Slider with steps", owner) .setIsAllowSearch(true) .setUiLayoutFn { - SettingsSlider(object : SettingsSliderModel { + SliderPreference(object : SliderPreferenceModel { override val title = "Slider with steps" override val initValue = 2 override val valueRange = 1..5 diff --git a/packages/SettingsLib/Spa/spa/AndroidManifest.xml b/packages/SettingsLib/Spa/spa/AndroidManifest.xml index 410bcdb36782..62800bd34217 100644 --- a/packages/SettingsLib/Spa/spa/AndroidManifest.xml +++ b/packages/SettingsLib/Spa/spa/AndroidManifest.xml @@ -14,4 +14,7 @@ limitations under the License. --> -<manifest package="com.android.settingslib.spa" /> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.settingslib.spa"> + <uses-sdk android:minSdkVersion="21"/> +</manifest> diff --git a/packages/SettingsLib/Spa/spa/build.gradle b/packages/SettingsLib/Spa/spa/build.gradle index 7e05e75804a7..c5874113ef32 100644 --- a/packages/SettingsLib/Spa/spa/build.gradle +++ b/packages/SettingsLib/Spa/spa/build.gradle @@ -21,11 +21,11 @@ plugins { android { namespace 'com.android.settingslib.spa' - compileSdk 33 + compileSdk spa_target_sdk defaultConfig { minSdk spa_min_sdk - targetSdk 33 + targetSdk spa_target_sdk } sourceSets { diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/EntryProvider.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/EntryProvider.kt index 532f63b67c5d..d6317085e4f9 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/EntryProvider.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/EntryProvider.kt @@ -16,21 +16,22 @@ package com.android.settingslib.spa.framework -import android.content.ComponentName import android.content.ContentProvider import android.content.ContentValues import android.content.Context import android.content.Intent -import android.content.Intent.URI_INTENT_SCHEME import android.content.UriMatcher import android.content.pm.ProviderInfo import android.database.Cursor import android.database.MatrixCursor import android.net.Uri import android.util.Log +import com.android.settingslib.spa.framework.common.ColumnEnum +import com.android.settingslib.spa.framework.common.QueryEnum import com.android.settingslib.spa.framework.common.SettingsEntry -import com.android.settingslib.spa.framework.common.SettingsPage import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory +import com.android.settingslib.spa.framework.common.addUri +import com.android.settingslib.spa.framework.common.getColumns private const val TAG = "EntryProvider" @@ -39,117 +40,15 @@ private const val TAG = "EntryProvider" * One can query the provider result by: * $ adb shell content query --uri content://<AuthorityPath>/<QueryPath> * For gallery, AuthorityPath = com.android.spa.gallery.provider - * For SettingsGoogle, AuthorityPath = com.android.settings.spa.provider + * For Settings, AuthorityPath = com.android.settings.spa.provider * Some examples: - * $ adb shell content query --uri content://<AuthorityPath>/page_debug - * $ adb shell content query --uri content://<AuthorityPath>/entry_debug - * $ adb shell content query --uri content://<AuthorityPath>/page_info - * $ adb shell content query --uri content://<AuthorityPath>/entry_info * $ adb shell content query --uri content://<AuthorityPath>/search_sitemap * $ adb shell content query --uri content://<AuthorityPath>/search_static * $ adb shell content query --uri content://<AuthorityPath>/search_dynamic */ open class EntryProvider : ContentProvider() { private val spaEnvironment get() = SpaEnvironmentFactory.instance - - /** - * Enum to define all column names in provider. - */ - enum class ColumnEnum(val id: String) { - // Columns related to page - PAGE_ID("pageId"), - PAGE_NAME("pageName"), - PAGE_ROUTE("pageRoute"), - PAGE_INTENT_URI("pageIntent"), - PAGE_ENTRY_COUNT("entryCount"), - HAS_RUNTIME_PARAM("hasRuntimeParam"), - PAGE_START_ADB("pageStartAdb"), - - // Columns related to entry - ENTRY_ID("entryId"), - ENTRY_NAME("entryName"), - ENTRY_ROUTE("entryRoute"), - ENTRY_INTENT_URI("entryIntent"), - ENTRY_HIERARCHY_PATH("entryPath"), - ENTRY_START_ADB("entryStartAdb"), - - // Columns related to search - ENTRY_TITLE("entryTitle"), - ENTRY_SEARCH_KEYWORD("entrySearchKw"), - } - - /** - * Enum to define all queries supported in the provider. - */ - enum class QueryEnum( - val queryPath: String, - val queryMatchCode: Int, - val columnNames: List<ColumnEnum> - ) { - // For debug - PAGE_DEBUG_QUERY( - "page_debug", 1, - listOf(ColumnEnum.PAGE_START_ADB) - ), - ENTRY_DEBUG_QUERY( - "entry_debug", 2, - listOf(ColumnEnum.ENTRY_START_ADB) - ), - - // page related queries. - PAGE_INFO_QUERY( - "page_info", 100, - listOf( - ColumnEnum.PAGE_ID, - ColumnEnum.PAGE_NAME, - ColumnEnum.PAGE_ROUTE, - ColumnEnum.PAGE_INTENT_URI, - ColumnEnum.PAGE_ENTRY_COUNT, - ColumnEnum.HAS_RUNTIME_PARAM, - ) - ), - - // entry related queries - ENTRY_INFO_QUERY( - "entry_info", 200, - listOf( - ColumnEnum.ENTRY_ID, - ColumnEnum.ENTRY_NAME, - ColumnEnum.ENTRY_ROUTE, - ColumnEnum.ENTRY_INTENT_URI, - ) - ), - - // Search related queries - SEARCH_SITEMAP_QUERY( - "search_sitemap", 300, - listOf( - ColumnEnum.ENTRY_ID, - ColumnEnum.ENTRY_HIERARCHY_PATH, - ) - ), - SEARCH_STATIC_DATA_QUERY( - "search_static", 301, - listOf( - ColumnEnum.ENTRY_ID, - ColumnEnum.ENTRY_TITLE, - ColumnEnum.ENTRY_SEARCH_KEYWORD, - ) - ), - SEARCH_DYNAMIC_DATA_QUERY( - "search_dynamic", 302, - listOf( - ColumnEnum.ENTRY_ID, - ColumnEnum.ENTRY_TITLE, - ColumnEnum.ENTRY_SEARCH_KEYWORD, - ) - ), - } - private val uriMatcher = UriMatcher(UriMatcher.NO_MATCH) - private fun addUri(authority: String, query: QueryEnum) { - uriMatcher.addURI(authority, query.queryPath, query.queryMatchCode) - } override fun delete(uri: Uri, selection: String?, selectionArgs: Array<String>?): Int { TODO("Implement this to handle requests to delete one or more rows") @@ -182,13 +81,9 @@ open class EntryProvider : ContentProvider() { override fun attachInfo(context: Context?, info: ProviderInfo?) { if (info != null) { - addUri(info.authority, QueryEnum.PAGE_DEBUG_QUERY) - addUri(info.authority, QueryEnum.ENTRY_DEBUG_QUERY) - addUri(info.authority, QueryEnum.PAGE_INFO_QUERY) - addUri(info.authority, QueryEnum.ENTRY_INFO_QUERY) - addUri(info.authority, QueryEnum.SEARCH_SITEMAP_QUERY) - addUri(info.authority, QueryEnum.SEARCH_STATIC_DATA_QUERY) - addUri(info.authority, QueryEnum.SEARCH_DYNAMIC_DATA_QUERY) + QueryEnum.SEARCH_SITEMAP_QUERY.addUri(uriMatcher, info.authority) + QueryEnum.SEARCH_STATIC_DATA_QUERY.addUri(uriMatcher, info.authority) + QueryEnum.SEARCH_DYNAMIC_DATA_QUERY.addUri(uriMatcher, info.authority) } super.attachInfo(context, info) } @@ -202,10 +97,6 @@ open class EntryProvider : ContentProvider() { ): Cursor? { return try { when (uriMatcher.match(uri)) { - QueryEnum.PAGE_DEBUG_QUERY.queryMatchCode -> queryPageDebug() - QueryEnum.ENTRY_DEBUG_QUERY.queryMatchCode -> queryEntryDebug() - QueryEnum.PAGE_INFO_QUERY.queryMatchCode -> queryPageInfo() - QueryEnum.ENTRY_INFO_QUERY.queryMatchCode -> queryEntryInfo() QueryEnum.SEARCH_SITEMAP_QUERY.queryMatchCode -> querySearchSitemap() QueryEnum.SEARCH_STATIC_DATA_QUERY.queryMatchCode -> querySearchStaticData() QueryEnum.SEARCH_DYNAMIC_DATA_QUERY.queryMatchCode -> querySearchDynamicData() @@ -219,73 +110,18 @@ open class EntryProvider : ContentProvider() { } } - private fun queryPageDebug(): Cursor { - val entryRepository by spaEnvironment.entryRepository - val cursor = MatrixCursor(QueryEnum.PAGE_DEBUG_QUERY.getColumns()) - for (pageWithEntry in entryRepository.getAllPageWithEntry()) { - val command = createBrowsePageAdbCommand(pageWithEntry.page) - if (command != null) { - cursor.newRow().add(ColumnEnum.PAGE_START_ADB.id, command) - } - } - return cursor - } - - private fun queryEntryDebug(): Cursor { - val entryRepository by spaEnvironment.entryRepository - val cursor = MatrixCursor(QueryEnum.ENTRY_DEBUG_QUERY.getColumns()) - for (entry in entryRepository.getAllEntries()) { - val command = createBrowsePageAdbCommand(entry.containerPage(), entry.id) - if (command != null) { - cursor.newRow().add(ColumnEnum.ENTRY_START_ADB.id, command) - } - } - return cursor - } - - private fun queryPageInfo(): Cursor { - val entryRepository by spaEnvironment.entryRepository - val cursor = MatrixCursor(QueryEnum.PAGE_INFO_QUERY.getColumns()) - for (pageWithEntry in entryRepository.getAllPageWithEntry()) { - val page = pageWithEntry.page - cursor.newRow() - .add(ColumnEnum.PAGE_ID.id, page.id) - .add(ColumnEnum.PAGE_NAME.id, page.displayName) - .add(ColumnEnum.PAGE_ROUTE.id, page.buildRoute()) - .add(ColumnEnum.PAGE_ENTRY_COUNT.id, pageWithEntry.entries.size) - .add(ColumnEnum.HAS_RUNTIME_PARAM.id, if (page.hasRuntimeParam()) 1 else 0) - .add( - ColumnEnum.PAGE_INTENT_URI.id, - createBrowsePageIntent(page).toUri(URI_INTENT_SCHEME) - ) - } - return cursor - } - - private fun queryEntryInfo(): Cursor { - val entryRepository by spaEnvironment.entryRepository - val cursor = MatrixCursor(QueryEnum.ENTRY_INFO_QUERY.getColumns()) - for (entry in entryRepository.getAllEntries()) { - cursor.newRow() - .add(ColumnEnum.ENTRY_ID.id, entry.id) - .add(ColumnEnum.ENTRY_NAME.id, entry.displayName) - .add(ColumnEnum.ENTRY_ROUTE.id, entry.containerPage().buildRoute()) - .add( - ColumnEnum.ENTRY_INTENT_URI.id, - createBrowsePageIntent(entry.containerPage(), entry.id).toUri(URI_INTENT_SCHEME) - ) - } - return cursor - } - private fun querySearchSitemap(): Cursor { val entryRepository by spaEnvironment.entryRepository val cursor = MatrixCursor(QueryEnum.SEARCH_SITEMAP_QUERY.getColumns()) for (entry in entryRepository.getAllEntries()) { if (!entry.isAllowSearch) continue + val intent = entry.containerPage() + .createBrowseIntent(context, spaEnvironment.browseActivityClass, entry.id) + ?: Intent() cursor.newRow() .add(ColumnEnum.ENTRY_ID.id, entry.id) .add(ColumnEnum.ENTRY_HIERARCHY_PATH.id, entryRepository.getEntryPath(entry.id)) + .add(ColumnEnum.ENTRY_INTENT_URI.id, intent.toUri(Intent.URI_INTENT_SCHEME)) } return cursor } @@ -321,54 +157,4 @@ open class EntryProvider : ContentProvider() { searchData?.keyword ?: emptyList<String>() ) } - - private fun createBrowsePageIntent(page: SettingsPage, entryId: String? = null): Intent { - if (!isPageBrowsable(page)) return Intent() - return Intent().setComponent(ComponentName(context!!, spaEnvironment.browseActivityClass!!)) - .apply { - putExtra(BrowseActivity.KEY_DESTINATION, page.buildRoute()) - if (entryId != null) { - putExtra(BrowseActivity.KEY_HIGHLIGHT_ENTRY, entryId) - } - } - } - - private fun createBrowsePageAdbCommand(page: SettingsPage, entryId: String? = null): String? { - if (!isPageBrowsable(page)) return null - val packageName = context!!.packageName - val activityName = spaEnvironment.browseActivityClass!!.name.replace(packageName, "") - val destinationParam = " -e ${BrowseActivity.KEY_DESTINATION} ${page.buildRoute()}" - val highlightParam = - if (entryId != null) " -e ${BrowseActivity.KEY_HIGHLIGHT_ENTRY} $entryId" else "" - return "adb shell am start -n $packageName/$activityName$destinationParam$highlightParam" - } - - private fun isPageBrowsable(page: SettingsPage): Boolean { - return context != null && - spaEnvironment.browseActivityClass != null && - !page.hasRuntimeParam() - } -} - -fun EntryProvider.QueryEnum.getColumns(): Array<String> { - return columnNames.map { it.id }.toTypedArray() -} - -fun EntryProvider.QueryEnum.getIndex(name: EntryProvider.ColumnEnum): Int { - return columnNames.indexOf(name) -} - -fun Cursor.getString(query: EntryProvider.QueryEnum, columnName: EntryProvider.ColumnEnum): String { - return this.getString(query.getIndex(columnName)) -} - -fun Cursor.getInt(query: EntryProvider.QueryEnum, columnName: EntryProvider.ColumnEnum): Int { - return this.getInt(query.getIndex(columnName)) -} - -fun Cursor.getBoolean( - query: EntryProvider.QueryEnum, - columnName: EntryProvider.ColumnEnum -): Boolean { - return this.getInt(query.getIndex(columnName)) == 1 } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/ProviderColumn.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/ProviderColumn.kt new file mode 100644 index 000000000000..0707429505c8 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/ProviderColumn.kt @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.framework.common + +import android.content.UriMatcher + +/** + * Enum to define all column names in provider. + */ +enum class ColumnEnum(val id: String) { + // Columns related to page + PAGE_ID("pageId"), + PAGE_NAME("pageName"), + PAGE_ROUTE("pageRoute"), + PAGE_INTENT_URI("pageIntent"), + PAGE_ENTRY_COUNT("entryCount"), + HAS_RUNTIME_PARAM("hasRuntimeParam"), + PAGE_START_ADB("pageStartAdb"), + + // Columns related to entry + ENTRY_ID("entryId"), + ENTRY_NAME("entryName"), + ENTRY_ROUTE("entryRoute"), + ENTRY_INTENT_URI("entryIntent"), + ENTRY_HIERARCHY_PATH("entryPath"), + ENTRY_START_ADB("entryStartAdb"), + + // Columns related to search + ENTRY_TITLE("entryTitle"), + ENTRY_SEARCH_KEYWORD("entrySearchKw"), +} + +/** + * Enum to define all queries supported in the provider. + */ +enum class QueryEnum( + val queryPath: String, + val queryMatchCode: Int, + val columnNames: List<ColumnEnum> +) { + // For debug + PAGE_DEBUG_QUERY( + "page_debug", 1, + listOf(ColumnEnum.PAGE_START_ADB) + ), + ENTRY_DEBUG_QUERY( + "entry_debug", 2, + listOf(ColumnEnum.ENTRY_START_ADB) + ), + + // page related queries. + PAGE_INFO_QUERY( + "page_info", 100, + listOf( + ColumnEnum.PAGE_ID, + ColumnEnum.PAGE_NAME, + ColumnEnum.PAGE_ROUTE, + ColumnEnum.PAGE_INTENT_URI, + ColumnEnum.PAGE_ENTRY_COUNT, + ColumnEnum.HAS_RUNTIME_PARAM, + ) + ), + + // entry related queries + ENTRY_INFO_QUERY( + "entry_info", 200, + listOf( + ColumnEnum.ENTRY_ID, + ColumnEnum.ENTRY_NAME, + ColumnEnum.ENTRY_ROUTE, + ColumnEnum.ENTRY_INTENT_URI, + ) + ), + + // Search related queries + SEARCH_SITEMAP_QUERY( + "search_sitemap", 300, + listOf( + ColumnEnum.ENTRY_ID, + ColumnEnum.ENTRY_HIERARCHY_PATH, + ColumnEnum.ENTRY_INTENT_URI, + ) + ), + SEARCH_STATIC_DATA_QUERY( + "search_static", 301, + listOf( + ColumnEnum.ENTRY_ID, + ColumnEnum.ENTRY_TITLE, + ColumnEnum.ENTRY_SEARCH_KEYWORD, + ) + ), + SEARCH_DYNAMIC_DATA_QUERY( + "search_dynamic", 302, + listOf( + ColumnEnum.ENTRY_ID, + ColumnEnum.ENTRY_TITLE, + ColumnEnum.ENTRY_SEARCH_KEYWORD, + ) + ), +} + +internal fun QueryEnum.getColumns(): Array<String> { + return columnNames.map { it.id }.toTypedArray() +} + +internal fun QueryEnum.getIndex(name: ColumnEnum): Int { + return columnNames.indexOf(name) +} + +internal fun QueryEnum.addUri(uriMatcher: UriMatcher, authority: String) { + uriMatcher.addURI(authority, queryPath, queryMatchCode) +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsEntry.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsEntry.kt index a3aeda6f086c..fb42f01b14f8 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsEntry.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsEntry.kt @@ -17,15 +17,11 @@ package com.android.settingslib.spa.framework.common import android.os.Bundle -import android.widget.Toast import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ProvidedValue import androidx.compose.runtime.compositionLocalOf -import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.ui.platform.LocalContext import com.android.settingslib.spa.framework.compose.LocalNavController const val INJECT_ENTRY_NAME = "INJECT" @@ -41,7 +37,7 @@ interface EntryData { } val LocalEntryDataProvider = - compositionLocalOf<EntryData> { object : EntryData{} } + compositionLocalOf<EntryData> { object : EntryData {} } /** * Defines data of a Settings entry. @@ -126,17 +122,6 @@ data class SettingsEntry( @Composable fun UiLayout(runtimeArguments: Bundle? = null) { - val context = LocalContext.current - val controller = LocalNavController.current - val highlight = rememberSaveable { - mutableStateOf(controller.highlightEntryId == id) - } - if (highlight.value) { - highlight.value = false - // TODO: Add highlight entry logic - Toast.makeText(context, "entry $id highlighted", Toast.LENGTH_SHORT).show() - } - CompositionLocalProvider(provideLocalEntryData()) { uiLayoutImpl(fullArgument(runtimeArguments)) } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPage.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPage.kt index 8f63c47b1a9b..07df96e778c4 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPage.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/common/SettingsPage.kt @@ -16,8 +16,13 @@ package com.android.settingslib.spa.framework.common +import android.app.Activity +import android.content.ComponentName +import android.content.Context +import android.content.Intent import android.os.Bundle import androidx.navigation.NamedNavArgument +import com.android.settingslib.spa.framework.BrowseActivity import com.android.settingslib.spa.framework.util.isRuntimeParam import com.android.settingslib.spa.framework.util.navLink import com.android.settingslib.spa.framework.util.normalize @@ -111,6 +116,41 @@ data class SettingsPage( details = formatDisplayTitle() ) } + + fun createBrowseIntent( + context: Context?, + browseActivityClass: Class<out Activity>?, + entryId: String? = null + ): Intent? { + if (!isBrowsable(context, browseActivityClass)) return null + return Intent().setComponent(ComponentName(context!!, browseActivityClass!!)) + .apply { + putExtra(BrowseActivity.KEY_DESTINATION, buildRoute()) + if (entryId != null) { + putExtra(BrowseActivity.KEY_HIGHLIGHT_ENTRY, entryId) + } + } + } + + fun createBrowseAdbCommand( + context: Context?, + browseActivityClass: Class<out Activity>?, + entryId: String? = null + ): String? { + if (!isBrowsable(context, browseActivityClass)) return null + val packageName = context!!.packageName + val activityName = browseActivityClass!!.name.replace(packageName, "") + val destinationParam = " -e ${BrowseActivity.KEY_DESTINATION} ${buildRoute()}" + val highlightParam = + if (entryId != null) " -e ${BrowseActivity.KEY_HIGHLIGHT_ENTRY} $entryId" else "" + return "adb shell am start -n $packageName/$activityName$destinationParam$highlightParam" + } + + fun isBrowsable(context: Context?, browseActivityClass: Class<out Activity>?): Boolean { + return context != null && + browseActivityClass != null && + !hasRuntimeParam() + } } fun String.toHashId(): String { diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/TimeMeasurer.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/TimeMeasurer.kt new file mode 100644 index 000000000000..b23f4e083a1e --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/TimeMeasurer.kt @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalTime::class) + +package com.android.settingslib.spa.framework.compose + +import android.util.Log +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import kotlin.time.ExperimentalTime +import kotlin.time.TimeSource + +const val ENABLE_MEASURE_TIME = false + +interface TimeMeasurer { + fun log(msg: String) {} + fun logFirst(msg: String) {} + + companion object { + private object EmptyTimeMeasurer : TimeMeasurer + + @Composable + fun rememberTimeMeasurer(tag: String): TimeMeasurer = remember { + if (ENABLE_MEASURE_TIME) TimeMeasurerImpl(tag) else EmptyTimeMeasurer + } + } +} + +private class TimeMeasurerImpl(private val tag: String) : TimeMeasurer { + private val mark = TimeSource.Monotonic.markNow() + private val msgLogged = mutableSetOf<String>() + + override fun log(msg: String) { + Log.d(tag, "Timer $msg: ${mark.elapsedNow()}") + } + + override fun logFirst(msg: String) { + if (msgLogged.add(msg)) { + Log.d(tag, "Timer $msg: ${mark.elapsedNow()}") + } + } +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/DebugActivity.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/debug/DebugActivity.kt index 6f968180e243..301508074f30 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/DebugActivity.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/debug/DebugActivity.kt @@ -14,12 +14,9 @@ * limitations under the License. */ -package com.android.settingslib.spa.framework +package com.android.settingslib.spa.framework.debug -import android.content.Intent -import android.net.Uri import android.os.Bundle -import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text @@ -33,8 +30,6 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument import com.android.settingslib.spa.R -import com.android.settingslib.spa.framework.BrowseActivity.Companion.KEY_DESTINATION -import com.android.settingslib.spa.framework.BrowseActivity.Companion.KEY_HIGHLIGHT_ENTRY import com.android.settingslib.spa.framework.common.LogCategory import com.android.settingslib.spa.framework.common.SettingsEntry import com.android.settingslib.spa.framework.common.SettingsPage @@ -60,11 +55,10 @@ private const val PARAM_NAME_ENTRY_ID = "eid" /** * The Debug Activity to display all Spa Pages & Entries. * One can open the debug activity by: - * $ adb shell am start -n <Activity> - * For gallery, Activity = com.android.settingslib.spa.gallery/.GalleryDebugActivity - * For SettingsGoogle, Activity = com.android.settings/.spa.SpaDebugActivity + * $ adb shell am start -n <Package>/com.android.settingslib.spa.framework.debug.DebugActivity + * For gallery, Package = com.android.settingslib.spa.gallery */ -open class DebugActivity : ComponentActivity() { +class DebugActivity : ComponentActivity() { private val spaEnvironment get() = SpaEnvironmentFactory.instance override fun onCreate(savedInstanceState: Bundle?) { @@ -79,30 +73,6 @@ open class DebugActivity : ComponentActivity() { } } - private fun displayDebugMessage() { - val entryProviderAuthorities = spaEnvironment.entryProviderAuthorities ?: return - - try { - val query = EntryProvider.QueryEnum.PAGE_INFO_QUERY - contentResolver.query( - Uri.parse("content://$entryProviderAuthorities/${query.queryPath}"), - null, null, null - ).use { cursor -> - while (cursor != null && cursor.moveToNext()) { - val route = cursor.getString(query, EntryProvider.ColumnEnum.PAGE_ROUTE) - val entryCount = cursor.getInt(query, EntryProvider.ColumnEnum.PAGE_ENTRY_COUNT) - val hasRuntimeParam = - cursor.getBoolean(query, EntryProvider.ColumnEnum.HAS_RUNTIME_PARAM) - val message = "Page Info: $route ($entryCount) " + - (if (hasRuntimeParam) "with" else "no") + "-runtime-params" - spaEnvironment.logger.message(TAG, message, category = LogCategory.FRAMEWORK) - } - } - } catch (e: Exception) { - Log.e(TAG, "Provider querying exception:", e) - } - } - @Composable private fun MainContent() { val navController = rememberNavController() @@ -141,11 +111,6 @@ open class DebugActivity : ComponentActivity() { override val title = "List All Entries (${allEntry.size})" override val onClick = navigator(route = ROUTE_All_ENTRIES) }) - Preference(object : PreferenceModel { - override val title = "Query EntryProvider" - override val enabled = isEntryProviderAvailable().toState() - override val onClick = { displayDebugMessage() } - }) } } @@ -177,6 +142,7 @@ open class DebugActivity : ComponentActivity() { @Composable fun OnePage(arguments: Bundle?) { + val context = LocalContext.current val entryRepository by spaEnvironment.entryRepository val id = arguments!!.getString(PARAM_NAME_PAGE_ID, "") val pageWithEntry = entryRepository.getPageWithEntry(id)!! @@ -186,7 +152,9 @@ open class DebugActivity : ComponentActivity() { Text(text = "Entry size: ${pageWithEntry.entries.size}") Preference(model = object : PreferenceModel { override val title = "open page" - override val enabled = isPageClickable(pageWithEntry.page).toState() + override val enabled = + pageWithEntry.page.isBrowsable(context, spaEnvironment.browseActivityClass) + .toState() override val onClick = openPage(pageWithEntry.page) }) EntryList(pageWithEntry.entries) @@ -195,6 +163,7 @@ open class DebugActivity : ComponentActivity() { @Composable fun OneEntry(arguments: Bundle?) { + val context = LocalContext.current val entryRepository by spaEnvironment.entryRepository val id = arguments!!.getString(PARAM_NAME_ENTRY_ID, "") val entry = entryRepository.getEntry(id)!! @@ -202,7 +171,9 @@ open class DebugActivity : ComponentActivity() { RegularScaffold(title = "Entry - ${entry.displayTitle()}") { Preference(model = object : PreferenceModel { override val title = "open entry" - override val enabled = isEntryClickable(entry).toState() + override val enabled = + entry.containerPage().isBrowsable(context, spaEnvironment.browseActivityClass) + .toState() override val onClick = openEntry(entry) }) Text(text = entryContent) @@ -223,12 +194,10 @@ open class DebugActivity : ComponentActivity() { @Composable private fun openPage(page: SettingsPage): (() -> Unit)? { - if (!isPageClickable(page)) return null val context = LocalContext.current + val intent = + page.createBrowseIntent(context, spaEnvironment.browseActivityClass) ?: return null val route = page.buildRoute() - val intent = Intent(context, spaEnvironment.browseActivityClass).apply { - putExtra(KEY_DESTINATION, route) - } return { spaEnvironment.logger.message( TAG, "OpenPage: $route", category = LogCategory.FRAMEWORK @@ -239,13 +208,11 @@ open class DebugActivity : ComponentActivity() { @Composable private fun openEntry(entry: SettingsEntry): (() -> Unit)? { - if (!isEntryClickable(entry)) return null val context = LocalContext.current + val intent = entry.containerPage() + .createBrowseIntent(context, spaEnvironment.browseActivityClass, entry.id) + ?: return null val route = entry.containerPage().buildRoute() - val intent = Intent(context, spaEnvironment.browseActivityClass).apply { - putExtra(KEY_DESTINATION, route) - putExtra(KEY_HIGHLIGHT_ENTRY, entry.id) - } return { spaEnvironment.logger.message( TAG, "OpenEntry: $route", category = LogCategory.FRAMEWORK @@ -253,17 +220,9 @@ open class DebugActivity : ComponentActivity() { context.startActivity(intent) } } - - private fun isEntryProviderAvailable(): Boolean { - return spaEnvironment.entryProviderAuthorities != null - } - - private fun isPageClickable(page: SettingsPage): Boolean { - return spaEnvironment.browseActivityClass != null && !page.hasRuntimeParam() - } - - private fun isEntryClickable(entry: SettingsEntry): Boolean { - return spaEnvironment.browseActivityClass != null && - !entry.containerPage().hasRuntimeParam() - } } + +/** + * A blank activity without any page. + */ +class BlankActivity : ComponentActivity() diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/debug/DebugProvider.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/debug/DebugProvider.kt new file mode 100644 index 000000000000..6c271094de9f --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/debug/DebugProvider.kt @@ -0,0 +1,176 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.framework.debug + +import android.content.ContentProvider +import android.content.ContentValues +import android.content.Context +import android.content.Intent +import android.content.Intent.URI_INTENT_SCHEME +import android.content.UriMatcher +import android.content.pm.ProviderInfo +import android.database.Cursor +import android.database.MatrixCursor +import android.net.Uri +import android.util.Log +import com.android.settingslib.spa.framework.common.ColumnEnum +import com.android.settingslib.spa.framework.common.QueryEnum +import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory +import com.android.settingslib.spa.framework.common.addUri +import com.android.settingslib.spa.framework.common.getColumns + +private const val TAG = "DebugProvider" + +/** + * The content provider to return debug data. + * One can query the provider result by: + * $ adb shell content query --uri content://<AuthorityPath>/<QueryPath> + * For gallery, AuthorityPath = com.android.spa.gallery.debug + * Some examples: + * $ adb shell content query --uri content://<AuthorityPath>/page_debug + * $ adb shell content query --uri content://<AuthorityPath>/entry_debug + * $ adb shell content query --uri content://<AuthorityPath>/page_info + * $ adb shell content query --uri content://<AuthorityPath>/entry_info + */ +class DebugProvider : ContentProvider() { + private val spaEnvironment get() = SpaEnvironmentFactory.instance + private val uriMatcher = UriMatcher(UriMatcher.NO_MATCH) + + override fun delete(uri: Uri, selection: String?, selectionArgs: Array<String>?): Int { + TODO("Implement this to handle requests to delete one or more rows") + } + + override fun getType(uri: Uri): String? { + TODO( + "Implement this to handle requests for the MIME type of the data" + + "at the given URI" + ) + } + + override fun insert(uri: Uri, values: ContentValues?): Uri? { + TODO("Implement this to handle requests to insert a new row.") + } + + override fun update( + uri: Uri, + values: ContentValues?, + selection: String?, + selectionArgs: Array<String>? + ): Int { + TODO("Implement this to handle requests to update one or more rows.") + } + + override fun onCreate(): Boolean { + Log.d(TAG, "onCreate") + return true + } + + override fun attachInfo(context: Context?, info: ProviderInfo?) { + if (info != null) { + QueryEnum.PAGE_DEBUG_QUERY.addUri(uriMatcher, info.authority) + QueryEnum.ENTRY_DEBUG_QUERY.addUri(uriMatcher, info.authority) + QueryEnum.PAGE_INFO_QUERY.addUri(uriMatcher, info.authority) + QueryEnum.ENTRY_INFO_QUERY.addUri(uriMatcher, info.authority) + } + super.attachInfo(context, info) + } + + override fun query( + uri: Uri, + projection: Array<String>?, + selection: String?, + selectionArgs: Array<String>?, + sortOrder: String? + ): Cursor? { + return try { + when (uriMatcher.match(uri)) { + QueryEnum.PAGE_DEBUG_QUERY.queryMatchCode -> queryPageDebug() + QueryEnum.ENTRY_DEBUG_QUERY.queryMatchCode -> queryEntryDebug() + QueryEnum.PAGE_INFO_QUERY.queryMatchCode -> queryPageInfo() + QueryEnum.ENTRY_INFO_QUERY.queryMatchCode -> queryEntryInfo() + else -> throw UnsupportedOperationException("Unknown Uri $uri") + } + } catch (e: UnsupportedOperationException) { + throw e + } catch (e: Exception) { + Log.e(TAG, "Provider querying exception:", e) + null + } + } + + private fun queryPageDebug(): Cursor { + val entryRepository by spaEnvironment.entryRepository + val cursor = MatrixCursor(QueryEnum.PAGE_DEBUG_QUERY.getColumns()) + for (pageWithEntry in entryRepository.getAllPageWithEntry()) { + val command = pageWithEntry.page.createBrowseAdbCommand( + context, + spaEnvironment.browseActivityClass + ) + if (command != null) { + cursor.newRow().add(ColumnEnum.PAGE_START_ADB.id, command) + } + } + return cursor + } + + private fun queryEntryDebug(): Cursor { + val entryRepository by spaEnvironment.entryRepository + val cursor = MatrixCursor(QueryEnum.ENTRY_DEBUG_QUERY.getColumns()) + for (entry in entryRepository.getAllEntries()) { + val command = entry.containerPage() + .createBrowseAdbCommand(context, spaEnvironment.browseActivityClass, entry.id) + if (command != null) { + cursor.newRow().add(ColumnEnum.ENTRY_START_ADB.id, command) + } + } + return cursor + } + + private fun queryPageInfo(): Cursor { + val entryRepository by spaEnvironment.entryRepository + val cursor = MatrixCursor(QueryEnum.PAGE_INFO_QUERY.getColumns()) + for (pageWithEntry in entryRepository.getAllPageWithEntry()) { + val page = pageWithEntry.page + val intent = + page.createBrowseIntent(context, spaEnvironment.browseActivityClass) ?: Intent() + cursor.newRow() + .add(ColumnEnum.PAGE_ID.id, page.id) + .add(ColumnEnum.PAGE_NAME.id, page.displayName) + .add(ColumnEnum.PAGE_ROUTE.id, page.buildRoute()) + .add(ColumnEnum.PAGE_ENTRY_COUNT.id, pageWithEntry.entries.size) + .add(ColumnEnum.HAS_RUNTIME_PARAM.id, if (page.hasRuntimeParam()) 1 else 0) + .add(ColumnEnum.PAGE_INTENT_URI.id, intent.toUri(URI_INTENT_SCHEME)) + } + return cursor + } + + private fun queryEntryInfo(): Cursor { + val entryRepository by spaEnvironment.entryRepository + val cursor = MatrixCursor(QueryEnum.ENTRY_INFO_QUERY.getColumns()) + for (entry in entryRepository.getAllEntries()) { + val intent = entry.containerPage() + .createBrowseIntent(context, spaEnvironment.browseActivityClass, entry.id) + ?: Intent() + cursor.newRow() + .add(ColumnEnum.ENTRY_ID.id, entry.id) + .add(ColumnEnum.ENTRY_NAME.id, entry.displayName) + .add(ColumnEnum.ENTRY_ROUTE.id, entry.containerPage().buildRoute()) + .add(ColumnEnum.ENTRY_INTENT_URI.id, intent.toUri(URI_INTENT_SCHEME)) + } + return cursor + } +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/MaterialColors.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/MaterialColors.kt index 3fa8c658e198..52c489324699 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/MaterialColors.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/MaterialColors.kt @@ -44,3 +44,6 @@ internal fun materialColorScheme(isDarkTheme: Boolean): ColorScheme { val ColorScheme.divider: Color get() = onSurface.copy(SettingsOpacity.Divider) + +val ColorScheme.surfaceTone: Color + get() = primary.copy(SettingsOpacity.SurfaceTone) diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsOpacity.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsOpacity.kt index 11af6ce0beab..69ddf01b6170 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsOpacity.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/theme/SettingsOpacity.kt @@ -20,4 +20,5 @@ object SettingsOpacity { const val Full = 1f const val Disabled = 0.38f const val Divider = 0.2f + const val SurfaceTone = 0.14f } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/WidgetLogger.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/WidgetLogger.kt index 6c7432eee16a..8d0a35c371e3 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/WidgetLogger.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/util/WidgetLogger.kt @@ -23,7 +23,7 @@ import com.android.settingslib.spa.framework.common.LogEvent import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory @Composable -fun LogEntryEvent(): (event: LogEvent) -> Unit { +fun logEntryEvent(): (event: LogEvent) -> Unit { val entryId = LocalEntryDataProvider.current.entryId ?: return {} return { SpaEnvironmentFactory.instance.logger.event(entryId, it, category = LogCategory.VIEW) @@ -31,9 +31,9 @@ fun LogEntryEvent(): (event: LogEvent) -> Unit { } @Composable -fun WrapOnClickWithLog(onClick: (() -> Unit)?): (() -> Unit)? { +fun wrapOnClickWithLog(onClick: (() -> Unit)?): (() -> Unit)? { if (onClick == null) return null - val logEvent = LogEntryEvent() + val logEvent = logEntryEvent() return { logEvent(LogEvent.ENTRY_CLICK) onClick() @@ -41,9 +41,9 @@ fun WrapOnClickWithLog(onClick: (() -> Unit)?): (() -> Unit)? { } @Composable -fun WrapOnSwitchWithLog(onSwitch: ((checked: Boolean) -> Unit)?): ((checked: Boolean) -> Unit)? { +fun wrapOnSwitchWithLog(onSwitch: ((checked: Boolean) -> Unit)?): ((checked: Boolean) -> Unit)? { if (onSwitch == null) return null - val logEvent = LogEntryEvent() + val logEvent = logEntryEvent() return { val event = if (it) LogEvent.ENTRY_SWITCH_ON else LogEvent.ENTRY_SWITCH_OFF logEvent(event) diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt index 9a34dbf36735..6135203ec703 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt @@ -72,7 +72,7 @@ internal fun BaseLayout( } @Composable -private fun BaseIcon( +internal fun BaseIcon( icon: @Composable (() -> Unit)?, modifier: Modifier, paddingStart: Dp, diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt index f2fe7ad7635a..db95e23bb52b 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt @@ -28,26 +28,29 @@ import com.android.settingslib.spa.framework.compose.toState 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.util.EntryHighlight @Composable fun MainSwitchPreference(model: SwitchPreferenceModel) { - Surface( - modifier = Modifier.padding(SettingsDimension.itemPaddingEnd), - color = when (model.checked.value) { - true -> MaterialTheme.colorScheme.primaryContainer - else -> MaterialTheme.colorScheme.secondaryContainer - }, - shape = SettingsShape.CornerLarge, - ) { - InternalSwitchPreference( - title = model.title, - checked = model.checked, - changeable = model.changeable, - onCheckedChange = model.onCheckedChange, - paddingStart = 20.dp, - paddingEnd = 20.dp, - paddingVertical = 18.dp, - ) + EntryHighlight { + Surface( + modifier = Modifier.padding(SettingsDimension.itemPaddingEnd), + color = when (model.checked.value) { + true -> MaterialTheme.colorScheme.primaryContainer + else -> MaterialTheme.colorScheme.secondaryContainer + }, + shape = SettingsShape.CornerLarge, + ) { + InternalSwitchPreference( + title = model.title, + checked = model.checked, + changeable = model.changeable, + onCheckedChange = model.onCheckedChange, + paddingStart = 20.dp, + paddingEnd = 20.dp, + paddingVertical = 18.dp, + ) + } } } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt index d1021e2783b8..6ebe6bb9dfa3 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt @@ -26,8 +26,9 @@ import com.android.settingslib.spa.framework.common.EntryMacro import com.android.settingslib.spa.framework.common.EntrySearchData import com.android.settingslib.spa.framework.compose.navigator import com.android.settingslib.spa.framework.compose.stateOf -import com.android.settingslib.spa.framework.util.WrapOnClickWithLog +import com.android.settingslib.spa.framework.util.wrapOnClickWithLog import com.android.settingslib.spa.widget.ui.createSettingsIcon +import com.android.settingslib.spa.widget.util.EntryHighlight data class SimplePreferenceMacro( val title: String, @@ -106,7 +107,7 @@ fun Preference( model: PreferenceModel, singleLineSummary: Boolean = false, ) { - val onClickWithLog = WrapOnClickWithLog(model.onClick) + val onClickWithLog = wrapOnClickWithLog(model.onClick) val modifier = remember(model.enabled.value) { if (onClickWithLog != null) { Modifier.clickable( @@ -115,12 +116,14 @@ fun Preference( ) } else Modifier } - BasePreference( - title = model.title, - summary = model.summary, - singleLineSummary = singleLineSummary, - modifier = modifier, - icon = model.icon, - enabled = model.enabled, - ) + EntryHighlight { + BasePreference( + title = model.title, + summary = model.summary, + singleLineSummary = singleLineSummary, + modifier = modifier, + icon = model.icon, + enabled = model.enabled, + ) + } } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/ProgressBarPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/ProgressBarPreference.kt new file mode 100644 index 000000000000..b8c59ad07cfd --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/ProgressBarPreference.kt @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.widget.preference + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import com.android.settingslib.spa.framework.theme.SettingsDimension +import com.android.settingslib.spa.widget.ui.LinearProgressBar +import com.android.settingslib.spa.widget.ui.SettingsTitle + +/** + * The widget model for [ProgressBarPreference] widget. + */ +interface ProgressBarPreferenceModel { + /** + * The title of this [ProgressBarPreference]. + */ + val title: String + + /** + * The progress fraction of the ProgressBar. Should be float in range [0f, 1f] + */ + val progress: Float + + /** + * The icon image for [ProgressBarPreference]. If not specified, hides the icon by default. + */ + val icon: ImageVector? + get() = null + + /** + * The height of the ProgressBar. + */ + val height: Float + get() = 4f + + /** + * Indicates whether to use rounded corner for the progress bars. + */ + val roundedCorner: Boolean + get() = true +} + +/** + * Progress bar preference widget. + * + * Data is provided through [ProgressBarPreferenceModel]. + */ +@Composable +fun ProgressBarPreference(model: ProgressBarPreferenceModel) { + ProgressBarPreference( + title = model.title, + progress = model.progress, + icon = model.icon, + height = model.height, + roundedCorner = model.roundedCorner, + ) +} + +/** + * Progress bar with data preference widget. + */ +@Composable +fun ProgressBarWithDataPreference(model: ProgressBarPreferenceModel, data: String) { + val icon = model.icon + ProgressBarWithDataPreference( + title = model.title, + data = data, + progress = model.progress, + icon = if (icon != null) ({ + Icon(imageVector = icon, contentDescription = null) + }) else null, + height = model.height, + roundedCorner = model.roundedCorner, + ) +} + +@Composable +internal fun ProgressBarPreference( + title: String, + progress: Float, + icon: ImageVector? = null, + height: Float = 4f, + roundedCorner: Boolean = true, +) { + BaseLayout( + title = title, + subTitle = { + LinearProgressBar(progress, height, roundedCorner) + }, + icon = if (icon != null) ({ + Icon(imageVector = icon, contentDescription = null) + }) else null, + ) +} + + +@Composable +internal fun ProgressBarWithDataPreference( + title: String, + data: String, + progress: Float, + icon: (@Composable () -> Unit)? = null, + height: Float = 4f, + roundedCorner: Boolean = true, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(end = SettingsDimension.itemPaddingEnd), + verticalAlignment = Alignment.CenterVertically, + ) { + BaseIcon(icon, Modifier, SettingsDimension.itemPaddingStart) + TitleWithData( + title = title, + data = data, + subTitle = { + LinearProgressBar(progress, height, roundedCorner) + }, + modifier = Modifier + .weight(1f) + .padding(vertical = SettingsDimension.itemPaddingVertical), + ) + } +} + +@Composable +private fun TitleWithData( + title: String, + data: String, + subTitle: @Composable () -> Unit, + modifier: Modifier +) { + Column(modifier) { + Row { + Box(modifier = Modifier.weight(1f)) { + SettingsTitle(title) + } + Text( + text = data, + color = MaterialTheme.colorScheme.onSurfaceVariant, + style = MaterialTheme.typography.titleMedium, + ) + } + subTitle() + } +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/SettingsSlider.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SliderPreference.kt index 4f77a89577ea..4ee2af0fa1b7 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/SettingsSlider.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SliderPreference.kt @@ -14,14 +14,13 @@ * limitations under the License. */ -package com.android.settingslib.spa.widget +package com.android.settingslib.spa.widget.preference import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.AccessAlarm import androidx.compose.material.icons.outlined.MusicNote import androidx.compose.material.icons.outlined.MusicOff import androidx.compose.material3.Icon -import androidx.compose.material3.Slider import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -32,32 +31,32 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import com.android.settingslib.spa.framework.theme.SettingsTheme -import com.android.settingslib.spa.widget.preference.BaseLayout -import kotlin.math.roundToInt +import com.android.settingslib.spa.widget.ui.SettingsSlider +import com.android.settingslib.spa.widget.util.EntryHighlight /** - * The widget model for [SettingsSlider] widget. + * The widget model for [SliderPreference] widget. */ -interface SettingsSliderModel { +interface SliderPreferenceModel { /** - * The title of this [SettingsSlider]. + * The title of this [SliderPreference]. */ val title: String /** - * The initial position of the [SettingsSlider]. + * The initial position of the [SliderPreference]. */ val initValue: Int /** - * The value range for this [SettingsSlider]. + * The value range for this [SliderPreference]. */ val valueRange: IntRange get() = 0..100 /** * The lambda to be invoked during the value change by dragging or a click. This callback is - * used to get the real time value of the [SettingsSlider]. + * used to get the real time value of the [SliderPreference]. */ val onValueChange: ((value: Int) -> Unit)? get() = null @@ -70,7 +69,7 @@ interface SettingsSliderModel { get() = null /** - * The icon image for [SettingsSlider]. If not specified, the slider hides the icon by default. + * The icon image for [SliderPreference]. If not specified, the slider hides the icon by default. */ val icon: ImageVector? get() = null @@ -89,46 +88,44 @@ interface SettingsSliderModel { /** * Settings slider widget. * - * Data is provided through [SettingsSliderModel]. + * Data is provided through [SliderPreferenceModel]. */ @Composable -fun SettingsSlider(model: SettingsSliderModel) { - SettingsSlider( - title = model.title, - initValue = model.initValue, - valueRange = model.valueRange, - onValueChange = model.onValueChange, - onValueChangeFinished = model.onValueChangeFinished, - icon = model.icon, - showSteps = model.showSteps, - ) +fun SliderPreference(model: SliderPreferenceModel) { + EntryHighlight { + SliderPreference( + title = model.title, + initValue = model.initValue, + valueRange = model.valueRange, + onValueChange = model.onValueChange, + onValueChangeFinished = model.onValueChangeFinished, + icon = model.icon, + showSteps = model.showSteps, + ) + } } @Composable -internal fun SettingsSlider( +internal fun SliderPreference( title: String, initValue: Int, + modifier: Modifier = Modifier, valueRange: IntRange = 0..100, onValueChange: ((value: Int) -> Unit)? = null, onValueChangeFinished: (() -> Unit)? = null, icon: ImageVector? = null, showSteps: Boolean = false, - modifier: Modifier = Modifier, ) { - var sliderPosition by rememberSaveable { mutableStateOf(initValue.toFloat()) } BaseLayout( title = title, subTitle = { - Slider( - value = sliderPosition, - onValueChange = { - sliderPosition = it - onValueChange?.invoke(sliderPosition.roundToInt()) - }, - modifier = modifier, - valueRange = valueRange.first.toFloat()..valueRange.last.toFloat(), - steps = if (showSteps) (valueRange.count() - 2) else 0, - onValueChangeFinished = onValueChangeFinished, + SettingsSlider( + initValue, + modifier, + valueRange, + onValueChange, + onValueChangeFinished, + showSteps ) }, icon = if (icon != null) ({ @@ -139,11 +136,11 @@ internal fun SettingsSlider( @Preview @Composable -private fun SettingsSliderPreview() { +private fun SliderPreferencePreview() { SettingsTheme { val initValue = 30 var sliderPosition by rememberSaveable { mutableStateOf(initValue) } - SettingsSlider( + SliderPreference( title = "Alarm Volume", initValue = 30, onValueChange = { sliderPosition = it }, @@ -157,10 +154,10 @@ private fun SettingsSliderPreview() { @Preview @Composable -private fun SettingsSliderIconChangePreview() { +private fun SliderPreferenceIconChangePreview() { SettingsTheme { var icon by remember { mutableStateOf(Icons.Outlined.MusicNote) } - SettingsSlider( + SliderPreference( title = "Media Volume", initValue = 40, onValueChange = { it: Int -> @@ -173,9 +170,9 @@ private fun SettingsSliderIconChangePreview() { @Preview @Composable -private fun SettingsSliderStepsPreview() { +private fun SliderPreferenceStepsPreview() { SettingsTheme { - SettingsSlider( + SliderPreference( title = "Display Text", initValue = 2, valueRange = 1..5, diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt index 992ce9e6c872..2d606193872d 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt @@ -31,8 +31,9 @@ import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.framework.theme.SettingsDimension import com.android.settingslib.spa.framework.theme.SettingsTheme -import com.android.settingslib.spa.framework.util.WrapOnSwitchWithLog +import com.android.settingslib.spa.framework.util.wrapOnSwitchWithLog import com.android.settingslib.spa.widget.ui.SettingsSwitch +import com.android.settingslib.spa.widget.util.EntryHighlight /** * The widget model for [SwitchPreference] widget. @@ -79,13 +80,15 @@ interface SwitchPreferenceModel { */ @Composable fun SwitchPreference(model: SwitchPreferenceModel) { - InternalSwitchPreference( - title = model.title, - summary = model.summary, - checked = model.checked, - changeable = model.changeable, - onCheckedChange = model.onCheckedChange, - ) + EntryHighlight { + InternalSwitchPreference( + title = model.title, + summary = model.summary, + checked = model.checked, + changeable = model.changeable, + onCheckedChange = model.onCheckedChange, + ) + } } @Composable @@ -101,7 +104,7 @@ internal fun InternalSwitchPreference( ) { val checkedValue = checked.value val indication = LocalIndication.current - val onChangeWithLog = WrapOnSwitchWithLog(onCheckedChange) + val onChangeWithLog = wrapOnSwitchWithLog(onCheckedChange) val modifier = remember(checkedValue, changeable.value) { if (checkedValue != null && onChangeWithLog != null) { Modifier.toggleable( diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt index f1541b7f4008..fbfcaaa28047 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt @@ -17,6 +17,7 @@ package com.android.settingslib.spa.widget.preference import androidx.compose.runtime.Composable +import com.android.settingslib.spa.widget.util.EntryHighlight import com.android.settingslib.spa.widget.ui.SettingsSwitch @Composable @@ -25,16 +26,18 @@ fun TwoTargetSwitchPreference( icon: @Composable (() -> Unit)? = null, onClick: () -> Unit, ) { - TwoTargetPreference( - title = model.title, - summary = model.summary, - onClick = onClick, - icon = icon, - ) { - SettingsSwitch( - checked = model.checked, - changeable = model.changeable, - onCheckedChange = model.onCheckedChange, - ) + EntryHighlight { + TwoTargetPreference( + title = model.title, + summary = model.summary, + onClick = onClick, + icon = icon, + ) { + SettingsSwitch( + checked = model.checked, + changeable = model.changeable, + onCheckedChange = model.onCheckedChange, + ) + } } } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/LoadingBar.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/LoadingBar.kt new file mode 100644 index 000000000000..1741f134f3d1 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/LoadingBar.kt @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.widget.ui + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.absoluteOffset +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.LinearProgressIndicator +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp + +/** + * Indeterminate linear progress bar. Expresses an unspecified wait time. + */ +@Composable +fun LinearLoadingBar( + isLoading: Boolean, + xOffset: Dp = 0.dp, + yOffset: Dp = 0.dp +) { + if (isLoading) { + LinearProgressIndicator( + modifier = Modifier + .fillMaxWidth() + .absoluteOffset(xOffset, yOffset) + ) + } +} + +/** + * Indeterminate circular progress bar. Expresses an unspecified wait time. + */ +@Composable +fun CircularLoadingBar(isLoading: Boolean) { + if (isLoading) { + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + CircularProgressIndicator() + } + } +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/ProgressBar.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/ProgressBar.kt new file mode 100644 index 000000000000..5d8502db4986 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/ProgressBar.kt @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.widget.ui + +import androidx.compose.foundation.Canvas +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.progressSemantics +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.CornerRadius +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.drawscope.DrawScope +import androidx.compose.ui.unit.dp + +/** + * Determinate linear progress bar. Displays the current progress of the whole process. + * + * Rounded corner is supported and enabled by default. + */ +@Composable +fun LinearProgressBar( + progress: Float, + height: Float = 4f, + roundedCorner: Boolean = true +) { + Box(modifier = Modifier.padding(top = 8.dp, bottom = 8.dp)) { + val color = MaterialTheme.colorScheme.onSurface + val trackColor = MaterialTheme.colorScheme.surfaceVariant + Canvas( + Modifier + .progressSemantics(progress) + .fillMaxWidth() + .height(height.dp) + ) { + drawLinearBarTrack(trackColor, roundedCorner) + drawLinearBar(progress, color, roundedCorner) + } + } +} + +private fun DrawScope.drawLinearBar( + endFraction: Float, + color: Color, + roundedCorner: Boolean +) { + val width = endFraction * size.width + drawRoundRect( + color = color, + size = Size(width, size.height), + cornerRadius = if (roundedCorner) CornerRadius( + size.height / 2, + size.height / 2 + ) else CornerRadius.Zero, + ) +} + +private fun DrawScope.drawLinearBarTrack( + color: Color, + roundedCorner: Boolean +) = drawLinearBar(1f, color, roundedCorner) + +/** + * Determinate circular progress bar. Displays the current progress of the whole process. + * + * Displayed in default material3 style, and rounded corner is not supported. + */ +@Composable +fun CircularProgressBar(progress: Float, radius: Float = 40f) { + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + CircularProgressIndicator( + progress = progress, + modifier = Modifier.size(radius.dp, radius.dp) + ) + } +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/SettingsSlider.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/SettingsSlider.kt new file mode 100644 index 000000000000..48fec3bd8ad7 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/SettingsSlider.kt @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.widget.ui + +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Slider +import androidx.compose.material3.SliderDefaults +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.Modifier +import com.android.settingslib.spa.framework.theme.surfaceTone +import kotlin.math.roundToInt + +@Composable +fun SettingsSlider( + initValue: Int, + modifier: Modifier = Modifier, + valueRange: IntRange = 0..100, + onValueChange: ((value: Int) -> Unit)? = null, + onValueChangeFinished: (() -> Unit)? = null, + showSteps: Boolean = false, +) { + var sliderPosition by rememberSaveable { mutableStateOf(initValue.toFloat()) } + Slider( + value = sliderPosition, + onValueChange = { + sliderPosition = it + onValueChange?.invoke(sliderPosition.roundToInt()) + }, + modifier = modifier, + valueRange = valueRange.first.toFloat()..valueRange.last.toFloat(), + steps = if (showSteps) (valueRange.count() - 2) else 0, + onValueChangeFinished = onValueChangeFinished, + colors = SliderDefaults.colors( + inactiveTrackColor = MaterialTheme.colorScheme.surfaceTone + ) + ) +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt index 82ab0be55002..b9690762845e 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt @@ -20,7 +20,7 @@ import androidx.compose.material3.Checkbox import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable import androidx.compose.runtime.State -import com.android.settingslib.spa.framework.util.WrapOnSwitchWithLog +import com.android.settingslib.spa.framework.util.wrapOnSwitchWithLog @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -35,7 +35,7 @@ fun SettingsSwitch( if (checkedValue != null) { Checkbox( checked = checkedValue, - onCheckedChange = WrapOnSwitchWithLog(onCheckedChange), + onCheckedChange = wrapOnSwitchWithLog(onCheckedChange), enabled = changeable.value, ) } else { diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/util/EntryHighlight.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/util/EntryHighlight.kt new file mode 100644 index 000000000000..652e54de5e39 --- /dev/null +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/util/EntryHighlight.kt @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.widget.util + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import com.android.settingslib.spa.framework.common.LocalEntryDataProvider + +@Composable +internal fun EntryHighlight(UiLayoutFn: @Composable () -> Unit) { + val entryData = LocalEntryDataProvider.current + val isHighlighted = rememberSaveable { entryData.isHighlighted } + val backgroundColor = + if (isHighlighted) MaterialTheme.colorScheme.surfaceVariant else Color.Transparent + Box(modifier = Modifier.background(color = backgroundColor)) { + UiLayoutFn() + } +} diff --git a/packages/SettingsLib/Spa/tests/Android.bp b/packages/SettingsLib/Spa/tests/Android.bp index 1ce49fa520b9..74910456471e 100644 --- a/packages/SettingsLib/Spa/tests/Android.bp +++ b/packages/SettingsLib/Spa/tests/Android.bp @@ -34,4 +34,5 @@ android_test { "truth-prebuilt", ], kotlincflags: ["-Xjvm-default=all"], + min_sdk_version: "31", } diff --git a/packages/SettingsLib/Spa/tests/AndroidManifest.xml b/packages/SettingsLib/Spa/tests/AndroidManifest.xml index c224cafa4740..e2db5943ae53 100644 --- a/packages/SettingsLib/Spa/tests/AndroidManifest.xml +++ b/packages/SettingsLib/Spa/tests/AndroidManifest.xml @@ -17,6 +17,8 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.settingslib.spa.tests"> + <uses-sdk android:minSdkVersion="21"/> + <application> <uses-library android:name="android.test.runner" /> </application> diff --git a/packages/SettingsLib/Spa/tests/build.gradle b/packages/SettingsLib/Spa/tests/build.gradle index f950e01b9740..b43bf1854c26 100644 --- a/packages/SettingsLib/Spa/tests/build.gradle +++ b/packages/SettingsLib/Spa/tests/build.gradle @@ -21,11 +21,11 @@ plugins { android { namespace 'com.android.settingslib.spa.tests' - compileSdk 33 + compileSdk spa_target_sdk defaultConfig { minSdk spa_min_sdk - targetSdk 33 + targetSdk spa_target_sdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/preference/ProgressBarPreferenceTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/preference/ProgressBarPreferenceTest.kt new file mode 100644 index 000000000000..5611f8ce14db --- /dev/null +++ b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/preference/ProgressBarPreferenceTest.kt @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.spa.widget.preference + +import androidx.compose.ui.semantics.ProgressBarRangeInfo +import androidx.compose.ui.semantics.SemanticsProperties.ProgressBarRangeInfo +import androidx.compose.ui.test.SemanticsMatcher +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class ProgressBarPreferenceTest { + @get:Rule + val composeTestRule = createComposeRule() + + @Test + fun title_displayed() { + composeTestRule.setContent { + ProgressBarPreference(object : ProgressBarPreferenceModel { + override val title = "Title" + override val progress = 0.2f + }) + } + composeTestRule.onNodeWithText("Title").assertIsDisplayed() + } + + @Test + fun data_displayed() { + composeTestRule.setContent { + ProgressBarWithDataPreference(model = object : ProgressBarPreferenceModel { + override val title = "Title" + override val progress = 0.2f + }, data = "Data") + } + composeTestRule.onNodeWithText("Title").assertIsDisplayed() + composeTestRule.onNodeWithText("Data").assertIsDisplayed() + } + + @Test + fun progressBar_displayed() { + composeTestRule.setContent { + ProgressBarPreference(object : ProgressBarPreferenceModel { + override val title = "Title" + override val progress = 0.2f + }) + } + + fun progressEqualsTo(progress: Float): SemanticsMatcher = + SemanticsMatcher.expectValue( + ProgressBarRangeInfo, + ProgressBarRangeInfo(progress, 0f..1f, 0) + ) + composeTestRule.onNode(progressEqualsTo(0.2f)).assertIsDisplayed() + } +} diff --git a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/SettingsSliderTest.kt b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/preference/SliderPreferenceTest.kt index 1d95e3383b51..3e5dd527a6b3 100644 --- a/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/SettingsSliderTest.kt +++ b/packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/preference/SliderPreferenceTest.kt @@ -14,8 +14,11 @@ * limitations under the License. */ -package com.android.settingslib.spa.widget +package com.android.settingslib.spa.widget.preference +import androidx.compose.ui.semantics.ProgressBarRangeInfo +import androidx.compose.ui.semantics.SemanticsProperties.ProgressBarRangeInfo +import androidx.compose.ui.test.SemanticsMatcher import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText @@ -25,14 +28,14 @@ import org.junit.Test import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -class SettingsSliderTest { +class SliderPreferenceTest { @get:Rule val composeTestRule = createComposeRule() @Test fun title_displayed() { composeTestRule.setContent { - SettingsSlider(object : SettingsSliderModel { + SliderPreference(object : SliderPreferenceModel { override val title = "Slider" override val initValue = 40 }) @@ -41,5 +44,20 @@ class SettingsSliderTest { composeTestRule.onNodeWithText("Slider").assertIsDisplayed() } - // TODO: Add more unit tests for SettingsSlider widget. + @Test + fun slider_displayed() { + composeTestRule.setContent { + SliderPreference(object : SliderPreferenceModel { + override val title = "Slider" + override val initValue = 40 + }) + } + + fun progressEqualsTo(progress: Float): SemanticsMatcher = + SemanticsMatcher.expectValue( + ProgressBarRangeInfo, + ProgressBarRangeInfo(progress, 0f..100f, 0) + ) + composeTestRule.onNode(progressEqualsTo(40f)).assertIsDisplayed() + } } diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/framework/common/Contexts.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/framework/common/Contexts.kt index 1dc52cbfb4ec..99649263c76a 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/framework/common/Contexts.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/framework/common/Contexts.kt @@ -3,6 +3,8 @@ package com.android.settingslib.spaprivileged.framework.common import android.app.admin.DevicePolicyManager import android.app.usage.StorageStatsManager import android.content.Context +import android.content.pm.verify.domain.DomainVerificationManager +import android.os.UserHandle import android.os.UserManager /** The [UserManager] instance. */ @@ -13,3 +15,10 @@ val Context.devicePolicyManager get() = getSystemService(DevicePolicyManager::cl /** The [StorageStatsManager] instance. */ val Context.storageStatsManager get() = getSystemService(StorageStatsManager::class.java)!! + +/** The [DomainVerificationManager] instance. */ +val Context.domainVerificationManager + get() = getSystemService(DomainVerificationManager::class.java)!! + +/** Gets a new [Context] for the given [UserHandle]. */ +fun Context.asUser(userHandle: UserHandle): Context = createContextAsUser(userHandle, 0) diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt index 6318b4e9c186..c5ad1814a518 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.lifecycle.viewmodel.compose.viewModel import com.android.settingslib.spa.framework.compose.LogCompositions +import com.android.settingslib.spa.framework.compose.TimeMeasurer.Companion.rememberTimeMeasurer import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.framework.theme.SettingsDimension import com.android.settingslib.spa.widget.ui.PlaceholderTitle @@ -66,7 +67,9 @@ private fun <T : AppRecord> AppListWidget( listModel: AppListModel<T>, appItem: @Composable (itemState: AppListItemModel<T>) -> Unit, ) { + val timeMeasurer = rememberTimeMeasurer(TAG) appListData.value?.let { (list, option) -> + timeMeasurer.logFirst("app list first loaded") if (list.isEmpty()) { PlaceholderTitle(stringResource(R.string.no_applications)) return diff --git a/packages/SettingsLib/search/stub-src/com/android/settingslib/search/SearchIndexableResourcesBase.java b/packages/SettingsLib/search/stub-src/com/android/settingslib/search/SearchIndexableResourcesBase.java index 4870d45cff04..4063b9339c4a 100644 --- a/packages/SettingsLib/search/stub-src/com/android/settingslib/search/SearchIndexableResourcesBase.java +++ b/packages/SettingsLib/search/stub-src/com/android/settingslib/search/SearchIndexableResourcesBase.java @@ -24,11 +24,11 @@ import java.util.Collection; public class SearchIndexableResourcesBase implements SearchIndexableResources { @Override - public Collection<Class> getProviderValues() { + public Collection<SearchIndexableData> getProviderValues() { throw new RuntimeException("STUB!"); } - public void addIndex(Class indexClass) { + public void addIndex(SearchIndexableData indexClass) { throw new RuntimeException("STUB!"); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java index 5662ce6bd808..6bc1160a8d0a 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java @@ -356,7 +356,7 @@ public class CachedBluetoothDeviceManager { * @return {@code true}, if the device should pair automatically; Otherwise, return * {@code false}. */ - public synchronized boolean shouldPairByCsip(BluetoothDevice device, int groupId) { + private synchronized boolean shouldPairByCsip(BluetoothDevice device, int groupId) { boolean isOngoingSetMemberPair = mOngoingSetMemberPair != null; int bondState = device.getBondState(); if (isOngoingSetMemberPair || bondState != BluetoothDevice.BOND_NONE @@ -365,10 +365,44 @@ public class CachedBluetoothDeviceManager { + " , device.getBondState: " + bondState); return false; } + return true; + } - Log.d(TAG, "Bond " + device.getName() + " by CSIP"); + /** + * Called when we found a set member of a group. The function will check the {@code groupId} if + * it exists and the bond state of the device is BOND_NONE, and if there isn't any ongoing pair + * , and then pair the device automatically. + * + * @param device The found device + * @param groupId The group id of the found device + */ + public synchronized void pairDeviceByCsip(BluetoothDevice device, int groupId) { + if (!shouldPairByCsip(device, groupId)) { + return; + } + Log.d(TAG, "Bond " + device.getAnonymizedAddress() + " by CSIP"); mOngoingSetMemberPair = device; - return true; + syncConfigFromMainDevice(device, groupId); + device.createBond(BluetoothDevice.TRANSPORT_LE); + } + + private void syncConfigFromMainDevice(BluetoothDevice device, int groupId) { + if (!isOngoingPairByCsip(device)) { + return; + } + CachedBluetoothDevice memberDevice = findDevice(device); + CachedBluetoothDevice mainDevice = mCsipDeviceManager.findMainDevice(memberDevice); + if (mainDevice == null) { + mainDevice = mCsipDeviceManager.getCachedDevice(groupId); + } + + if (mainDevice == null || mainDevice.equals(memberDevice)) { + Log.d(TAG, "no mainDevice"); + return; + } + + // The memberDevice set PhonebookAccessPermission + device.setPhonebookAccessPermission(mainDevice.getDevice().getPhonebookAccessPermission()); } /** diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java index d5de3f0525a0..20a6cd8e09ce 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CsipDeviceManager.java @@ -101,7 +101,14 @@ public class CsipDeviceManager { return groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID; } - private CachedBluetoothDevice getCachedDevice(int groupId) { + /** + * To find the device with {@code groupId}. + * + * @param groupId The group id + * @return if we could find a device with this {@code groupId} return this device. Otherwise, + * return null. + */ + public CachedBluetoothDevice getCachedDevice(int groupId) { log("getCachedDevice: groupId: " + groupId); for (int i = mCachedDevices.size() - 1; i >= 0; i--) { CachedBluetoothDevice cachedDevice = mCachedDevices.get(i); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java index 62552f914459..61802a87361c 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java @@ -582,4 +582,24 @@ public class CachedBluetoothDeviceManagerTest { assertThat(mCachedDeviceManager.isSubDevice(mDevice2)).isTrue(); assertThat(mCachedDeviceManager.isSubDevice(mDevice3)).isFalse(); } + + @Test + public void pairDeviceByCsip_device2AndCapGroup1_device2StartsPairing() { + doReturn(CAP_GROUP1).when(mCsipSetCoordinatorProfile).getGroupUuidMapByDevice(mDevice1); + when(mDevice1.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED); + when(mDevice1.getPhonebookAccessPermission()).thenReturn(BluetoothDevice.ACCESS_ALLOWED); + CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); + assertThat(cachedDevice1).isNotNull(); + when(mDevice2.getBondState()).thenReturn(BluetoothDevice.BOND_NONE); + CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); + assertThat(cachedDevice2).isNotNull(); + + int groupId = CAP_GROUP1.keySet().stream().findFirst().orElse( + BluetoothCsipSetCoordinator.GROUP_ID_INVALID); + assertThat(groupId).isNotEqualTo(BluetoothCsipSetCoordinator.GROUP_ID_INVALID); + mCachedDeviceManager.pairDeviceByCsip(mDevice2, groupId); + + verify(mDevice2).setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED); + verify(mDevice2).createBond(BluetoothDevice.TRANSPORT_LE); + } } diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index 3623c7821dfe..edea3abc0618 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -311,4 +311,7 @@ <!-- Whether tilt to bright is enabled by default. --> <bool name="def_wearable_tiltToBrightEnabled">false</bool> + + <!-- Whether vibrate icon is shown in the status bar by default. --> + <integer name="def_statusBarVibrateIconEnabled">0</integer> </resources> diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 3a25d85b5ecf..ccbfac226c46 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -3659,7 +3659,7 @@ public class SettingsProvider extends ContentProvider { } private final class UpgradeController { - private static final int SETTINGS_VERSION = 210; + private static final int SETTINGS_VERSION = 211; private final int mUserId; @@ -5531,7 +5531,17 @@ public class SettingsProvider extends ContentProvider { // removed now that feature is enabled for everyone currentVersion = 210; } - + if (currentVersion == 210) { + final SettingsState secureSettings = getSecureSettingsLocked(userId); + final int defaultValueVibrateIconEnabled = getContext().getResources() + .getInteger(R.integer.def_statusBarVibrateIconEnabled); + secureSettings.insertSettingOverrideableByRestoreLocked( + Secure.STATUS_BAR_SHOW_VIBRATE_ICON, + String.valueOf(defaultValueVibrateIconEnabled), + null /* tag */, true /* makeDefault */, + SettingsState.SYSTEM_PACKAGE_NAME); + currentVersion = 211; + } // vXXX: Add new settings above this point. if (currentVersion != newVersion) { diff --git a/packages/SystemUI/OWNERS b/packages/SystemUI/OWNERS index 6d61fd86e39d..77ddc6e573b7 100644 --- a/packages/SystemUI/OWNERS +++ b/packages/SystemUI/OWNERS @@ -83,7 +83,6 @@ steell@google.com stwu@google.com syeonlee@google.com sunnygoyal@google.com -susikp@google.com thiruram@google.com tracyzhou@google.com tsuji@google.com diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt index 23cee4d0972d..fdfad2bc2fa1 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt @@ -25,7 +25,6 @@ import android.graphics.Rect import android.os.Looper import android.util.Log import android.util.MathUtils -import android.view.GhostView import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams.MATCH_PARENT @@ -86,6 +85,9 @@ constructor( */ val sourceIdentity: Any + /** The CUJ associated to this controller. */ + val cuj: DialogCuj? + /** * Move the drawing of the source in the overlay of [viewGroup]. * @@ -142,7 +144,31 @@ constructor( * controlled by this controller. */ // TODO(b/252723237): Make this non-nullable - fun jankConfigurationBuilder(cuj: Int): InteractionJankMonitor.Configuration.Builder? + fun jankConfigurationBuilder(): InteractionJankMonitor.Configuration.Builder? + + companion object { + /** + * Create a [Controller] that can animate [source] to and from a dialog. + * + * Important: The view must be attached to a [ViewGroup] when calling this function and + * during the animation. For safety, this method will return null when it is not. + * + * Note: The background of [view] should be a (rounded) rectangle so that it can be + * properly animated. + */ + fun fromView(source: View, cuj: DialogCuj? = null): Controller? { + if (source.parent !is ViewGroup) { + Log.e( + TAG, + "Skipping animation as view $source is not attached to a ViewGroup", + Exception(), + ) + return null + } + + return ViewDialogLaunchAnimatorController(source, cuj) + } + } } /** @@ -172,7 +198,12 @@ constructor( cuj: DialogCuj? = null, animateBackgroundBoundsChange: Boolean = false ) { - show(dialog, createController(view), cuj, animateBackgroundBoundsChange) + val controller = Controller.fromView(view, cuj) + if (controller == null) { + dialog.show() + } else { + show(dialog, controller, animateBackgroundBoundsChange) + } } /** @@ -187,10 +218,10 @@ constructor( * Caveats: When calling this function and [dialog] is not a fullscreen dialog, then it will be * made fullscreen and 2 views will be inserted between the dialog DecorView and its children. */ + @JvmOverloads fun show( dialog: Dialog, controller: Controller, - cuj: DialogCuj? = null, animateBackgroundBoundsChange: Boolean = false ) { if (Looper.myLooper() != Looper.getMainLooper()) { @@ -207,7 +238,10 @@ constructor( it.dialog.window.decorView.viewRootImpl == controller.viewRoot } val animateFrom = - animatedParent?.dialogContentWithBackground?.let { createController(it) } ?: controller + animatedParent?.dialogContentWithBackground?.let { + Controller.fromView(it, controller.cuj) + } + ?: controller if (animatedParent == null && animateFrom !is LaunchableView) { // Make sure the View we launch from implements LaunchableView to avoid visibility @@ -244,96 +278,12 @@ constructor( animateBackgroundBoundsChange, animatedParent, isForTesting, - cuj, ) openedDialogs.add(animatedDialog) animatedDialog.start() } - /** Create a [Controller] that can animate [source] to & from a dialog. */ - private fun createController(source: View): Controller { - return object : Controller { - override val viewRoot: ViewRootImpl - get() = source.viewRootImpl - - override val sourceIdentity: Any = source - - override fun startDrawingInOverlayOf(viewGroup: ViewGroup) { - // Create a temporary ghost of the source (which will make it invisible) and add it - // to the host dialog. - GhostView.addGhost(source, viewGroup) - - // The ghost of the source was just created, so the source is currently invisible. - // We need to make sure that it stays invisible as long as the dialog is shown or - // animating. - (source as? LaunchableView)?.setShouldBlockVisibilityChanges(true) - } - - override fun stopDrawingInOverlay() { - // Note: here we should remove the ghost from the overlay, but in practice this is - // already done by the launch controllers created below. - - // Make sure we allow the source to change its visibility again. - (source as? LaunchableView)?.setShouldBlockVisibilityChanges(false) - source.visibility = View.VISIBLE - } - - override fun createLaunchController(): LaunchAnimator.Controller { - val delegate = GhostedViewLaunchAnimatorController(source) - return object : LaunchAnimator.Controller by delegate { - override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) { - // Remove the temporary ghost added by [startDrawingInOverlayOf]. Another - // ghost (that ghosts only the source content, and not its background) will - // be added right after this by the delegate and will be animated. - GhostView.removeGhost(source) - delegate.onLaunchAnimationStart(isExpandingFullyAbove) - } - - override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) { - delegate.onLaunchAnimationEnd(isExpandingFullyAbove) - - // We hide the source when the dialog is showing. We will make this view - // visible again when dismissing the dialog. This does nothing if the source - // implements [LaunchableView], as it's already INVISIBLE in that case. - source.visibility = View.INVISIBLE - } - } - } - - override fun createExitController(): LaunchAnimator.Controller { - return GhostedViewLaunchAnimatorController(source) - } - - override fun shouldAnimateExit(): Boolean { - // The source should be invisible by now, if it's not then something else changed - // its visibility and we probably don't want to run the animation. - if (source.visibility != View.INVISIBLE) { - return false - } - - return source.isAttachedToWindow && ((source.parent as? View)?.isShown ?: true) - } - - override fun onExitAnimationCancelled() { - // Make sure we allow the source to change its visibility again. - (source as? LaunchableView)?.setShouldBlockVisibilityChanges(false) - - // If the view is invisible it's probably because of us, so we make it visible - // again. - if (source.visibility == View.INVISIBLE) { - source.visibility = View.VISIBLE - } - } - - override fun jankConfigurationBuilder( - cuj: Int - ): InteractionJankMonitor.Configuration.Builder? { - return InteractionJankMonitor.Configuration.Builder.withView(cuj, source) - } - } - } - /** * Launch [dialog] from [another dialog][animateFrom] that was shown using [show]. This will * allow for dismissing the whole stack. @@ -563,9 +513,6 @@ private class AnimatedDialog( * Whether synchronization should be disabled, which can be useful if we are running in a test. */ private val forceDisableSynchronization: Boolean, - - /** Interaction to which the dialog animation is associated. */ - private val cuj: DialogCuj? = null ) { /** * The DecorView of this dialog window. @@ -618,8 +565,9 @@ private class AnimatedDialog( private var hasInstrumentedJank = false fun start() { + val cuj = controller.cuj if (cuj != null) { - val config = controller.jankConfigurationBuilder(cuj.cujType) + val config = controller.jankConfigurationBuilder() if (config != null) { if (cuj.tag != null) { config.setTag(cuj.tag) @@ -865,7 +813,7 @@ private class AnimatedDialog( return } - ViewRootSync.synchronizeNextDraw(decorView, controller.viewRoot.view, then) + ViewRootSync.synchronizeNextDraw(controller.viewRoot.view, decorView, then) decorView.invalidate() controller.viewRoot.view.invalidate() } @@ -917,7 +865,7 @@ private class AnimatedDialog( } if (hasInstrumentedJank) { - interactionJankMonitor.end(cuj!!.cujType) + interactionJankMonitor.end(controller.cuj!!.cujType) } } ) diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/Expandable.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/Expandable.kt index 8ce372dbb278..40a5e9794d37 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/Expandable.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/Expandable.kt @@ -30,7 +30,12 @@ interface Expandable { */ fun activityLaunchController(cujType: Int? = null): ActivityLaunchAnimator.Controller? - // TODO(b/230830644): Introduce DialogLaunchAnimator and a function to expose it here. + /** + * Create a [DialogLaunchAnimator.Controller] that can be used to expand this [Expandable] into + * a Dialog, or return `null` if this [Expandable] should not be animated (e.g. if it is + * currently not attached or visible). + */ + fun dialogLaunchController(cuj: DialogCuj? = null): DialogLaunchAnimator.Controller? companion object { /** @@ -39,6 +44,7 @@ interface Expandable { * Note: The background of [view] should be a (rounded) rectangle so that it can be properly * animated. */ + @JvmStatic fun fromView(view: View): Expandable { return object : Expandable { override fun activityLaunchController( @@ -46,6 +52,12 @@ interface Expandable { ): ActivityLaunchAnimator.Controller? { return ActivityLaunchAnimator.Controller.fromView(view, cujType) } + + override fun dialogLaunchController( + cuj: DialogCuj? + ): DialogLaunchAnimator.Controller? { + return DialogLaunchAnimator.Controller.fromView(view, cuj) + } } } } diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt index 6780fb7fafe3..65d6c83d74a8 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/TextAnimator.kt @@ -82,6 +82,14 @@ class TextAnimator(layout: Layout, private val invalidateCallback: () -> Unit) { /** Mutable Y coordinate of the glyph position relative from the baseline. */ var y: Float = 0f + /** + * The current line of text being drawn, in a multi-line TextView. + */ + var lineNo: Int = 0 + + /** + * Mutable text size of the glyph in pixels. + */ /** Mutable text size of the glyph in pixels. */ var textSize: Float = 0f diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt index db14fdf5930b..f9fb42cd1670 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt @@ -231,7 +231,9 @@ class TextInterpolator(layout: Layout) { val origin = layout.getDrawOrigin(lineNo) canvas.translate(origin, layout.getLineBaseline(lineNo).toFloat()) - run.fontRuns.forEach { fontRun -> drawFontRun(canvas, run, fontRun, tmpPaint) } + run.fontRuns.forEach { fontRun -> + drawFontRun(canvas, run, fontRun, lineNo, tmpPaint) + } } finally { canvas.restore() } @@ -341,7 +343,7 @@ class TextInterpolator(layout: Layout) { var glyphFilter: GlyphCallback? = null // Draws single font run. - private fun drawFontRun(c: Canvas, line: Run, run: FontRun, paint: Paint) { + private fun drawFontRun(c: Canvas, line: Run, run: FontRun, lineNo: Int, paint: Paint) { var arrayIndex = 0 val font = fontInterpolator.lerp(run.baseFont, run.targetFont, progress) @@ -360,11 +362,13 @@ class TextInterpolator(layout: Layout) { tmpGlyph.font = font tmpGlyph.runStart = run.start tmpGlyph.runLength = run.end - run.start + tmpGlyph.lineNo = lineNo tmpPaintForGlyph.set(paint) var prevStart = run.start for (i in run.start until run.end) { + tmpGlyph.glyphIndex = i tmpGlyph.glyphId = line.glyphIds[i] tmpGlyph.x = MathUtils.lerp(line.baseX[i], line.targetX[i], progress) tmpGlyph.y = MathUtils.lerp(line.baseY[i], line.targetY[i], progress) diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/ViewDialogLaunchAnimatorController.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewDialogLaunchAnimatorController.kt new file mode 100644 index 000000000000..ecee598afe4e --- /dev/null +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewDialogLaunchAnimatorController.kt @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.animation + +import android.view.GhostView +import android.view.View +import android.view.ViewGroup +import android.view.ViewRootImpl +import com.android.internal.jank.InteractionJankMonitor + +/** A [DialogLaunchAnimator.Controller] that can animate a [View] from/to a dialog. */ +class ViewDialogLaunchAnimatorController +internal constructor( + private val source: View, + override val cuj: DialogCuj?, +) : DialogLaunchAnimator.Controller { + override val viewRoot: ViewRootImpl + get() = source.viewRootImpl + + override val sourceIdentity: Any = source + + override fun startDrawingInOverlayOf(viewGroup: ViewGroup) { + // Create a temporary ghost of the source (which will make it invisible) and add it + // to the host dialog. + GhostView.addGhost(source, viewGroup) + + // The ghost of the source was just created, so the source is currently invisible. + // We need to make sure that it stays invisible as long as the dialog is shown or + // animating. + (source as? LaunchableView)?.setShouldBlockVisibilityChanges(true) + } + + override fun stopDrawingInOverlay() { + // Note: here we should remove the ghost from the overlay, but in practice this is + // already done by the launch controllers created below. + + // Make sure we allow the source to change its visibility again. + (source as? LaunchableView)?.setShouldBlockVisibilityChanges(false) + source.visibility = View.VISIBLE + } + + override fun createLaunchController(): LaunchAnimator.Controller { + val delegate = GhostedViewLaunchAnimatorController(source) + return object : LaunchAnimator.Controller by delegate { + override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) { + // Remove the temporary ghost added by [startDrawingInOverlayOf]. Another + // ghost (that ghosts only the source content, and not its background) will + // be added right after this by the delegate and will be animated. + GhostView.removeGhost(source) + delegate.onLaunchAnimationStart(isExpandingFullyAbove) + } + + override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) { + delegate.onLaunchAnimationEnd(isExpandingFullyAbove) + + // We hide the source when the dialog is showing. We will make this view + // visible again when dismissing the dialog. This does nothing if the source + // implements [LaunchableView], as it's already INVISIBLE in that case. + source.visibility = View.INVISIBLE + } + } + } + + override fun createExitController(): LaunchAnimator.Controller { + return GhostedViewLaunchAnimatorController(source) + } + + override fun shouldAnimateExit(): Boolean { + // The source should be invisible by now, if it's not then something else changed + // its visibility and we probably don't want to run the animation. + if (source.visibility != View.INVISIBLE) { + return false + } + + return source.isAttachedToWindow && ((source.parent as? View)?.isShown ?: true) + } + + override fun onExitAnimationCancelled() { + // Make sure we allow the source to change its visibility again. + (source as? LaunchableView)?.setShouldBlockVisibilityChanges(false) + + // If the view is invisible it's probably because of us, so we make it visible + // again. + if (source.visibility == View.INVISIBLE) { + source.visibility = View.VISIBLE + } + } + + override fun jankConfigurationBuilder(): InteractionJankMonitor.Configuration.Builder? { + val type = cuj?.cujType ?: return null + return InteractionJankMonitor.Configuration.Builder.withView(type, source) + } +} diff --git a/packages/SystemUI/checks/Android.bp b/packages/SystemUI/checks/Android.bp index 9671adde4904..40580d29380b 100644 --- a/packages/SystemUI/checks/Android.bp +++ b/packages/SystemUI/checks/Android.bp @@ -47,6 +47,10 @@ java_test_host { "tests/**/*.kt", "tests/**/*.java", ], + data: [ + ":framework", + ":androidx.annotation_annotation", + ], static_libs: [ "SystemUILintChecker", "junit", diff --git a/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SoftwareBitmapDetector.kt b/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SoftwareBitmapDetector.kt index 4eeeb850292a..4b9aa13c0240 100644 --- a/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SoftwareBitmapDetector.kt +++ b/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SoftwareBitmapDetector.kt @@ -32,7 +32,8 @@ import org.jetbrains.uast.UReferenceExpression class SoftwareBitmapDetector : Detector(), SourceCodeScanner { override fun getApplicableReferenceNames(): List<String> { - return mutableListOf("ALPHA_8", "RGB_565", "ARGB_8888", "RGBA_F16", "RGBA_1010102") + return mutableListOf( + "ALPHA_8", "RGB_565", "ARGB_4444", "ARGB_8888", "RGBA_F16", "RGBA_1010102") } override fun visitReference( @@ -40,13 +41,12 @@ class SoftwareBitmapDetector : Detector(), SourceCodeScanner { reference: UReferenceExpression, referenced: PsiElement ) { - val evaluator = context.evaluator if (evaluator.isMemberInClass(referenced as? PsiField, "android.graphics.Bitmap.Config")) { context.report( ISSUE, referenced, - context.getNameLocation(referenced), + context.getNameLocation(reference), "Replace software bitmap with `Config.HARDWARE`" ) } diff --git a/packages/SystemUI/checks/src/com/android/internal/systemui/lint/StaticSettingsProviderDetector.kt b/packages/SystemUI/checks/src/com/android/internal/systemui/lint/StaticSettingsProviderDetector.kt new file mode 100644 index 000000000000..1db072548a76 --- /dev/null +++ b/packages/SystemUI/checks/src/com/android/internal/systemui/lint/StaticSettingsProviderDetector.kt @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.systemui.lint + +import com.android.tools.lint.detector.api.Category +import com.android.tools.lint.detector.api.Detector +import com.android.tools.lint.detector.api.Implementation +import com.android.tools.lint.detector.api.Issue +import com.android.tools.lint.detector.api.JavaContext +import com.android.tools.lint.detector.api.Scope +import com.android.tools.lint.detector.api.Severity +import com.android.tools.lint.detector.api.SourceCodeScanner +import com.intellij.psi.PsiMethod +import org.jetbrains.uast.UCallExpression + +private const val CLASS_SETTINGS = "android.provider.Settings" + +/** + * Detects usage of static methods in android.provider.Settings and suggests to use an injected + * settings provider instance instead. + */ +@Suppress("UnstableApiUsage") +class StaticSettingsProviderDetector : Detector(), SourceCodeScanner { + override fun getApplicableMethodNames(): List<String> { + return listOf( + "getFloat", + "getInt", + "getLong", + "getString", + "getUriFor", + "putFloat", + "putInt", + "putLong", + "putString" + ) + } + + override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) { + val evaluator = context.evaluator + val className = method.containingClass?.qualifiedName + if ( + className != "$CLASS_SETTINGS.Global" && + className != "$CLASS_SETTINGS.Secure" && + className != "$CLASS_SETTINGS.System" + ) { + return + } + if (!evaluator.isStatic(method)) { + return + } + + val subclassName = className.substring(CLASS_SETTINGS.length + 1) + + context.report( + ISSUE, + method, + context.getNameLocation(node), + "`@Inject` a ${subclassName}Settings instead" + ) + } + + companion object { + @JvmField + val ISSUE: Issue = + Issue.create( + id = "StaticSettingsProvider", + briefDescription = "Static settings provider usage", + explanation = + """ + Static settings provider methods, such as `Settings.Global.putInt()`, should \ + not be used because they make testing difficult. Instead, use an injected \ + settings provider. For example, instead of calling `Settings.Secure.getInt()`, \ + annotate the class constructor with `@Inject` and add `SecureSettings` to the \ + parameters. + """, + category = Category.CORRECTNESS, + priority = 8, + severity = Severity.WARNING, + implementation = + Implementation( + StaticSettingsProviderDetector::class.java, + Scope.JAVA_FILE_SCOPE + ) + ) + } +} diff --git a/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SystemUIIssueRegistry.kt b/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SystemUIIssueRegistry.kt index cf7c1b5e44a2..3f334c1cdb9c 100644 --- a/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SystemUIIssueRegistry.kt +++ b/packages/SystemUI/checks/src/com/android/internal/systemui/lint/SystemUIIssueRegistry.kt @@ -36,6 +36,7 @@ class SystemUIIssueRegistry : IssueRegistry() { RegisterReceiverViaContextDetector.ISSUE, SoftwareBitmapDetector.ISSUE, NonInjectedServiceDetector.ISSUE, + StaticSettingsProviderDetector.ISSUE ) override val api: Int diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/AndroidStubs.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/AndroidStubs.kt index 486af9dd5d98..141dd0535986 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/AndroidStubs.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/AndroidStubs.kt @@ -18,6 +18,8 @@ package com.android.internal.systemui.lint import com.android.annotations.NonNull import com.android.tools.lint.checks.infrastructure.LintDetectorTest.java +import com.android.tools.lint.checks.infrastructure.TestFiles.LibraryReferenceTestFile +import java.io.File import org.intellij.lang.annotations.Language @Suppress("UnstableApiUsage") @@ -30,132 +32,8 @@ private fun indentedJava(@NonNull @Language("JAVA") source: String) = java(sourc */ internal val androidStubs = arrayOf( - indentedJava( - """ -package android.app; - -public class ActivityManager { - public static int getCurrentUser() {} -} -""" - ), - indentedJava( - """ -package android.accounts; - -public class AccountManager { - public static AccountManager get(Context context) { return null; } -} -""" - ), - indentedJava( - """ -package android.os; -import android.content.pm.UserInfo; -import android.annotation.UserIdInt; - -public class UserManager { - public UserInfo getUserInfo(@UserIdInt int userId) {} -} -""" - ), - indentedJava(""" -package android.annotation; - -public @interface UserIdInt {} -"""), - indentedJava(""" -package android.content.pm; - -public class UserInfo {} -"""), - indentedJava(""" -package android.os; - -public class Looper {} -"""), - indentedJava(""" -package android.os; - -public class Handler {} -"""), - indentedJava(""" -package android.content; - -public class ServiceConnection {} -"""), - indentedJava(""" -package android.os; - -public enum UserHandle { - ALL -} -"""), - indentedJava( - """ -package android.content; -import android.os.UserHandle; -import android.os.Handler; -import android.os.Looper; -import java.util.concurrent.Executor; - -public class Context { - public void registerReceiver(BroadcastReceiver receiver, IntentFilter filter, int flags) {} - public void registerReceiverAsUser( - BroadcastReceiver receiver, UserHandle user, IntentFilter filter, - String broadcastPermission, Handler scheduler) {} - public void registerReceiverForAllUsers( - BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, - Handler scheduler) {} - public void sendBroadcast(Intent intent) {} - public void sendBroadcast(Intent intent, String receiverPermission) {} - public void sendBroadcastAsUser(Intent intent, UserHandle userHandle, String permission) {} - public void bindService(Intent intent) {} - public void bindServiceAsUser( - Intent intent, ServiceConnection connection, int flags, UserHandle userHandle) {} - public void unbindService(ServiceConnection connection) {} - public Looper getMainLooper() { return null; } - public Executor getMainExecutor() { return null; } - public Handler getMainThreadHandler() { return null; } - public final @Nullable <T> T getSystemService(@NonNull Class<T> serviceClass) { return null; } - public abstract @Nullable Object getSystemService(@ServiceName @NonNull String name); -} -""" - ), - indentedJava( - """ -package android.app; -import android.content.Context; - -public class Activity extends Context {} -""" - ), - indentedJava( - """ -package android.graphics; - -public class Bitmap { - public enum Config { - ARGB_8888, - RGB_565, - HARDWARE - } - public static Bitmap createBitmap(int width, int height, Config config) { - return null; - } -} -""" - ), - indentedJava(""" -package android.content; - -public class BroadcastReceiver {} -"""), - indentedJava(""" -package android.content; - -public class IntentFilter {} -"""), + LibraryReferenceTestFile(File("framework.jar").canonicalFile), + LibraryReferenceTestFile(File("androidx.annotation_annotation.jar").canonicalFile), indentedJava( """ package com.android.systemui.settings; @@ -167,23 +45,4 @@ public interface UserTracker { } """ ), - indentedJava( - """ -package androidx.annotation; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.CONSTRUCTOR; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.SOURCE; - -@Retention(SOURCE) -@Target({METHOD,CONSTRUCTOR,TYPE,PARAMETER}) -public @interface WorkerThread { -} -""" - ), ) diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BindServiceOnMainThreadDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BindServiceOnMainThreadDetectorTest.kt index 6ae8fd3f25a1..c35ac61a6543 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BindServiceOnMainThreadDetectorTest.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BindServiceOnMainThreadDetectorTest.kt @@ -16,18 +16,15 @@ package com.android.internal.systemui.lint -import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test @Suppress("UnstableApiUsage") -class BindServiceOnMainThreadDetectorTest : LintDetectorTest() { +class BindServiceOnMainThreadDetectorTest : SystemUILintDetectorTest() { override fun getDetector(): Detector = BindServiceOnMainThreadDetector() - override fun lint(): TestLintTask = super.lint().allowMissingSdk(true) override fun getIssues(): List<Issue> = listOf(BindServiceOnMainThreadDetector.ISSUE) diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BroadcastSentViaContextDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BroadcastSentViaContextDetectorTest.kt index 7d422807ae08..376acb56fac9 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BroadcastSentViaContextDetectorTest.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/BroadcastSentViaContextDetectorTest.kt @@ -16,18 +16,15 @@ package com.android.internal.systemui.lint -import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test @Suppress("UnstableApiUsage") -class BroadcastSentViaContextDetectorTest : LintDetectorTest() { +class BroadcastSentViaContextDetectorTest : SystemUILintDetectorTest() { override fun getDetector(): Detector = BroadcastSentViaContextDetector() - override fun lint(): TestLintTask = super.lint().allowMissingSdk(true) override fun getIssues(): List<Issue> = listOf(BroadcastSentViaContextDetector.ISSUE) diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedMainThreadDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedMainThreadDetectorTest.kt index c468af8d09e0..301c338f9b42 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedMainThreadDetectorTest.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedMainThreadDetectorTest.kt @@ -16,18 +16,15 @@ package com.android.internal.systemui.lint -import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test @Suppress("UnstableApiUsage") -class NonInjectedMainThreadDetectorTest : LintDetectorTest() { +class NonInjectedMainThreadDetectorTest : SystemUILintDetectorTest() { override fun getDetector(): Detector = NonInjectedMainThreadDetector() - override fun lint(): TestLintTask = super.lint().allowMissingSdk(true) override fun getIssues(): List<Issue> = listOf(NonInjectedMainThreadDetector.ISSUE) diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedServiceDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedServiceDetectorTest.kt index c83a35b46ca6..0a74bfcfee57 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedServiceDetectorTest.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/NonInjectedServiceDetectorTest.kt @@ -16,18 +16,15 @@ package com.android.internal.systemui.lint -import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test @Suppress("UnstableApiUsage") -class NonInjectedServiceDetectorTest : LintDetectorTest() { +class NonInjectedServiceDetectorTest : SystemUILintDetectorTest() { override fun getDetector(): Detector = NonInjectedServiceDetector() - override fun lint(): TestLintTask = super.lint().allowMissingSdk(true) override fun getIssues(): List<Issue> = listOf(NonInjectedServiceDetector.ISSUE) @Test diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/RegisterReceiverViaContextDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/RegisterReceiverViaContextDetectorTest.kt index ebcddebfbc28..9ed7aa029b1d 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/RegisterReceiverViaContextDetectorTest.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/RegisterReceiverViaContextDetectorTest.kt @@ -16,18 +16,15 @@ package com.android.internal.systemui.lint -import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test @Suppress("UnstableApiUsage") -class RegisterReceiverViaContextDetectorTest : LintDetectorTest() { +class RegisterReceiverViaContextDetectorTest : SystemUILintDetectorTest() { override fun getDetector(): Detector = RegisterReceiverViaContextDetector() - override fun lint(): TestLintTask = super.lint().allowMissingSdk(true) override fun getIssues(): List<Issue> = listOf(RegisterReceiverViaContextDetector.ISSUE) diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SlowUserQueryDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SlowUserQueryDetectorTest.kt index b03a11c4f02f..54cac7b35598 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SlowUserQueryDetectorTest.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SlowUserQueryDetectorTest.kt @@ -16,18 +16,15 @@ package com.android.internal.systemui.lint -import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test @Suppress("UnstableApiUsage") -class SlowUserQueryDetectorTest : LintDetectorTest() { +class SlowUserQueryDetectorTest : SystemUILintDetectorTest() { override fun getDetector(): Detector = SlowUserQueryDetector() - override fun lint(): TestLintTask = super.lint().allowMissingSdk(true) override fun getIssues(): List<Issue> = listOf( diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SoftwareBitmapDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SoftwareBitmapDetectorTest.kt index fb6537e92d15..c632636eb9c8 100644 --- a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SoftwareBitmapDetectorTest.kt +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SoftwareBitmapDetectorTest.kt @@ -16,18 +16,15 @@ package com.android.internal.systemui.lint -import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFiles -import com.android.tools.lint.checks.infrastructure.TestLintTask import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue import org.junit.Test @Suppress("UnstableApiUsage") -class SoftwareBitmapDetectorTest : LintDetectorTest() { +class SoftwareBitmapDetectorTest : SystemUILintDetectorTest() { override fun getDetector(): Detector = SoftwareBitmapDetector() - override fun lint(): TestLintTask = super.lint().allowMissingSdk(true) override fun getIssues(): List<Issue> = listOf(SoftwareBitmapDetector.ISSUE) @@ -54,12 +51,12 @@ class SoftwareBitmapDetectorTest : LintDetectorTest() { .run() .expect( """ - src/android/graphics/Bitmap.java:5: Warning: Replace software bitmap with Config.HARDWARE [SoftwareBitmap] - ARGB_8888, - ~~~~~~~~~ - src/android/graphics/Bitmap.java:6: Warning: Replace software bitmap with Config.HARDWARE [SoftwareBitmap] - RGB_565, - ~~~~~~~ + src/TestClass.java:5: Warning: Replace software bitmap with Config.HARDWARE [SoftwareBitmap] + Bitmap.createBitmap(300, 300, Bitmap.Config.RGB_565); + ~~~~~~~ + src/TestClass.java:6: Warning: Replace software bitmap with Config.HARDWARE [SoftwareBitmap] + Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888); + ~~~~~~~~~ 0 errors, 2 warnings """ ) @@ -70,7 +67,7 @@ class SoftwareBitmapDetectorTest : LintDetectorTest() { lint() .files( TestFiles.java( - """ + """ import android.graphics.Bitmap; public class TestClass { @@ -79,8 +76,7 @@ class SoftwareBitmapDetectorTest : LintDetectorTest() { } } """ - ) - .indented(), + ), *stubs ) .issues(SoftwareBitmapDetector.ISSUE) diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/StaticSettingsProviderDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/StaticSettingsProviderDetectorTest.kt new file mode 100644 index 000000000000..b83ed7067bc3 --- /dev/null +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/StaticSettingsProviderDetectorTest.kt @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.systemui.lint + +import com.android.tools.lint.checks.infrastructure.TestFiles +import com.android.tools.lint.detector.api.Detector +import com.android.tools.lint.detector.api.Issue +import org.junit.Test + +@Suppress("UnstableApiUsage") +class StaticSettingsProviderDetectorTest : SystemUILintDetectorTest() { + + override fun getDetector(): Detector = StaticSettingsProviderDetector() + override fun getIssues(): List<Issue> = listOf(StaticSettingsProviderDetector.ISSUE) + + @Test + fun testGetServiceWithString() { + lint() + .files( + TestFiles.java( + """ + package test.pkg; + + import android.provider.Settings; + import android.provider.Settings.Global; + import android.provider.Settings.Secure; + + public class TestClass { + public void getSystemServiceWithoutDagger(Context context) { + final ContentResolver cr = mContext.getContentResolver(); + Global.getFloat(cr, Settings.Global.UNLOCK_SOUND); + Global.getInt(cr, Settings.Global.UNLOCK_SOUND); + Global.getLong(cr, Settings.Global.UNLOCK_SOUND); + Global.getString(cr, Settings.Global.UNLOCK_SOUND); + Global.getFloat(cr, Settings.Global.UNLOCK_SOUND, 1f); + Global.getInt(cr, Settings.Global.UNLOCK_SOUND, 1); + Global.getLong(cr, Settings.Global.UNLOCK_SOUND, 1L); + Global.getString(cr, Settings.Global.UNLOCK_SOUND, "1"); + Global.putFloat(cr, Settings.Global.UNLOCK_SOUND, 1f); + Global.putInt(cr, Settings.Global.UNLOCK_SOUND, 1); + Global.putLong(cr, Settings.Global.UNLOCK_SOUND, 1L); + Global.putString(cr, Settings.Global.UNLOCK_SOUND, "1"); + + Secure.getFloat(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + Secure.getInt(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + Secure.getLong(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + Secure.getString(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + Secure.getFloat(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1f); + Secure.getInt(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1); + Secure.getLong(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1L); + Secure.getString(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, "1"); + Secure.putFloat(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1f); + Secure.putInt(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1); + Secure.putLong(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1L); + Secure.putString(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, "1"); + + Settings.System.getFloat(cr, Settings.System.SCREEN_OFF_TIMEOUT); + Settings.System.getInt(cr, Settings.System.SCREEN_OFF_TIMEOUT); + Settings.System.getLong(cr, Settings.System.SCREEN_OFF_TIMEOUT); + Settings.System.getString(cr, Settings.System.SCREEN_OFF_TIMEOUT); + Settings.System.getFloat(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1f); + Settings.System.getInt(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1); + Settings.System.getLong(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1L); + Settings.System.getString(cr, Settings.System.SCREEN_OFF_TIMEOUT, "1"); + Settings.System.putFloat(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1f); + Settings.System.putInt(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1); + Settings.System.putLong(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1L); + Settings.System.putString(cr, Settings.Global.UNLOCK_SOUND, "1"); + } + } + """ + ) + .indented(), + *stubs + ) + .issues(StaticSettingsProviderDetector.ISSUE) + .run() + .expect( + """ + src/test/pkg/TestClass.java:10: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getFloat(cr, Settings.Global.UNLOCK_SOUND); + ~~~~~~~~ + src/test/pkg/TestClass.java:11: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getInt(cr, Settings.Global.UNLOCK_SOUND); + ~~~~~~ + src/test/pkg/TestClass.java:12: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getLong(cr, Settings.Global.UNLOCK_SOUND); + ~~~~~~~ + src/test/pkg/TestClass.java:13: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getString(cr, Settings.Global.UNLOCK_SOUND); + ~~~~~~~~~ + src/test/pkg/TestClass.java:14: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getFloat(cr, Settings.Global.UNLOCK_SOUND, 1f); + ~~~~~~~~ + src/test/pkg/TestClass.java:15: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getInt(cr, Settings.Global.UNLOCK_SOUND, 1); + ~~~~~~ + src/test/pkg/TestClass.java:16: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getLong(cr, Settings.Global.UNLOCK_SOUND, 1L); + ~~~~~~~ + src/test/pkg/TestClass.java:17: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.getString(cr, Settings.Global.UNLOCK_SOUND, "1"); + ~~~~~~~~~ + src/test/pkg/TestClass.java:18: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.putFloat(cr, Settings.Global.UNLOCK_SOUND, 1f); + ~~~~~~~~ + src/test/pkg/TestClass.java:19: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.putInt(cr, Settings.Global.UNLOCK_SOUND, 1); + ~~~~~~ + src/test/pkg/TestClass.java:20: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.putLong(cr, Settings.Global.UNLOCK_SOUND, 1L); + ~~~~~~~ + src/test/pkg/TestClass.java:21: Warning: @Inject a GlobalSettings instead [StaticSettingsProvider] + Global.putString(cr, Settings.Global.UNLOCK_SOUND, "1"); + ~~~~~~~~~ + src/test/pkg/TestClass.java:23: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getFloat(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + ~~~~~~~~ + src/test/pkg/TestClass.java:24: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getInt(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + ~~~~~~ + src/test/pkg/TestClass.java:25: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getLong(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + ~~~~~~~ + src/test/pkg/TestClass.java:26: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getString(cr, Settings.Secure.ASSIST_GESTURE_ENABLED); + ~~~~~~~~~ + src/test/pkg/TestClass.java:27: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getFloat(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1f); + ~~~~~~~~ + src/test/pkg/TestClass.java:28: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getInt(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1); + ~~~~~~ + src/test/pkg/TestClass.java:29: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getLong(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1L); + ~~~~~~~ + src/test/pkg/TestClass.java:30: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.getString(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, "1"); + ~~~~~~~~~ + src/test/pkg/TestClass.java:31: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.putFloat(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1f); + ~~~~~~~~ + src/test/pkg/TestClass.java:32: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.putInt(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1); + ~~~~~~ + src/test/pkg/TestClass.java:33: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.putLong(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, 1L); + ~~~~~~~ + src/test/pkg/TestClass.java:34: Warning: @Inject a SecureSettings instead [StaticSettingsProvider] + Secure.putString(cr, Settings.Secure.ASSIST_GESTURE_ENABLED, "1"); + ~~~~~~~~~ + src/test/pkg/TestClass.java:36: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getFloat(cr, Settings.System.SCREEN_OFF_TIMEOUT); + ~~~~~~~~ + src/test/pkg/TestClass.java:37: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getInt(cr, Settings.System.SCREEN_OFF_TIMEOUT); + ~~~~~~ + src/test/pkg/TestClass.java:38: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getLong(cr, Settings.System.SCREEN_OFF_TIMEOUT); + ~~~~~~~ + src/test/pkg/TestClass.java:39: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getString(cr, Settings.System.SCREEN_OFF_TIMEOUT); + ~~~~~~~~~ + src/test/pkg/TestClass.java:40: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getFloat(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1f); + ~~~~~~~~ + src/test/pkg/TestClass.java:41: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getInt(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1); + ~~~~~~ + src/test/pkg/TestClass.java:42: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getLong(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1L); + ~~~~~~~ + src/test/pkg/TestClass.java:43: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.getString(cr, Settings.System.SCREEN_OFF_TIMEOUT, "1"); + ~~~~~~~~~ + src/test/pkg/TestClass.java:44: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.putFloat(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1f); + ~~~~~~~~ + src/test/pkg/TestClass.java:45: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.putInt(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1); + ~~~~~~ + src/test/pkg/TestClass.java:46: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.putLong(cr, Settings.System.SCREEN_OFF_TIMEOUT, 1L); + ~~~~~~~ + src/test/pkg/TestClass.java:47: Warning: @Inject a SystemSettings instead [StaticSettingsProvider] + Settings.System.putString(cr, Settings.Global.UNLOCK_SOUND, "1"); + ~~~~~~~~~ + 0 errors, 36 warnings + """ + ) + } + + private val stubs = androidStubs +} diff --git a/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SystemUILintDetectorTest.kt b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SystemUILintDetectorTest.kt new file mode 100644 index 000000000000..3f93f075fe8b --- /dev/null +++ b/packages/SystemUI/checks/tests/com/android/internal/systemui/lint/SystemUILintDetectorTest.kt @@ -0,0 +1,48 @@ +package com.android.internal.systemui.lint + +import com.android.tools.lint.checks.infrastructure.LintDetectorTest +import com.android.tools.lint.checks.infrastructure.TestLintTask +import java.io.File +import org.junit.ClassRule +import org.junit.rules.TestRule +import org.junit.runner.Description +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 +import org.junit.runners.model.Statement + +@Suppress("UnstableApiUsage") +@RunWith(JUnit4::class) +abstract class SystemUILintDetectorTest : LintDetectorTest() { + + companion object { + @ClassRule + @JvmField + val libraryChecker: LibraryExists = + LibraryExists("framework.jar", "androidx.annotation_annotation.jar") + } + + class LibraryExists(vararg val libraryNames: String) : TestRule { + override fun apply(base: Statement, description: Description): Statement { + return object : Statement() { + override fun evaluate() { + for (libName in libraryNames) { + val libFile = File(libName) + if (!libFile.canonicalFile.exists()) { + throw Exception( + "Could not find $libName in the test's working directory. " + + "File ${libFile.absolutePath} does not exist." + ) + } + } + base.evaluate() + } + } + } + } + /** + * Customize the lint task to disable SDK usage completely. This ensures that running the tests + * in Android Studio has the same result as running the tests in atest + */ + override fun lint(): TestLintTask = + super.lint().allowMissingSdk(true).sdkHome(File("/dev/null")) +} diff --git a/packages/SystemUI/compose/core/src/com/android/systemui/compose/animation/ExpandableController.kt b/packages/SystemUI/compose/core/src/com/android/systemui/compose/animation/ExpandableController.kt index 065c3149c2f5..50c3d7e1e76b 100644 --- a/packages/SystemUI/compose/core/src/com/android/systemui/compose/animation/ExpandableController.kt +++ b/packages/SystemUI/compose/core/src/com/android/systemui/compose/animation/ExpandableController.kt @@ -40,17 +40,16 @@ import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.LayoutDirection import com.android.internal.jank.InteractionJankMonitor import com.android.systemui.animation.ActivityLaunchAnimator +import com.android.systemui.animation.DialogCuj import com.android.systemui.animation.DialogLaunchAnimator +import com.android.systemui.animation.Expandable import com.android.systemui.animation.LaunchAnimator import kotlin.math.roundToInt -/** A controller that can control animated launches. */ +/** A controller that can control animated launches from an [Expandable]. */ interface ExpandableController { - /** Create an [ActivityLaunchAnimator.Controller] to animate into an Activity. */ - fun forActivity(): ActivityLaunchAnimator.Controller - - /** Create a [DialogLaunchAnimator.Controller] to animate into a Dialog. */ - fun forDialog(): DialogLaunchAnimator.Controller + /** The [Expandable] controlled by this controller. */ + val expandable: Expandable } /** @@ -120,13 +119,26 @@ internal class ExpandableControllerImpl( private val layoutDirection: LayoutDirection, private val isComposed: State<Boolean>, ) : ExpandableController { - override fun forActivity(): ActivityLaunchAnimator.Controller { - return activityController() - } + override val expandable: Expandable = + object : Expandable { + override fun activityLaunchController( + cujType: Int?, + ): ActivityLaunchAnimator.Controller? { + if (!isComposed.value) { + return null + } - override fun forDialog(): DialogLaunchAnimator.Controller { - return dialogController() - } + return activityController(cujType) + } + + override fun dialogLaunchController(cuj: DialogCuj?): DialogLaunchAnimator.Controller? { + if (!isComposed.value) { + return null + } + + return dialogController(cuj) + } + } /** * Create a [LaunchAnimator.Controller] that is going to be used to drive an activity or dialog @@ -233,7 +245,7 @@ internal class ExpandableControllerImpl( } /** Create an [ActivityLaunchAnimator.Controller] that can be used to animate activities. */ - private fun activityController(): ActivityLaunchAnimator.Controller { + private fun activityController(cujType: Int?): ActivityLaunchAnimator.Controller { val delegate = launchController() return object : ActivityLaunchAnimator.Controller, LaunchAnimator.Controller by delegate { override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) { @@ -248,10 +260,11 @@ internal class ExpandableControllerImpl( } } - private fun dialogController(): DialogLaunchAnimator.Controller { + private fun dialogController(cuj: DialogCuj?): DialogLaunchAnimator.Controller { return object : DialogLaunchAnimator.Controller { override val viewRoot: ViewRootImpl = composeViewRoot.viewRootImpl override val sourceIdentity: Any = this@ExpandableControllerImpl + override val cuj: DialogCuj? = cuj override fun startDrawingInOverlayOf(viewGroup: ViewGroup) { val newOverlay = viewGroup.overlay as ViewGroupOverlay @@ -294,9 +307,7 @@ internal class ExpandableControllerImpl( isDialogShowing.value = false } - override fun jankConfigurationBuilder( - cuj: Int - ): InteractionJankMonitor.Configuration.Builder? { + override fun jankConfigurationBuilder(): InteractionJankMonitor.Configuration.Builder? { // TODO(b/252723237): Add support for jank monitoring when animating from a // Composable. return null diff --git a/packages/SystemUI/ktfmt_includes.txt b/packages/SystemUI/ktfmt_includes.txt index d0d3052bc544..31ab24748c93 100644 --- a/packages/SystemUI/ktfmt_includes.txt +++ b/packages/SystemUI/ktfmt_includes.txt @@ -832,7 +832,6 @@ -packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/WalletControllerImplTest.kt -packages/SystemUI/tests/src/com/android/systemui/statusbar/window/StatusBarWindowStateControllerTest.kt -packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt --packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt -packages/SystemUI/tests/src/com/android/systemui/unfold/FoldStateLoggingProviderTest.kt -packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldLatencyTrackerTest.kt -packages/SystemUI/tests/src/com/android/systemui/unfold/UnfoldTransitionWallpaperControllerTest.kt diff --git a/packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt b/packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt index b3dd95553ed0..dee0f5cd1979 100644 --- a/packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt +++ b/packages/SystemUI/monet/src/com/android/systemui/monet/ColorScheme.kt @@ -205,6 +205,13 @@ enum class Style(internal val coreSpec: CoreSpec) { n1 = TonalSpec(HueSource(), ChromaMultiple(0.0833)), n2 = TonalSpec(HueSource(), ChromaMultiple(0.1666)) )), + MONOCHROMATIC(CoreSpec( + a1 = TonalSpec(HueSource(), ChromaConstant(.0)), + a2 = TonalSpec(HueSource(), ChromaConstant(.0)), + a3 = TonalSpec(HueSource(), ChromaConstant(.0)), + n1 = TonalSpec(HueSource(), ChromaConstant(.0)), + n2 = TonalSpec(HueSource(), ChromaConstant(.0)) + )), } class ColorScheme( @@ -219,7 +226,7 @@ class ColorScheme( val neutral1: List<Int> val neutral2: List<Int> - constructor(@ColorInt seed: Int, darkTheme: Boolean): + constructor(@ColorInt seed: Int, darkTheme: Boolean) : this(seed, darkTheme, Style.TONAL_SPOT) @JvmOverloads @@ -227,7 +234,7 @@ class ColorScheme( wallpaperColors: WallpaperColors, darkTheme: Boolean, style: Style = Style.TONAL_SPOT - ): + ) : this(getSeedColor(wallpaperColors, style != Style.CONTENT), darkTheme, style) val allAccentColors: List<Int> @@ -472,4 +479,4 @@ class ColorScheme( return huePopulation } } -}
\ No newline at end of file +} diff --git a/packages/SystemUI/plugin/Android.bp b/packages/SystemUI/plugin/Android.bp index cafaaf854eed..7709f210f22f 100644 --- a/packages/SystemUI/plugin/Android.bp +++ b/packages/SystemUI/plugin/Android.bp @@ -33,6 +33,7 @@ java_library { static_libs: [ "androidx.annotation_annotation", + "error_prone_annotations", "PluginCoreLib", "SystemUIAnimationLib", ], diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/ClockProviderPlugin.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/ClockProviderPlugin.kt index 1e74c3d68efc..dabb43b6074d 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/ClockProviderPlugin.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/ClockProviderPlugin.kt @@ -14,6 +14,7 @@ package com.android.systemui.plugins import android.content.res.Resources +import android.graphics.Rect import android.graphics.drawable.Drawable import android.view.View import com.android.systemui.plugins.annotations.ProvidesInterface @@ -114,6 +115,17 @@ interface ClockAnimations { /** Runs the battery animation (if any). */ fun charge() { } + + /** Move the clock, for example, if the notification tray appears in split-shade mode. */ + fun onPositionUpdated(fromRect: Rect, toRect: Rect, fraction: Float) { } + + /** + * Whether this clock has a custom position update animation. If true, the keyguard will call + * `onPositionUpdated` to notify the clock of a position update animation. If false, a default + * animation will be used (e.g. a simple translation). + */ + val hasCustomPositionUpdatedAnimation + get() = false } /** Events that have specific data about the related face */ diff --git a/packages/SystemUI/src/com/android/systemui/log/LogBuffer.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogBuffer.kt index 6124e10144f2..6436dcb5f613 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogBuffer.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogBuffer.kt @@ -14,12 +14,11 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.plugins.log import android.os.Trace import android.util.Log -import com.android.systemui.log.dagger.LogModule -import com.android.systemui.util.collection.RingBuffer +import com.android.systemui.plugins.util.RingBuffer import com.google.errorprone.annotations.CompileTimeConstant import java.io.PrintWriter import java.util.concurrent.ArrayBlockingQueue @@ -61,15 +60,18 @@ import kotlin.math.max * In either case, `level` can be any of `verbose`, `debug`, `info`, `warn`, `error`, `assert`, or * the first letter of any of the previous. * - * Buffers are provided by [LogModule]. Instances should be created using a [LogBufferFactory]. + * In SystemUI, buffers are provided by LogModule. Instances should be created using a SysUI + * LogBufferFactory. * * @param name The name of this buffer, printed when the buffer is dumped and in some other * situations. * @param maxSize The maximum number of messages to keep in memory at any one time. Buffers start - * out empty and grow up to [maxSize] as new messages are logged. Once the buffer's size reaches - * the maximum, it behaves like a ring buffer. + * out empty and grow up to [maxSize] as new messages are logged. Once the buffer's size reaches the + * maximum, it behaves like a ring buffer. */ -class LogBuffer @JvmOverloads constructor( +class LogBuffer +@JvmOverloads +constructor( private val name: String, private val maxSize: Int, private val logcatEchoTracker: LogcatEchoTracker, @@ -78,7 +80,7 @@ class LogBuffer @JvmOverloads constructor( private val buffer = RingBuffer(maxSize) { LogMessageImpl.create() } private val echoMessageQueue: BlockingQueue<LogMessage>? = - if (logcatEchoTracker.logInBackgroundThread) ArrayBlockingQueue(10) else null + if (logcatEchoTracker.logInBackgroundThread) ArrayBlockingQueue(10) else null init { if (logcatEchoTracker.logInBackgroundThread && echoMessageQueue != null) { @@ -133,11 +135,11 @@ class LogBuffer @JvmOverloads constructor( */ @JvmOverloads inline fun log( - tag: String, - level: LogLevel, - messageInitializer: MessageInitializer, - noinline messagePrinter: MessagePrinter, - exception: Throwable? = null, + tag: String, + level: LogLevel, + messageInitializer: MessageInitializer, + noinline messagePrinter: MessagePrinter, + exception: Throwable? = null, ) { val message = obtain(tag, level, messagePrinter, exception) messageInitializer(message) @@ -152,14 +154,13 @@ class LogBuffer @JvmOverloads constructor( * log message is built during runtime, use the [LogBuffer.log] overloaded method that takes in * an initializer and a message printer. * - * Log buffers are limited by the number of entries, so logging more frequently - * will limit the time window that the LogBuffer covers in a bug report. Richer logs, on the - * other hand, make a bug report more actionable, so using the [log] with a messagePrinter to - * add more detail to every log may do more to improve overall logging than adding more logs - * with this method. + * Log buffers are limited by the number of entries, so logging more frequently will limit the + * time window that the LogBuffer covers in a bug report. Richer logs, on the other hand, make a + * bug report more actionable, so using the [log] with a messagePrinter to add more detail to + * every log may do more to improve overall logging than adding more logs with this method. */ fun log(tag: String, level: LogLevel, @CompileTimeConstant message: String) = - log(tag, level, {str1 = message}, { str1!! }) + log(tag, level, { str1 = message }, { str1!! }) /** * You should call [log] instead of this method. @@ -172,10 +173,10 @@ class LogBuffer @JvmOverloads constructor( */ @Synchronized fun obtain( - tag: String, - level: LogLevel, - messagePrinter: MessagePrinter, - exception: Throwable? = null, + tag: String, + level: LogLevel, + messagePrinter: MessagePrinter, + exception: Throwable? = null, ): LogMessage { if (!mutable) { return FROZEN_MESSAGE @@ -189,8 +190,7 @@ class LogBuffer @JvmOverloads constructor( * You should call [log] instead of this method. * * After acquiring a message via [obtain], call this method to signal to the buffer that you - * have finished filling in its data fields. The message will be echoed to logcat if - * necessary. + * have finished filling in its data fields. The message will be echoed to logcat if necessary. */ @Synchronized fun commit(message: LogMessage) { @@ -213,7 +213,8 @@ class LogBuffer @JvmOverloads constructor( /** Sends message to echo after determining whether to use Logcat and/or systrace. */ private fun echoToDesiredEndpoints(message: LogMessage) { - val includeInLogcat = logcatEchoTracker.isBufferLoggable(name, message.level) || + val includeInLogcat = + logcatEchoTracker.isBufferLoggable(name, message.level) || logcatEchoTracker.isTagLoggable(message.tag, message.level) echo(message, toLogcat = includeInLogcat, toSystrace = systrace) } @@ -221,7 +222,12 @@ class LogBuffer @JvmOverloads constructor( /** Converts the entire buffer to a newline-delimited string */ @Synchronized fun dump(pw: PrintWriter, tailLength: Int) { - val iterationStart = if (tailLength <= 0) { 0 } else { max(0, buffer.size - tailLength) } + val iterationStart = + if (tailLength <= 0) { + 0 + } else { + max(0, buffer.size - tailLength) + } for (i in iterationStart until buffer.size) { buffer[i].dump(pw) @@ -229,9 +235,9 @@ class LogBuffer @JvmOverloads constructor( } /** - * "Freezes" the contents of the buffer, making it immutable until [unfreeze] is called. - * Calls to [log], [obtain], and [commit] will not affect the buffer and will return dummy - * values if necessary. + * "Freezes" the contents of the buffer, making it immutable until [unfreeze] is called. Calls + * to [log], [obtain], and [commit] will not affect the buffer and will return dummy values if + * necessary. */ @Synchronized fun freeze() { @@ -241,9 +247,7 @@ class LogBuffer @JvmOverloads constructor( } } - /** - * Undoes the effects of calling [freeze]. - */ + /** Undoes the effects of calling [freeze]. */ @Synchronized fun unfreeze() { if (frozen) { @@ -265,8 +269,11 @@ class LogBuffer @JvmOverloads constructor( } private fun echoToSystrace(message: LogMessage, strMessage: String) { - Trace.instantForTrack(Trace.TRACE_TAG_APP, "UI Events", - "$name - ${message.level.shortString} ${message.tag}: $strMessage") + Trace.instantForTrack( + Trace.TRACE_TAG_APP, + "UI Events", + "$name - ${message.level.shortString} ${message.tag}: $strMessage" + ) } private fun echoToLogcat(message: LogMessage, strMessage: String) { diff --git a/packages/SystemUI/src/com/android/systemui/log/LogLevel.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogLevel.kt index 53f231c9f9d2..b036cf0be1d6 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogLevel.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogLevel.kt @@ -14,17 +14,12 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.plugins.log import android.util.Log -/** - * Enum version of @Log.Level - */ -enum class LogLevel( - @Log.Level val nativeLevel: Int, - val shortString: String -) { +/** Enum version of @Log.Level */ +enum class LogLevel(@Log.Level val nativeLevel: Int, val shortString: String) { VERBOSE(Log.VERBOSE, "V"), DEBUG(Log.DEBUG, "D"), INFO(Log.INFO, "I"), diff --git a/packages/SystemUI/src/com/android/systemui/log/LogMessage.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogMessage.kt index dae2592e116c..9468681289bf 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogMessage.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogMessage.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.plugins.log import java.io.PrintWriter import java.text.SimpleDateFormat @@ -29,9 +29,10 @@ import java.util.Locale * * When a message is logged, the code doing the logging stores data in one or more of the generic * fields ([str1], [int1], etc). When it comes time to dump the message to logcat/bugreport/etc, the - * [messagePrinter] function reads the data stored in the generic fields and converts that to a human- - * readable string. Thus, for every log type there must be a specialized initializer function that - * stores data specific to that log type and a specialized printer function that prints that data. + * [messagePrinter] function reads the data stored in the generic fields and converts that to a + * human- readable string. Thus, for every log type there must be a specialized initializer function + * that stores data specific to that log type and a specialized printer function that prints that + * data. * * See [LogBuffer.log] for more information. */ @@ -55,9 +56,7 @@ interface LogMessage { var bool3: Boolean var bool4: Boolean - /** - * Function that dumps the [LogMessage] to the provided [writer]. - */ + /** Function that dumps the [LogMessage] to the provided [writer]. */ fun dump(writer: PrintWriter) { val formattedTimestamp = DATE_FORMAT.format(timestamp) val shortLevel = level.shortString @@ -68,12 +67,12 @@ interface LogMessage { } /** - * A function that will be called if and when the message needs to be dumped to - * logcat or a bug report. It should read the data stored by the initializer and convert it to - * a human-readable string. The value of `this` will be the LogMessage to be printed. - * **IMPORTANT:** The printer should ONLY ever reference fields on the LogMessage and NEVER any - * variables in its enclosing scope. Otherwise, the runtime will need to allocate a new instance - * of the printer for each call, thwarting our attempts at avoiding any sort of allocation. + * A function that will be called if and when the message needs to be dumped to logcat or a bug + * report. It should read the data stored by the initializer and convert it to a human-readable + * string. The value of `this` will be the LogMessage to be printed. **IMPORTANT:** The printer + * should ONLY ever reference fields on the LogMessage and NEVER any variables in its enclosing + * scope. Otherwise, the runtime will need to allocate a new instance of the printer for each call, + * thwarting our attempts at avoiding any sort of allocation. */ typealias MessagePrinter = LogMessage.() -> String diff --git a/packages/SystemUI/src/com/android/systemui/log/LogMessageImpl.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogMessageImpl.kt index 4dd6f652d1c7..f2a6a91adcdf 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogMessageImpl.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogMessageImpl.kt @@ -14,11 +14,9 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.plugins.log -/** - * Recyclable implementation of [LogMessage]. - */ +/** Recyclable implementation of [LogMessage]. */ data class LogMessageImpl( override var level: LogLevel, override var tag: String, @@ -68,23 +66,24 @@ data class LogMessageImpl( companion object Factory { fun create(): LogMessageImpl { return LogMessageImpl( - LogLevel.DEBUG, - DEFAULT_TAG, - 0, - DEFAULT_PRINTER, - null, - null, - null, - null, - 0, - 0, - 0, - 0, - 0.0, - false, - false, - false, - false) + LogLevel.DEBUG, + DEFAULT_TAG, + 0, + DEFAULT_PRINTER, + null, + null, + null, + null, + 0, + 0, + 0, + 0, + 0.0, + false, + false, + false, + false + ) } } } diff --git a/packages/SystemUI/src/com/android/systemui/log/LogcatEchoTracker.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogcatEchoTracker.kt index 8cda4236bc87..cfe894f276a0 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogcatEchoTracker.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogcatEchoTracker.kt @@ -14,24 +14,16 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.plugins.log -/** - * Keeps track of which [LogBuffer] messages should also appear in logcat. - */ +/** Keeps track of which [LogBuffer] messages should also appear in logcat. */ interface LogcatEchoTracker { - /** - * Whether [bufferName] should echo messages of [level] or higher to logcat. - */ + /** Whether [bufferName] should echo messages of [level] or higher to logcat. */ fun isBufferLoggable(bufferName: String, level: LogLevel): Boolean - /** - * Whether [tagName] should echo messages of [level] or higher to logcat. - */ + /** 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. - */ + /** Whether to log messages in a background thread. */ val logInBackgroundThread: Boolean } diff --git a/packages/SystemUI/src/com/android/systemui/log/LogcatEchoTrackerDebug.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogcatEchoTrackerDebug.kt index 40b0cdc173d8..d3fabaccb6d3 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogcatEchoTrackerDebug.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogcatEchoTrackerDebug.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.plugins.log import android.content.ContentResolver import android.database.ContentObserver @@ -36,19 +36,15 @@ import android.provider.Settings * $ adb shell settings put global systemui/tag/<tag> <level> * ``` */ -class LogcatEchoTrackerDebug private constructor( - private val contentResolver: ContentResolver -) : LogcatEchoTracker { +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 { + fun create(contentResolver: ContentResolver, mainLooper: Looper): LogcatEchoTrackerDebug { val tracker = LogcatEchoTrackerDebug(contentResolver) tracker.attach(mainLooper) return tracker @@ -57,37 +53,35 @@ class LogcatEchoTrackerDebug private constructor( private fun attach(mainLooper: Looper) { contentResolver.registerContentObserver( - Settings.Global.getUriFor(BUFFER_PATH), - true, - object : ContentObserver(Handler(mainLooper)) { - override fun onChange(selfChange: Boolean, uri: Uri?) { - super.onChange(selfChange, uri) - cachedBufferLevels.clear() - } - }) + Settings.Global.getUriFor(BUFFER_PATH), + true, + object : ContentObserver(Handler(mainLooper)) { + override fun onChange(selfChange: Boolean, uri: Uri?) { + super.onChange(selfChange, uri) + cachedBufferLevels.clear() + } + } + ) contentResolver.registerContentObserver( - Settings.Global.getUriFor(TAG_PATH), - true, - object : ContentObserver(Handler(mainLooper)) { - override fun onChange(selfChange: Boolean, uri: Uri?) { - super.onChange(selfChange, uri) - cachedTagLevels.clear() - } - }) + Settings.Global.getUriFor(TAG_PATH), + true, + object : ContentObserver(Handler(mainLooper)) { + override fun onChange(selfChange: Boolean, uri: Uri?) { + super.onChange(selfChange, uri) + cachedTagLevels.clear() + } + } + ) } - /** - * Whether [bufferName] should echo messages of [level] or higher to logcat. - */ + /** 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. - */ + /** 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) diff --git a/packages/SystemUI/src/com/android/systemui/log/LogcatEchoTrackerProd.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogcatEchoTrackerProd.kt index 1a4ad1907ff1..3c8bda4a44e0 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogcatEchoTrackerProd.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/log/LogcatEchoTrackerProd.kt @@ -14,11 +14,9 @@ * limitations under the License. */ -package com.android.systemui.log +package com.android.systemui.plugins.log -/** - * Production version of [LogcatEchoTracker] that isn't configurable. - */ +/** Production version of [LogcatEchoTracker] that isn't configurable. */ class LogcatEchoTrackerProd : LogcatEchoTracker { override val logInBackgroundThread = false diff --git a/packages/SystemUI/src/com/android/systemui/util/collection/RingBuffer.kt b/packages/SystemUI/plugin/src/com/android/systemui/plugins/util/RingBuffer.kt index 97dc842ec699..68d78907f028 100644 --- a/packages/SystemUI/src/com/android/systemui/util/collection/RingBuffer.kt +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/util/RingBuffer.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.systemui.util.collection +package com.android.systemui.plugins.util import kotlin.math.max @@ -32,19 +32,16 @@ import kotlin.math.max * @param factory A function that creates a fresh instance of T. Used by the buffer while it's * growing to [maxSize]. */ -class RingBuffer<T>( - private val maxSize: Int, - private val factory: () -> T -) : Iterable<T> { +class RingBuffer<T>(private val maxSize: Int, private val factory: () -> T) : Iterable<T> { private val buffer = MutableList<T?>(maxSize) { null } /** * An abstract representation that points to the "end" of the buffer. Increments every time - * [advance] is called and never wraps. Use [indexOf] to calculate the associated index into - * the backing array. Always points to the "next" available slot in the buffer. Before the - * buffer has completely filled, the value pointed to will be null. Afterward, it will be the - * value at the "beginning" of the buffer. + * [advance] is called and never wraps. Use [indexOf] to calculate the associated index into the + * backing array. Always points to the "next" available slot in the buffer. Before the buffer + * has completely filled, the value pointed to will be null. Afterward, it will be the value at + * the "beginning" of the buffer. * * This value is unlikely to overflow. Assuming [advance] is called at rate of 100 calls/ms, * omega will overflow after a little under three million years of continuous operation. @@ -60,24 +57,23 @@ class RingBuffer<T>( /** * Advances the buffer's position by one and returns the value that is now present at the "end" - * of the buffer. If the buffer is not yet full, uses [factory] to create a new item. - * Otherwise, reuses the value that was previously at the "beginning" of the buffer. + * of the buffer. If the buffer is not yet full, uses [factory] to create a new item. Otherwise, + * reuses the value that was previously at the "beginning" of the buffer. * - * IMPORTANT: The value is returned as-is, without being reset. It will retain any data that - * was previously stored on it. + * IMPORTANT: The value is returned as-is, without being reset. It will retain any data that was + * previously stored on it. */ fun advance(): T { val index = indexOf(omega) omega += 1 - val entry = buffer[index] ?: factory().also { - buffer[index] = it - } + val entry = buffer[index] ?: factory().also { buffer[index] = it } return entry } /** * Returns the value stored at [index], which can range from 0 (the "start", or oldest element - * of the buffer) to [size] - 1 (the "end", or newest element of the buffer). + * of the buffer) to [size] + * - 1 (the "end", or newest element of the buffer). */ operator fun get(index: Int): T { if (index < 0 || index >= size) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/LogBufferTest.kt b/packages/SystemUI/plugin/tests/log/LogBufferTest.kt index 56aff3c2fc8b..a39b856f0f49 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/log/LogBufferTest.kt +++ b/packages/SystemUI/plugin/tests/log/LogBufferTest.kt @@ -2,6 +2,7 @@ package com.android.systemui.log import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.plugins.log.LogBuffer import com.google.common.truth.Truth.assertThat import java.io.PrintWriter import java.io.StringWriter @@ -18,8 +19,7 @@ class LogBufferTest : SysuiTestCase() { private lateinit var outputWriter: StringWriter - @Mock - private lateinit var logcatEchoTracker: LogcatEchoTracker + @Mock private lateinit var logcatEchoTracker: LogcatEchoTracker @Before fun setup() { @@ -67,15 +67,17 @@ class LogBufferTest : SysuiTestCase() { @Test fun dump_writesCauseAndStacktrace() { buffer = createBuffer() - val exception = createTestException("Exception message", + val exception = + createTestException( + "Exception message", "TestClass", - cause = createTestException("The real cause!", "TestClass")) + cause = createTestException("The real cause!", "TestClass") + ) buffer.log("Tag", LogLevel.ERROR, { str1 = "Extra message" }, { str1!! }, exception) val dumpedString = dumpBuffer() - assertThat(dumpedString) - .contains("Caused by: java.lang.RuntimeException: The real cause!") + assertThat(dumpedString).contains("Caused by: java.lang.RuntimeException: The real cause!") assertThat(dumpedString).contains("at TestClass.TestMethod(TestClass.java:1)") assertThat(dumpedString).contains("at TestClass.TestMethod(TestClass.java:2)") } @@ -85,49 +87,47 @@ class LogBufferTest : SysuiTestCase() { buffer = createBuffer() val exception = RuntimeException("Root exception message") exception.addSuppressed( - createTestException( - "First suppressed exception", - "FirstClass", - createTestException("Cause of suppressed exp", "ThirdClass") - )) - exception.addSuppressed( - createTestException("Second suppressed exception", "SecondClass")) + createTestException( + "First suppressed exception", + "FirstClass", + createTestException("Cause of suppressed exp", "ThirdClass") + ) + ) + exception.addSuppressed(createTestException("Second suppressed exception", "SecondClass")) buffer.log("Tag", LogLevel.ERROR, { str1 = "Extra message" }, { str1!! }, exception) val dumpedStr = dumpBuffer() // first suppressed exception assertThat(dumpedStr) - .contains("Suppressed: " + - "java.lang.RuntimeException: First suppressed exception") + .contains("Suppressed: " + "java.lang.RuntimeException: First suppressed exception") assertThat(dumpedStr).contains("at FirstClass.TestMethod(FirstClass.java:1)") assertThat(dumpedStr).contains("at FirstClass.TestMethod(FirstClass.java:2)") assertThat(dumpedStr) - .contains("Caused by: java.lang.RuntimeException: Cause of suppressed exp") + .contains("Caused by: java.lang.RuntimeException: Cause of suppressed exp") assertThat(dumpedStr).contains("at ThirdClass.TestMethod(ThirdClass.java:1)") assertThat(dumpedStr).contains("at ThirdClass.TestMethod(ThirdClass.java:2)") // second suppressed exception assertThat(dumpedStr) - .contains("Suppressed: " + - "java.lang.RuntimeException: Second suppressed exception") + .contains("Suppressed: " + "java.lang.RuntimeException: Second suppressed exception") assertThat(dumpedStr).contains("at SecondClass.TestMethod(SecondClass.java:1)") assertThat(dumpedStr).contains("at SecondClass.TestMethod(SecondClass.java:2)") } private fun createTestException( - message: String, - errorClass: String, - cause: Throwable? = null, + message: String, + errorClass: String, + cause: Throwable? = null, ): Exception { val exception = RuntimeException(message, cause) - exception.stackTrace = (1..5).map { lineNumber -> - StackTraceElement(errorClass, - "TestMethod", - "$errorClass.java", - lineNumber) - }.toTypedArray() + exception.stackTrace = + (1..5) + .map { lineNumber -> + StackTraceElement(errorClass, "TestMethod", "$errorClass.java", lineNumber) + } + .toTypedArray() return exception } diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml b/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml index 3ad7c8c4369c..d64587dcf362 100644 --- a/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml +++ b/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml @@ -37,6 +37,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/keyguard_large_clock_top_margin" + android:clipChildren="false" android:visibility="gone" /> <!-- Not quite optimal but needed to translate these items as a group. The diff --git a/packages/SystemUI/res/layout-land/auth_credential_password_view.xml b/packages/SystemUI/res/layout-land/auth_credential_password_view.xml index bc8e540cb612..3bcc37a478c9 100644 --- a/packages/SystemUI/res/layout-land/auth_credential_password_view.xml +++ b/packages/SystemUI/res/layout-land/auth_credential_password_view.xml @@ -16,45 +16,47 @@ <com.android.systemui.biometrics.AuthCredentialPasswordView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" - android:elevation="@dimen/biometric_dialog_elevation"> + android:elevation="@dimen/biometric_dialog_elevation" + android:theme="?app:attr/lockPinPasswordStyle"> <RelativeLayout android:id="@+id/auth_credential_header" - style="@style/AuthCredentialHeaderStyle" + style="?headerStyle" android:layout_width="wrap_content" android:layout_height="match_parent"> <ImageView android:id="@+id/icon" - style="@style/TextAppearance.AuthNonBioCredential.Icon" + style="?headerIconStyle" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:contentDescription="@null"/> <TextView android:id="@+id/title" - style="@style/TextAppearance.AuthNonBioCredential.Title" + style="?titleTextAppearance" android:layout_below="@id/icon" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/subtitle" - style="@style/TextAppearance.AuthNonBioCredential.Subtitle" + style="?subTitleTextAppearance" android:layout_below="@id/title" android:layout_alignParentLeft="true" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/description" - style="@style/TextAppearance.AuthNonBioCredential.Description" + style="?descriptionTextAppearance" android:layout_below="@id/subtitle" android:layout_alignParentLeft="true" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout> @@ -67,7 +69,7 @@ <ImeAwareEditText android:id="@+id/lockPassword" - style="@style/TextAppearance.AuthCredential.PasswordEntry" + style="?passwordTextAppearance" android:layout_width="208dp" android:layout_height="wrap_content" android:layout_gravity="center" @@ -77,7 +79,7 @@ <TextView android:id="@+id/error" - style="@style/TextAppearance.AuthNonBioCredential.Error" + style="?errorTextAppearance" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" /> diff --git a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml index 19a85fec1397..a3dd334bd667 100644 --- a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml +++ b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml @@ -16,91 +16,71 @@ <com.android.systemui.biometrics.AuthCredentialPatternView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" - android:elevation="@dimen/biometric_dialog_elevation"> + android:elevation="@dimen/biometric_dialog_elevation" + android:theme="?app:attr/lockPatternStyle"> - <LinearLayout + <RelativeLayout + android:id="@+id/auth_credential_header" + style="?headerStyle" android:layout_width="0dp" android:layout_height="match_parent" - android:layout_weight="1" - android:gravity="center" - android:orientation="vertical"> - - <Space - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_weight="1"/> + android:layout_weight="1"> <ImageView android:id="@+id/icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content"/> + style="?headerIconStyle" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:contentDescription="@null"/> <TextView android:id="@+id/title" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="@style/TextAppearance.AuthCredential.Title"/> + style="?titleTextAppearance" + android:layout_below="@id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> <TextView android:id="@+id/subtitle" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="@style/TextAppearance.AuthCredential.Subtitle"/> + style="?subTitleTextAppearance" + android:layout_below="@id/title" + android:layout_alignParentLeft="true" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> <TextView android:id="@+id/description" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="@style/TextAppearance.AuthCredential.Description"/> + style="?descriptionTextAppearance" + android:layout_below="@id/subtitle" + android:layout_alignParentLeft="true" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> - <Space - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_weight="1"/> + </RelativeLayout> + + <FrameLayout + android:layout_weight="1" + style="?containerStyle" + android:layout_width="0dp" + android:layout_height="match_parent"> + + <com.android.internal.widget.LockPatternView + android:id="@+id/lockPattern" + android:layout_gravity="center" + android:layout_width="match_parent" + android:layout_height="match_parent"/> <TextView android:id="@+id/error" + style="?errorTextAppearance" android:layout_width="match_parent" android:layout_height="wrap_content" - style="@style/TextAppearance.AuthCredential.Error"/> - - <Space - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_weight="1"/> - - </LinearLayout> - - <LinearLayout - android:layout_width="0dp" - android:layout_height="match_parent" - android:layout_weight="1" - android:orientation="vertical" - android:gravity="center" - android:paddingLeft="0dp" - android:paddingRight="0dp" - android:paddingTop="0dp" - android:paddingBottom="16dp" - android:clipToPadding="false"> - - <FrameLayout - android:layout_width="wrap_content" - android:layout_height="0dp" - android:layout_weight="1" - style="@style/LockPatternContainerStyle"> - - <com.android.internal.widget.LockPatternView - android:id="@+id/lockPattern" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" - style="@style/LockPatternStyleBiometricPrompt"/> - - </FrameLayout> + android:layout_gravity="center_horizontal|bottom"/> - </LinearLayout> + </FrameLayout> </com.android.systemui.biometrics.AuthCredentialPatternView>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/auth_credential_password_view.xml b/packages/SystemUI/res/layout/auth_credential_password_view.xml index 75a80bc39a1f..774b335f913e 100644 --- a/packages/SystemUI/res/layout/auth_credential_password_view.xml +++ b/packages/SystemUI/res/layout/auth_credential_password_view.xml @@ -16,43 +16,45 @@ <com.android.systemui.biometrics.AuthCredentialPasswordView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:elevation="@dimen/biometric_dialog_elevation" - android:orientation="vertical"> + android:orientation="vertical" + android:theme="?app:attr/lockPinPasswordStyle"> <RelativeLayout android:id="@+id/auth_credential_header" - style="@style/AuthCredentialHeaderStyle" + style="?headerStyle" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/icon" - style="@style/TextAppearance.AuthNonBioCredential.Icon" + style="?headerIconStyle" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:contentDescription="@null"/> <TextView android:id="@+id/title" - style="@style/TextAppearance.AuthNonBioCredential.Title" + style="?titleTextAppearance" android:layout_below="@id/icon" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/subtitle" - style="@style/TextAppearance.AuthNonBioCredential.Subtitle" + style="?subTitleTextAppearance" android:layout_below="@id/title" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/description" - style="@style/TextAppearance.AuthNonBioCredential.Description" + style="?descriptionTextAppearance" android:layout_below="@id/subtitle" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content"/> </RelativeLayout> @@ -64,7 +66,7 @@ <ImeAwareEditText android:id="@+id/lockPassword" - style="@style/TextAppearance.AuthCredential.PasswordEntry" + style="?passwordTextAppearance" android:layout_width="208dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" @@ -74,7 +76,7 @@ <TextView android:id="@+id/error" - style="@style/TextAppearance.AuthNonBioCredential.Error" + style="?errorTextAppearance" android:layout_gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" /> diff --git a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml index dada9813c320..4af997017bba 100644 --- a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml +++ b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml @@ -16,87 +16,66 @@ <com.android.systemui.biometrics.AuthCredentialPatternView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" - android:gravity="center_horizontal" - android:elevation="@dimen/biometric_dialog_elevation"> + android:elevation="@dimen/biometric_dialog_elevation" + android:theme="?app:attr/lockPatternStyle"> <RelativeLayout + android:id="@+id/auth_credential_header" + style="?headerStyle" android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - <LinearLayout - android:id="@+id/auth_credential_header" - style="@style/AuthCredentialHeaderStyle" - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <ImageView - android:id="@+id/icon" - android:layout_width="48dp" - android:layout_height="48dp" - android:contentDescription="@null" /> - - <TextView - android:id="@+id/title" - style="@style/TextAppearance.AuthNonBioCredential.Title" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> - - <TextView - android:id="@+id/subtitle" - style="@style/TextAppearance.AuthNonBioCredential.Subtitle" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> + android:layout_height="wrap_content"> + + <ImageView + android:id="@+id/icon" + style="?headerIconStyle" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:contentDescription="@null"/> + + <TextView + android:id="@+id/title" + style="?titleTextAppearance" + android:layout_below="@id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <TextView + android:id="@+id/subtitle" + style="?subTitleTextAppearance" + android:layout_below="@id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <TextView + android:id="@+id/description" + style="?descriptionTextAppearance" + android:layout_below="@id/subtitle" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + </RelativeLayout> - <TextView - android:id="@+id/description" - style="@style/TextAppearance.AuthNonBioCredential.Description" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> - </LinearLayout> + <FrameLayout + android:id="@+id/auth_credential_container" + style="?containerStyle" + android:layout_width="match_parent" + android:layout_height="match_parent"> - <LinearLayout + <com.android.internal.widget.LockPatternView + android:id="@+id/lockPattern" + android:layout_gravity="center" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_below="@id/auth_credential_header" - android:gravity="center" - android:orientation="vertical" - android:paddingBottom="16dp" - android:paddingTop="60dp"> + android:layout_height="match_parent"/> - <FrameLayout - style="@style/LockPatternContainerStyle" - android:layout_width="wrap_content" - android:layout_height="0dp" - android:layout_weight="1"> - - <com.android.internal.widget.LockPatternView - android:id="@+id/lockPattern" - style="@style/LockPatternStyle" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" /> - - </FrameLayout> - - </LinearLayout> - - <LinearLayout + <TextView + android:id="@+id/error" + style="?errorTextAppearance" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_alignParentBottom="true"> - - <TextView - android:id="@+id/error" - style="@style/TextAppearance.AuthNonBioCredential.Error" - android:layout_width="match_parent" - android:layout_height="wrap_content" /> - - </LinearLayout> - - </RelativeLayout> + android:layout_gravity="center_horizontal|bottom"/> + </FrameLayout> </com.android.systemui.biometrics.AuthCredentialPatternView>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/chipbar.xml b/packages/SystemUI/res/layout/chipbar.xml index 4da77118f00b..bc97e511e7f4 100644 --- a/packages/SystemUI/res/layout/chipbar.xml +++ b/packages/SystemUI/res/layout/chipbar.xml @@ -19,12 +19,12 @@ <com.android.systemui.temporarydisplay.chipbar.ChipbarRootView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" - android:id="@+id/media_ttt_sender_chip" + android:id="@+id/chipbar_root_view" android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayout - android:id="@+id/media_ttt_sender_chip_inner" + android:id="@+id/chipbar_inner" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -39,7 +39,7 @@ > <com.android.internal.widget.CachingIconView - android:id="@+id/app_icon" + android:id="@+id/start_icon" android:layout_width="@dimen/media_ttt_app_icon_size" android:layout_height="@dimen/media_ttt_app_icon_size" android:layout_marginEnd="12dp" @@ -69,7 +69,7 @@ /> <ImageView - android:id="@+id/failure_icon" + android:id="@+id/error" android:layout_width="@dimen/media_ttt_status_icon_size" android:layout_height="@dimen/media_ttt_status_icon_size" android:layout_marginStart="@dimen/media_ttt_last_item_start_margin" @@ -78,11 +78,11 @@ android:alpha="0.0" /> + <!-- TODO(b/245610654): Re-name all the media-specific dimens to chipbar dimens instead. --> <TextView - android:id="@+id/undo" + android:id="@+id/end_button" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/media_transfer_undo" android:textColor="?androidprv:attr/textColorOnAccent" android:layout_marginStart="@dimen/media_ttt_last_item_start_margin" android:textSize="@dimen/media_ttt_text_size" diff --git a/packages/SystemUI/res/layout/combined_qs_header.xml b/packages/SystemUI/res/layout/combined_qs_header.xml index 5dc34b9db594..a565988c14ad 100644 --- a/packages/SystemUI/res/layout/combined_qs_header.xml +++ b/packages/SystemUI/res/layout/combined_qs_header.xml @@ -73,8 +73,8 @@ android:singleLine="true" android:textDirection="locale" android:textAppearance="@style/TextAppearance.QS.Status" - android:transformPivotX="0sp" - android:transformPivotY="20sp" + android:transformPivotX="0dp" + android:transformPivotY="24dp" android:scaleX="1" android:scaleY="1" /> diff --git a/packages/SystemUI/res/values-land/styles.xml b/packages/SystemUI/res/values-land/styles.xml index ac9a947f4417..aefd9981d02e 100644 --- a/packages/SystemUI/res/values-land/styles.xml +++ b/packages/SystemUI/res/values-land/styles.xml @@ -24,7 +24,36 @@ <item name="android:paddingEnd">24dp</item> <item name="android:paddingTop">48dp</item> <item name="android:paddingBottom">10dp</item> - <item name="android:gravity">top|center_horizontal</item> + <item name="android:gravity">top|left</item> + </style> + + <style name="AuthCredentialPatternContainerStyle"> + <item name="android:gravity">center</item> + <item name="android:maxHeight">320dp</item> + <item name="android:maxWidth">320dp</item> + <item name="android:minHeight">200dp</item> + <item name="android:minWidth">200dp</item> + <item name="android:paddingHorizontal">60dp</item> + <item name="android:paddingVertical">20dp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Title"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">6dp</item> + <item name="android:textSize">36dp</item> + <item name="android:focusable">true</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Subtitle"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">6dp</item> + <item name="android:textSize">18sp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Description"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">6dp</item> + <item name="android:textSize">18sp</item> </style> </resources> diff --git a/packages/SystemUI/res/values-sw600dp-land/styles.xml b/packages/SystemUI/res/values-sw600dp-land/styles.xml new file mode 100644 index 000000000000..8148d3dfaf7d --- /dev/null +++ b/packages/SystemUI/res/values-sw600dp-land/styles.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2022 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources xmlns:android="http://schemas.android.com/apk/res/android"> + + <style name="AuthCredentialPatternContainerStyle"> + <item name="android:gravity">center</item> + <item name="android:maxHeight">420dp</item> + <item name="android:maxWidth">420dp</item> + <item name="android:minHeight">200dp</item> + <item name="android:minWidth">200dp</item> + <item name="android:paddingHorizontal">120dp</item> + <item name="android:paddingVertical">40dp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Title"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">16dp</item> + <item name="android:textSize">36sp</item> + <item name="android:focusable">true</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Subtitle"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">16dp</item> + <item name="android:textSize">18sp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Description"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">16dp</item> + <item name="android:textSize">18sp</item> + </style> +</resources> diff --git a/packages/SystemUI/res/values-sw600dp-port/styles.xml b/packages/SystemUI/res/values-sw600dp-port/styles.xml new file mode 100644 index 000000000000..771de08cb360 --- /dev/null +++ b/packages/SystemUI/res/values-sw600dp-port/styles.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2022 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources xmlns:android="http://schemas.android.com/apk/res/android"> + + <style name="AuthCredentialHeaderStyle"> + <item name="android:paddingStart">120dp</item> + <item name="android:paddingEnd">120dp</item> + <item name="android:paddingTop">80dp</item> + <item name="android:paddingBottom">10dp</item> + <item name="android:layout_gravity">top</item> + </style> + + <style name="AuthCredentialPatternContainerStyle"> + <item name="android:gravity">center</item> + <item name="android:maxHeight">420dp</item> + <item name="android:maxWidth">420dp</item> + <item name="android:minHeight">200dp</item> + <item name="android:minWidth">200dp</item> + <item name="android:paddingHorizontal">180dp</item> + <item name="android:paddingVertical">80dp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Title"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">24dp</item> + <item name="android:textSize">36sp</item> + <item name="android:focusable">true</item> + </style> + +</resources> diff --git a/packages/SystemUI/res/values-sw720dp-land/styles.xml b/packages/SystemUI/res/values-sw720dp-land/styles.xml new file mode 100644 index 000000000000..f9ed67d89de7 --- /dev/null +++ b/packages/SystemUI/res/values-sw720dp-land/styles.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2022 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources xmlns:android="http://schemas.android.com/apk/res/android"> + + <style name="AuthCredentialPatternContainerStyle"> + <item name="android:gravity">center</item> + <item name="android:maxHeight">420dp</item> + <item name="android:maxWidth">420dp</item> + <item name="android:minHeight">200dp</item> + <item name="android:minWidth">200dp</item> + <item name="android:paddingHorizontal">120dp</item> + <item name="android:paddingVertical">40dp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Title"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">16dp</item> + <item name="android:textSize">36sp</item> + <item name="android:focusable">true</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Subtitle"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">16dp</item> + <item name="android:textSize">18sp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Description"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">16dp</item> + <item name="android:textSize">18sp</item> + </style> + +</resources> diff --git a/packages/SystemUI/res/values-sw720dp-port/styles.xml b/packages/SystemUI/res/values-sw720dp-port/styles.xml new file mode 100644 index 000000000000..78d299c483e6 --- /dev/null +++ b/packages/SystemUI/res/values-sw720dp-port/styles.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2022 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources xmlns:android="http://schemas.android.com/apk/res/android"> + + <style name="AuthCredentialHeaderStyle"> + <item name="android:paddingStart">120dp</item> + <item name="android:paddingEnd">120dp</item> + <item name="android:paddingTop">80dp</item> + <item name="android:paddingBottom">10dp</item> + <item name="android:layout_gravity">top</item> + </style> + + <style name="AuthCredentialPatternContainerStyle"> + <item name="android:gravity">center</item> + <item name="android:maxHeight">420dp</item> + <item name="android:maxWidth">420dp</item> + <item name="android:minHeight">200dp</item> + <item name="android:minWidth">200dp</item> + <item name="android:paddingHorizontal">240dp</item> + <item name="android:paddingVertical">120dp</item> + </style> + + <style name="TextAppearance.AuthNonBioCredential.Title"> + <item name="android:fontFamily">google-sans</item> + <item name="android:layout_marginTop">24dp</item> + <item name="android:textSize">36sp</item> + <item name="android:focusable">true</item> + </style> + +</resources> diff --git a/packages/SystemUI/res/values/attrs.xml b/packages/SystemUI/res/values/attrs.xml index 9a71995383ac..df0659d67afe 100644 --- a/packages/SystemUI/res/values/attrs.xml +++ b/packages/SystemUI/res/values/attrs.xml @@ -191,5 +191,18 @@ <declare-styleable name="DelayableMarqueeTextView"> <attr name="marqueeDelay" format="integer" /> </declare-styleable> + + <declare-styleable name="AuthCredentialView"> + <attr name="lockPatternStyle" format="reference" /> + <attr name="lockPinPasswordStyle" format="reference" /> + <attr name="containerStyle" format="reference" /> + <attr name="headerStyle" format="reference" /> + <attr name="headerIconStyle" format="reference" /> + <attr name="titleTextAppearance" format="reference" /> + <attr name="subTitleTextAppearance" format="reference" /> + <attr name="descriptionTextAppearance" format="reference" /> + <attr name="passwordTextAppearance" format="reference" /> + <attr name="errorTextAppearance" format="reference"/> + </declare-styleable> </resources> diff --git a/packages/SystemUI/res/values/bools.xml b/packages/SystemUI/res/values/bools.xml index c67ac8d34aa6..8221d78fbfd7 100644 --- a/packages/SystemUI/res/values/bools.xml +++ b/packages/SystemUI/res/values/bools.xml @@ -18,6 +18,13 @@ <resources> <!-- Whether to show the user switcher in quick settings when only a single user is present. --> <bool name="qs_show_user_switcher_for_single_user">false</bool> + <!-- Whether to show a custom biometric prompt size--> <bool name="use_custom_bp_size">false</bool> + + <!-- Whether to enable clipping on Quick Settings --> + <bool name="qs_enable_clipping">true</bool> + + <!-- Whether to enable transparent background for notification scrims --> + <bool name="notification_scrim_transparent">false</bool> </resources> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 01c9ac1b9d15..66f0e7543469 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -519,7 +519,7 @@ <dimen name="qs_tile_margin_horizontal">8dp</dimen> <dimen name="qs_tile_margin_vertical">@dimen/qs_tile_margin_horizontal</dimen> <dimen name="qs_tile_margin_top_bottom">4dp</dimen> - <dimen name="qs_brightness_margin_top">8dp</dimen> + <dimen name="qs_brightness_margin_top">12dp</dimen> <dimen name="qs_brightness_margin_bottom">16dp</dimen> <dimen name="qqs_layout_margin_top">16dp</dimen> <dimen name="qqs_layout_padding_bottom">24dp</dimen> @@ -572,6 +572,7 @@ <dimen name="qs_header_row_min_height">48dp</dimen> <dimen name="qs_header_non_clickable_element_height">24dp</dimen> + <dimen name="new_qs_header_non_clickable_element_height">20dp</dimen> <dimen name="qs_footer_padding">20dp</dimen> <dimen name="qs_security_footer_height">88dp</dimen> diff --git a/packages/SystemUI/res/values/integers.xml b/packages/SystemUI/res/values/integers.xml index 3164ed1e6751..e30d4415a0c4 100644 --- a/packages/SystemUI/res/values/integers.xml +++ b/packages/SystemUI/res/values/integers.xml @@ -28,4 +28,11 @@ <!-- The time it takes for the over scroll release animation to complete, in milli seconds. --> <integer name="lockscreen_shade_over_scroll_release_duration">0</integer> + + <!-- Values for transition of QS Headers --> + <integer name="fade_out_complete_frame">14</integer> + <integer name="fade_in_start_frame">58</integer> + <!-- Percentage of displacement for items in QQS to guarantee matching with bottom of clock at + fade_out_complete_frame --> + <dimen name="percent_displacement_at_fade_out" format="float">0.1066</dimen> </resources>
\ No newline at end of file diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index a734fa744b48..e76887babc50 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -128,11 +128,10 @@ <!-- This is hard coded to be sans-serif-condensed to match the icons --> <style name="TextAppearance.QS.Status"> - <item name="android:fontFamily">@*android:string/config_bodyFontFamilyMedium</item> + <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item> <item name="android:textColor">?android:attr/textColorPrimary</item> <item name="android:textSize">14sp</item> <item name="android:letterSpacing">0.01</item> - <item name="android:lineHeight">20sp</item> </style> <style name="TextAppearance.QS.SecurityFooter" parent="@style/TextAppearance.QS.Status"> @@ -143,12 +142,10 @@ <style name="TextAppearance.QS.Status.Carriers" /> <style name="TextAppearance.QS.Status.Carriers.NoCarrierText"> - <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item> <item name="android:textColor">?android:attr/textColorSecondary</item> </style> <style name="TextAppearance.QS.Status.Build"> - <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item> <item name="android:textColor">?android:attr/textColorSecondary</item> </style> @@ -198,15 +195,11 @@ <item name="android:textColor">?android:attr/textColorPrimary</item> </style> - <style name="TextAppearance.AuthNonBioCredential.Icon"> - <item name="android:layout_width">@dimen/biometric_auth_icon_size</item> - <item name="android:layout_height">@dimen/biometric_auth_icon_size</item> - </style> - <style name="TextAppearance.AuthNonBioCredential.Title"> <item name="android:fontFamily">google-sans</item> - <item name="android:layout_marginTop">20dp</item> - <item name="android:textSize">36sp</item> + <item name="android:layout_marginTop">24dp</item> + <item name="android:textSize">36dp</item> + <item name="android:focusable">true</item> </style> <style name="TextAppearance.AuthNonBioCredential.Subtitle"> @@ -218,12 +211,10 @@ <style name="TextAppearance.AuthNonBioCredential.Description"> <item name="android:fontFamily">google-sans</item> <item name="android:layout_marginTop">20dp</item> - <item name="android:textSize">16sp</item> + <item name="android:textSize">18sp</item> </style> <style name="TextAppearance.AuthNonBioCredential.Error"> - <item name="android:paddingTop">6dp</item> - <item name="android:paddingBottom">18dp</item> <item name="android:paddingHorizontal">24dp</item> <item name="android:textSize">14sp</item> <item name="android:textColor">?android:attr/colorError</item> @@ -242,12 +233,33 @@ <style name="AuthCredentialHeaderStyle"> <item name="android:paddingStart">48dp</item> <item name="android:paddingEnd">48dp</item> - <item name="android:paddingTop">28dp</item> - <item name="android:paddingBottom">20dp</item> - <item name="android:orientation">vertical</item> + <item name="android:paddingTop">48dp</item> + <item name="android:paddingBottom">10dp</item> <item name="android:layout_gravity">top</item> </style> + <style name="AuthCredentialIconStyle"> + <item name="android:layout_width">@dimen/biometric_auth_icon_size</item> + <item name="android:layout_height">@dimen/biometric_auth_icon_size</item> + </style> + + <style name="AuthCredentialPatternContainerStyle"> + <item name="android:gravity">center</item> + <item name="android:maxHeight">420dp</item> + <item name="android:maxWidth">420dp</item> + <item name="android:minHeight">200dp</item> + <item name="android:minWidth">200dp</item> + <item name="android:padding">20dp</item> + </style> + + <style name="AuthCredentialPinPasswordContainerStyle"> + <item name="android:gravity">center</item> + <item name="android:maxHeight">48dp</item> + <item name="android:maxWidth">600dp</item> + <item name="android:minHeight">48dp</item> + <item name="android:minWidth">200dp</item> + </style> + <style name="DeviceManagementDialogTitle"> <item name="android:gravity">center</item> <item name="android:textAppearance">@style/TextAppearance.DeviceManagementDialog.Title</item> @@ -285,7 +297,9 @@ <item name="wallpaperTextColorSecondary">@*android:color/secondary_text_material_dark</item> <item name="wallpaperTextColorAccent">@color/material_dynamic_primary90</item> <item name="android:colorError">@*android:color/error_color_material_dark</item> - <item name="*android:lockPatternStyle">@style/LockPatternStyle</item> + <item name="*android:lockPatternStyle">@style/LockPatternViewStyle</item> + <item name="lockPatternStyle">@style/LockPatternContainerStyle</item> + <item name="lockPinPasswordStyle">@style/LockPinPasswordContainerStyle</item> <item name="passwordStyle">@style/PasswordTheme</item> <item name="numPadKeyStyle">@style/NumPadKey</item> <item name="backgroundProtectedStyle">@style/BackgroundProtectedStyle</item> @@ -311,27 +325,33 @@ <item name="android:textColor">?attr/wallpaperTextColor</item> </style> - <style name="LockPatternContainerStyle"> - <item name="android:maxHeight">400dp</item> - <item name="android:maxWidth">420dp</item> - <item name="android:minHeight">0dp</item> - <item name="android:minWidth">0dp</item> - <item name="android:paddingHorizontal">60dp</item> - <item name="android:paddingBottom">40dp</item> + <style name="AuthCredentialStyle"> + <item name="*android:regularColor">?android:attr/colorForeground</item> + <item name="*android:successColor">?android:attr/colorForeground</item> + <item name="*android:errorColor">?android:attr/colorError</item> + <item name="*android:dotColor">?android:attr/textColorSecondary</item> + <item name="headerStyle">@style/AuthCredentialHeaderStyle</item> + <item name="headerIconStyle">@style/AuthCredentialIconStyle</item> + <item name="titleTextAppearance">@style/TextAppearance.AuthNonBioCredential.Title</item> + <item name="subTitleTextAppearance">@style/TextAppearance.AuthNonBioCredential.Subtitle</item> + <item name="descriptionTextAppearance">@style/TextAppearance.AuthNonBioCredential.Description</item> + <item name="passwordTextAppearance">@style/TextAppearance.AuthCredential.PasswordEntry</item> + <item name="errorTextAppearance">@style/TextAppearance.AuthNonBioCredential.Error</item> </style> - <style name="LockPatternStyle"> + <style name="LockPatternViewStyle" > <item name="*android:regularColor">?android:attr/colorAccent</item> <item name="*android:successColor">?android:attr/textColorPrimary</item> <item name="*android:errorColor">?android:attr/colorError</item> <item name="*android:dotColor">?android:attr/textColorSecondary</item> </style> - <style name="LockPatternStyleBiometricPrompt"> - <item name="*android:regularColor">?android:attr/colorForeground</item> - <item name="*android:successColor">?android:attr/colorForeground</item> - <item name="*android:errorColor">?android:attr/colorError</item> - <item name="*android:dotColor">?android:attr/textColorSecondary</item> + <style name="LockPatternContainerStyle" parent="@style/AuthCredentialStyle"> + <item name="containerStyle">@style/AuthCredentialPatternContainerStyle</item> + </style> + + <style name="LockPinPasswordContainerStyle" parent="@style/AuthCredentialStyle"> + <item name="containerStyle">@style/AuthCredentialPinPasswordContainerStyle</item> </style> <style name="Theme.SystemUI.QuickSettings" parent="@*android:style/Theme.DeviceDefault"> diff --git a/packages/SystemUI/res/xml/combined_qs_header_scene.xml b/packages/SystemUI/res/xml/combined_qs_header_scene.xml index f3866c08cbfc..de855e275f5f 100644 --- a/packages/SystemUI/res/xml/combined_qs_header_scene.xml +++ b/packages/SystemUI/res/xml/combined_qs_header_scene.xml @@ -27,67 +27,60 @@ <KeyPosition app:keyPositionType="deltaRelative" app:percentX="0" - app:percentY="0" - app:framePosition="49" + app:percentY="@dimen/percent_displacement_at_fade_out" + app:framePosition="@integer/fade_out_complete_frame" app:sizePercent="0" app:curveFit="linear" app:motionTarget="@id/date" /> <KeyPosition app:keyPositionType="deltaRelative" app:percentX="1" - app:percentY="0.51" + app:percentY="0.5" app:sizePercent="1" - app:framePosition="51" + app:framePosition="50" app:curveFit="linear" app:motionTarget="@id/date" /> <KeyAttribute app:motionTarget="@id/date" - app:framePosition="30" + app:framePosition="14" android:alpha="0" /> <KeyAttribute app:motionTarget="@id/date" - app:framePosition="70" + app:framePosition="@integer/fade_in_start_frame" android:alpha="0" /> <KeyPosition - app:keyPositionType="pathRelative" - app:percentX="0" - app:percentY="0" - app:framePosition="0" - app:curveFit="linear" - app:motionTarget="@id/statusIcons" /> - <KeyPosition - app:keyPositionType="pathRelative" + app:keyPositionType="deltaRelative" app:percentX="0" - app:percentY="0" - app:framePosition="50" + app:percentY="@dimen/percent_displacement_at_fade_out" + app:framePosition="@integer/fade_out_complete_frame" app:sizePercent="0" app:curveFit="linear" app:motionTarget="@id/statusIcons" /> <KeyPosition app:keyPositionType="deltaRelative" app:percentX="1" - app:percentY="0.51" - app:framePosition="51" + app:percentY="0.5" + app:framePosition="50" app:sizePercent="1" app:curveFit="linear" app:motionTarget="@id/statusIcons" /> <KeyAttribute app:motionTarget="@id/statusIcons" - app:framePosition="30" + app:framePosition="@integer/fade_out_complete_frame" android:alpha="0" /> <KeyAttribute app:motionTarget="@id/statusIcons" - app:framePosition="70" + app:framePosition="@integer/fade_in_start_frame" android:alpha="0" /> <KeyPosition app:keyPositionType="deltaRelative" app:percentX="0" - app:percentY="0" - app:framePosition="50" + app:percentY="@dimen/percent_displacement_at_fade_out" + app:framePosition="@integer/fade_out_complete_frame" app:percentWidth="1" app:percentHeight="1" app:curveFit="linear" @@ -95,27 +88,27 @@ <KeyPosition app:keyPositionType="deltaRelative" app:percentX="1" - app:percentY="0.51" - app:framePosition="51" + app:percentY="0.5" + app:framePosition="50" app:percentWidth="1" app:percentHeight="1" app:curveFit="linear" app:motionTarget="@id/batteryRemainingIcon" /> <KeyAttribute app:motionTarget="@id/batteryRemainingIcon" - app:framePosition="30" + app:framePosition="@integer/fade_out_complete_frame" android:alpha="0" /> <KeyAttribute app:motionTarget="@id/batteryRemainingIcon" - app:framePosition="70" + app:framePosition="@integer/fade_in_start_frame" android:alpha="0" /> <KeyPosition app:motionTarget="@id/carrier_group" app:percentX="1" - app:percentY="0.51" - app:framePosition="51" + app:percentY="0.5" + app:framePosition="50" app:percentWidth="1" app:percentHeight="1" app:curveFit="linear" @@ -126,7 +119,7 @@ android:alpha="0" /> <KeyAttribute app:motionTarget="@id/carrier_group" - app:framePosition="70" + app:framePosition="@integer/fade_in_start_frame" android:alpha="0" /> </KeyFrameSet> </Transition> diff --git a/packages/SystemUI/res/xml/qqs_header.xml b/packages/SystemUI/res/xml/qqs_header.xml index a82684d0358b..88b4f43b440b 100644 --- a/packages/SystemUI/res/xml/qqs_header.xml +++ b/packages/SystemUI/res/xml/qqs_header.xml @@ -43,7 +43,8 @@ android:id="@+id/date"> <Layout android:layout_width="0dp" - android:layout_height="@dimen/qs_header_non_clickable_element_height" + android:layout_height="@dimen/new_qs_header_non_clickable_element_height" + android:layout_marginStart="8dp" app:layout_constrainedWidth="true" app:layout_constraintStart_toEndOf="@id/clock" app:layout_constraintEnd_toStartOf="@id/barrier" @@ -57,8 +58,8 @@ android:id="@+id/statusIcons"> <Layout android:layout_width="0dp" - android:layout_height="@dimen/qs_header_non_clickable_element_height" - app:layout_constraintHeight_min="@dimen/qs_header_non_clickable_element_height" + android:layout_height="@dimen/new_qs_header_non_clickable_element_height" + app:layout_constraintHeight_min="@dimen/new_qs_header_non_clickable_element_height" app:layout_constraintStart_toEndOf="@id/date" app:layout_constraintEnd_toStartOf="@id/batteryRemainingIcon" app:layout_constraintTop_toTopOf="parent" @@ -71,9 +72,9 @@ android:id="@+id/batteryRemainingIcon"> <Layout android:layout_width="wrap_content" - android:layout_height="@dimen/qs_header_non_clickable_element_height" + android:layout_height="@dimen/new_qs_header_non_clickable_element_height" app:layout_constrainedWidth="true" - app:layout_constraintHeight_min="@dimen/qs_header_non_clickable_element_height" + app:layout_constraintHeight_min="@dimen/new_qs_header_non_clickable_element_height" app:layout_constraintStart_toEndOf="@id/statusIcons" app:layout_constraintEnd_toEndOf="@id/end_guide" app:layout_constraintTop_toTopOf="parent" diff --git a/packages/SystemUI/res/xml/qs_header_new.xml b/packages/SystemUI/res/xml/qs_header_new.xml index f39e6bd65b86..d8a4e7752960 100644 --- a/packages/SystemUI/res/xml/qs_header_new.xml +++ b/packages/SystemUI/res/xml/qs_header_new.xml @@ -40,13 +40,13 @@ android:layout_height="@dimen/large_screen_shade_header_min_height" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/privacy_container" - app:layout_constraintBottom_toTopOf="@id/date" + app:layout_constraintBottom_toBottomOf="@id/carrier_group" app:layout_constraintEnd_toStartOf="@id/carrier_group" app:layout_constraintHorizontal_bias="0" /> <Transform - android:scaleX="2.4" - android:scaleY="2.4" + android:scaleX="2.57" + android:scaleY="2.57" /> </Constraint> @@ -54,11 +54,11 @@ android:id="@+id/date"> <Layout android:layout_width="0dp" - android:layout_height="@dimen/qs_header_non_clickable_element_height" + android:layout_height="@dimen/new_qs_header_non_clickable_element_height" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/space" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintTop_toBottomOf="@id/clock" + app:layout_constraintTop_toBottomOf="@id/carrier_group" app:layout_constraintHorizontal_bias="0" app:layout_constraintHorizontal_chainStyle="spread_inside" /> @@ -87,7 +87,7 @@ android:id="@+id/statusIcons"> <Layout android:layout_width="0dp" - android:layout_height="@dimen/qs_header_non_clickable_element_height" + android:layout_height="@dimen/new_qs_header_non_clickable_element_height" app:layout_constrainedWidth="true" app:layout_constraintStart_toEndOf="@id/space" app:layout_constraintEnd_toStartOf="@id/batteryRemainingIcon" @@ -101,8 +101,8 @@ android:id="@+id/batteryRemainingIcon"> <Layout android:layout_width="wrap_content" - android:layout_height="@dimen/qs_header_non_clickable_element_height" - app:layout_constraintHeight_min="@dimen/qs_header_non_clickable_element_height" + android:layout_height="@dimen/new_qs_header_non_clickable_element_height" + app:layout_constraintHeight_min="@dimen/new_qs_header_non_clickable_element_height" app:layout_constraintStart_toEndOf="@id/statusIcons" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/date" diff --git a/packages/SystemUI/screenshot/src/com/android/systemui/testing/screenshot/ExternalViewScreenshotTestRule.kt b/packages/SystemUI/screenshot/src/com/android/systemui/testing/screenshot/ExternalViewScreenshotTestRule.kt index 2e391c7aacbe..49cc48321d77 100644 --- a/packages/SystemUI/screenshot/src/com/android/systemui/testing/screenshot/ExternalViewScreenshotTestRule.kt +++ b/packages/SystemUI/screenshot/src/com/android/systemui/testing/screenshot/ExternalViewScreenshotTestRule.kt @@ -19,6 +19,7 @@ package com.android.systemui.testing.screenshot import android.app.Activity import android.graphics.Color import android.view.View +import android.view.Window import android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat @@ -51,13 +52,14 @@ class ExternalViewScreenshotTestRule(emulationSpec: DeviceEmulationSpec) : TestR /** * Compare the content of the [view] with the golden image identified by [goldenIdentifier] in - * the context of [emulationSpec]. + * the context of [emulationSpec]. Window must be specified to capture views that render + * hardware buffers. */ - fun screenshotTest(goldenIdentifier: String, view: View) { + fun screenshotTest(goldenIdentifier: String, view: View, window: Window? = null) { view.removeElevationRecursively() ScreenshotRuleAsserter.Builder(screenshotRule) - .setScreenshotProvider { view.toBitmap() } + .setScreenshotProvider { view.toBitmap(window) } .withMatcher(matcher) .build() .assertGoldenImage(goldenIdentifier) @@ -94,6 +96,6 @@ class ExternalViewScreenshotTestRule(emulationSpec: DeviceEmulationSpec) : TestR activity.currentFocus?.clearFocus() } - screenshotTest(goldenIdentifier, rootView) + screenshotTest(goldenIdentifier, rootView, activity.window) } } diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/AnimatableClockView.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/AnimatableClockView.kt index 860a5da44088..1cf7c503a508 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/AnimatableClockView.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/AnimatableClockView.kt @@ -20,16 +20,15 @@ import android.annotation.ColorInt import android.annotation.FloatRange import android.annotation.IntRange import android.annotation.SuppressLint -import android.app.compat.ChangeIdStateCache.invalidate import android.content.Context import android.graphics.Canvas +import android.graphics.Rect import android.text.Layout import android.text.TextUtils import android.text.format.DateFormat import android.util.AttributeSet +import android.util.MathUtils import android.widget.TextView -import com.android.internal.R.attr.contentDescription -import com.android.internal.R.attr.format import com.android.internal.annotations.VisibleForTesting import com.android.systemui.animation.GlyphCallback import com.android.systemui.animation.Interpolators @@ -39,6 +38,8 @@ import java.io.PrintWriter import java.util.Calendar import java.util.Locale import java.util.TimeZone +import kotlin.math.max +import kotlin.math.min /** * Displays the time with the hour positioned above the minutes. (ie: 09 above 30 is 9:30) @@ -189,8 +190,13 @@ class AnimatableClockView @JvmOverloads constructor( override fun onDraw(canvas: Canvas) { lastDraw = getTimestamp() - // intentionally doesn't call super.onDraw here or else the text will be rendered twice - textAnimator?.draw(canvas) + // Use textAnimator to render text if animation is enabled. + // Otherwise default to using standard draw functions. + if (isAnimationEnabled) { + textAnimator?.draw(canvas) + } else { + super.onDraw(canvas) + } } override fun invalidate() { @@ -311,7 +317,24 @@ class AnimatableClockView @JvmOverloads constructor( ) } - private val glyphFilter: GlyphCallback? = null // Add text animation tweak here. + // The offset of each glyph from where it should be. + private var glyphOffsets = mutableListOf(0.0f, 0.0f, 0.0f, 0.0f) + + private var lastSeenAnimationProgress = 1.0f + + // If the animation is being reversed, the target offset for each glyph for the "stop". + private var animationCancelStartPosition = mutableListOf(0.0f, 0.0f, 0.0f, 0.0f) + private var animationCancelStopPosition = 0.0f + + // Whether the currently playing animation needed a stop (and thus, is shortened). + private var currentAnimationNeededStop = false + + private val glyphFilter: GlyphCallback = { positionedGlyph, _ -> + val offset = positionedGlyph.lineNo * DIGITS_PER_LINE + positionedGlyph.glyphIndex + if (offset < glyphOffsets.size) { + positionedGlyph.x += glyphOffsets[offset] + } + } /** * Set text style with an optional animation. @@ -345,6 +368,9 @@ class AnimatableClockView @JvmOverloads constructor( onAnimationEnd = onAnimationEnd ) textAnimator?.glyphFilter = glyphFilter + if (color != null && !isAnimationEnabled) { + setTextColor(color) + } } else { // when the text animator is set, update its start values onTextAnimatorInitialized = Runnable { @@ -359,6 +385,9 @@ class AnimatableClockView @JvmOverloads constructor( onAnimationEnd = onAnimationEnd ) textAnimator?.glyphFilter = glyphFilter + if (color != null && !isAnimationEnabled) { + setTextColor(color) + } } } } @@ -421,6 +450,124 @@ class AnimatableClockView @JvmOverloads constructor( pw.println(" time=$time") } + fun moveForSplitShade(fromRect: Rect, toRect: Rect, fraction: Float) { + // Do we need to cancel an in-flight animation? + // Need to also check against 0.0f here; we can sometimes get two calls with fraction == 0, + // which trips up the check otherwise. + if (lastSeenAnimationProgress != 1.0f && + lastSeenAnimationProgress != 0.0f && + fraction == 0.0f) { + // New animation, but need to stop the old one. Figure out where each glyph currently + // is in relation to the box position. After that, use the leading digit's current + // position as the stop target. + currentAnimationNeededStop = true + + // We assume that the current glyph offsets would be relative to the "from" position. + val moveAmount = toRect.left - fromRect.left + + // Remap the current glyph offsets to be relative to the new "end" position, and figure + // out the start/end positions for the stop animation. + for (i in 0 until NUM_DIGITS) { + glyphOffsets[i] = -moveAmount + glyphOffsets[i] + animationCancelStartPosition[i] = glyphOffsets[i] + } + + // Use the leading digit's offset as the stop position. + if (toRect.left > fromRect.left) { + // It _was_ moving left + animationCancelStopPosition = glyphOffsets[0] + } else { + // It was moving right + animationCancelStopPosition = glyphOffsets[1] + } + } + + // Is there a cancellation in progress? + if (currentAnimationNeededStop && fraction < ANIMATION_CANCELLATION_TIME) { + val animationStopProgress = MathUtils.constrainedMap( + 0.0f, 1.0f, 0.0f, ANIMATION_CANCELLATION_TIME, fraction + ) + + // One of the digits has already stopped. + val animationStopStep = 1.0f / (NUM_DIGITS - 1) + + for (i in 0 until NUM_DIGITS) { + val stopAmount = if (toRect.left > fromRect.left) { + // It was moving left (before flipping) + MOVE_LEFT_DELAYS[i] * animationStopStep + } else { + // It was moving right (before flipping) + MOVE_RIGHT_DELAYS[i] * animationStopStep + } + + // Leading digit stops immediately. + if (stopAmount == 0.0f) { + glyphOffsets[i] = animationCancelStopPosition + } else { + val actualStopAmount = MathUtils.constrainedMap( + 0.0f, 1.0f, 0.0f, stopAmount, animationStopProgress + ) + val easedProgress = MOVE_INTERPOLATOR.getInterpolation(actualStopAmount) + val glyphMoveAmount = + animationCancelStopPosition - animationCancelStartPosition[i] + glyphOffsets[i] = + animationCancelStartPosition[i] + glyphMoveAmount * easedProgress + } + } + } else { + // Normal part of the animation. + // Do we need to remap the animation progress to take account of the cancellation? + val actualFraction = if (currentAnimationNeededStop) { + MathUtils.constrainedMap( + 0.0f, 1.0f, ANIMATION_CANCELLATION_TIME, 1.0f, fraction + ) + } else { + fraction + } + + val digitFractions = (0 until NUM_DIGITS).map { + // The delay for each digit, in terms of fraction (i.e. the digit should not move + // during 0.0 - 0.1). + val initialDelay = if (toRect.left > fromRect.left) { + MOVE_RIGHT_DELAYS[it] * MOVE_DIGIT_STEP + } else { + MOVE_LEFT_DELAYS[it] * MOVE_DIGIT_STEP + } + + val f = MathUtils.constrainedMap( + 0.0f, 1.0f, + initialDelay, initialDelay + AVAILABLE_ANIMATION_TIME, + actualFraction + ) + MOVE_INTERPOLATOR.getInterpolation(max(min(f, 1.0f), 0.0f)) + } + + // Was there an animation halt? + val moveAmount = if (currentAnimationNeededStop) { + // Only need to animate over the remaining space if the animation was aborted. + -animationCancelStopPosition + } else { + toRect.left.toFloat() - fromRect.left.toFloat() + } + + for (i in 0 until NUM_DIGITS) { + glyphOffsets[i] = -moveAmount + (moveAmount * digitFractions[i]) + } + } + + invalidate() + + if (fraction == 1.0f) { + // Reset + currentAnimationNeededStop = false + } + + lastSeenAnimationProgress = fraction + + // Ensure that the actual clock container is always in the "end" position. + this.setLeftTopRightBottom(toRect.left, toRect.top, toRect.right, toRect.bottom) + } + // DateFormat.getBestDateTimePattern is extremely expensive, and refresh is called often. // This is an optimization to ensure we only recompute the patterns when the inputs change. private object Patterns { @@ -458,5 +605,36 @@ class AnimatableClockView @JvmOverloads constructor( private const val APPEAR_ANIM_DURATION: Long = 350 private const val CHARGE_ANIM_DURATION_PHASE_0: Long = 500 private const val CHARGE_ANIM_DURATION_PHASE_1: Long = 1000 + + // Constants for the animation + private val MOVE_INTERPOLATOR = Interpolators.STANDARD + + // Calculate the positions of all of the digits... + // Offset each digit by, say, 0.1 + // This means that each digit needs to move over a slice of "fractions", i.e. digit 0 should + // move from 0.0 - 0.7, digit 1 from 0.1 - 0.8, digit 2 from 0.2 - 0.9, and digit 3 + // from 0.3 - 1.0. + private const val NUM_DIGITS = 4 + private const val DIGITS_PER_LINE = 2 + + // How much of "fraction" to spend on canceling the animation, if needed + private const val ANIMATION_CANCELLATION_TIME = 0.4f + + // Delays. Each digit's animation should have a slight delay, so we get a nice + // "stepping" effect. When moving right, the second digit of the hour should move first. + // When moving left, the first digit of the hour should move first. The lists encode + // the delay for each digit (hour[0], hour[1], minute[0], minute[1]), to be multiplied + // by delayMultiplier. + private val MOVE_LEFT_DELAYS = listOf(0, 1, 2, 3) + private val MOVE_RIGHT_DELAYS = listOf(1, 0, 3, 2) + + // How much delay to apply to each subsequent digit. This is measured in terms of "fraction" + // (i.e. a value of 0.1 would cause a digit to wait until fraction had hit 0.1, or 0.2 etc + // before moving). + private const val MOVE_DIGIT_STEP = 0.1f + + // Total available transition time for each digit, taking into account the step. If step is + // 0.1, then digit 0 would animate over 0.0 - 0.7, making availableTime 0.7. + private val AVAILABLE_ANIMATION_TIME = 1.0f - MOVE_DIGIT_STEP * (NUM_DIGITS - 1) } } diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt index f03fee4b0c2d..e3c21cca2263 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/ClockRegistry.kt @@ -22,6 +22,7 @@ import android.os.UserHandle import android.provider.Settings import android.util.Log import com.android.systemui.dagger.qualifiers.Main +import com.android.internal.annotations.Keep import com.android.systemui.plugins.ClockController import com.android.systemui.plugins.ClockId import com.android.systemui.plugins.ClockMetadata @@ -201,6 +202,7 @@ open class ClockRegistry( val provider: ClockProvider ) + @Keep private data class ClockSetting( val clockId: ClockId, val _applied_timestamp: Long? diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/DefaultClockController.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/DefaultClockController.kt index b88795157a43..6fd61daee6ff 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/DefaultClockController.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/clocks/DefaultClockController.kt @@ -16,6 +16,7 @@ package com.android.systemui.shared.clocks import android.content.Context import android.content.res.Resources import android.graphics.Color +import android.graphics.Rect import android.icu.text.NumberFormat import android.util.TypedValue import android.view.LayoutInflater @@ -130,6 +131,10 @@ class DefaultClockController( lp.topMargin = (-0.5f * view.bottom).toInt() view.setLayoutParams(lp) } + + fun moveForSplitShade(fromRect: Rect, toRect: Rect, fraction: Float) { + view.moveForSplitShade(fromRect, toRect, fraction) + } } inner class DefaultClockEvents : ClockEvents { @@ -209,6 +214,13 @@ class DefaultClockController( clocks.forEach { it.animateDoze(dozeState.isActive, !hasJumped) } } } + + override fun onPositionUpdated(fromRect: Rect, toRect: Rect, fraction: Float) { + largeClock.moveForSplitShade(fromRect, toRect, fraction) + } + + override val hasCustomPositionUpdatedAnimation: Boolean + get() = true } private class AnimationState( diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/PreviewPositionHelper.java b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/PreviewPositionHelper.java index 72f8b7b09dca..40c8774d4f34 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/PreviewPositionHelper.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/PreviewPositionHelper.java @@ -1,13 +1,16 @@ package com.android.systemui.shared.recents.utilities; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; +import static android.view.Surface.ROTATION_180; +import static android.view.Surface.ROTATION_270; +import static android.view.Surface.ROTATION_90; import android.graphics.Matrix; import android.graphics.Rect; import android.graphics.RectF; -import android.view.Surface; import com.android.systemui.shared.recents.model.ThumbnailData; +import com.android.wm.shell.util.SplitBounds; /** * Utility class to position the thumbnail in the TaskView @@ -16,10 +19,26 @@ public class PreviewPositionHelper { public static final float MAX_PCT_BEFORE_ASPECT_RATIOS_CONSIDERED_DIFFERENT = 0.1f; + /** + * Specifies that a stage is positioned at the top half of the screen if + * in portrait mode or at the left half of the screen if in landscape mode. + * TODO(b/254378592): Remove after consolidation + */ + public static final int STAGE_POSITION_TOP_OR_LEFT = 0; + + /** + * Specifies that a stage is positioned at the bottom half of the screen if + * in portrait mode or at the right half of the screen if in landscape mode. + * TODO(b/254378592): Remove after consolidation + */ + public static final int STAGE_POSITION_BOTTOM_OR_RIGHT = 1; + // Contains the portion of the thumbnail that is unclipped when fullscreen progress = 1. private final RectF mClippedInsets = new RectF(); private final Matrix mMatrix = new Matrix(); private boolean mIsOrientationChanged; + private SplitBounds mSplitBounds; + private int mDesiredStagePosition; public Matrix getMatrix() { return mMatrix; @@ -33,6 +52,11 @@ public class PreviewPositionHelper { return mIsOrientationChanged; } + public void setSplitBounds(SplitBounds splitBounds, int desiredStagePosition) { + mSplitBounds = splitBounds; + mDesiredStagePosition = desiredStagePosition; + } + /** * Updates the matrix based on the provided parameters */ @@ -42,10 +66,19 @@ public class PreviewPositionHelper { boolean isRotated = false; boolean isOrientationDifferent; + float fullscreenTaskWidth = screenWidthPx; + if (mSplitBounds != null && !mSplitBounds.appsStackedVertically) { + // For landscape, scale the width + float taskPercent = mDesiredStagePosition == STAGE_POSITION_TOP_OR_LEFT + ? mSplitBounds.leftTaskPercent + : (1 - (mSplitBounds.leftTaskPercent + mSplitBounds.dividerWidthPercent)); + // Scale landscape width to that of actual screen + fullscreenTaskWidth = screenWidthPx * taskPercent; + } int thumbnailRotation = thumbnailData.rotation; int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation); RectF thumbnailClipHint = new RectF(); - float canvasScreenRatio = canvasWidth / (float) screenWidthPx; + float canvasScreenRatio = canvasWidth / fullscreenTaskWidth; float scaledTaskbarSize = taskbarSize * canvasScreenRatio; thumbnailClipHint.bottom = isTablet ? scaledTaskbarSize : 0; @@ -180,7 +213,7 @@ public class PreviewPositionHelper { * portrait or vice versa, {@code false} otherwise */ private boolean isOrientationChange(int deltaRotation) { - return deltaRotation == Surface.ROTATION_90 || deltaRotation == Surface.ROTATION_270; + return deltaRotation == ROTATION_90 || deltaRotation == ROTATION_270; } private void setThumbnailRotation(int deltaRotate, Rect thumbnailPosition) { @@ -189,13 +222,13 @@ public class PreviewPositionHelper { mMatrix.setRotate(90 * deltaRotate); switch (deltaRotate) { /* Counter-clockwise */ - case Surface.ROTATION_90: + case ROTATION_90: translateX = thumbnailPosition.height(); break; - case Surface.ROTATION_270: + case ROTATION_270: translateY = thumbnailPosition.width(); break; - case Surface.ROTATION_180: + case ROTATION_180: translateX = thumbnailPosition.width(); translateY = thumbnailPosition.height(); break; diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSamplingInstance.kt b/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSamplingInstance.kt index dd2e55d4e7d7..cd4b9994ccca 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSamplingInstance.kt +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/regionsampling/RegionSamplingInstance.kt @@ -15,6 +15,7 @@ */ package com.android.systemui.shared.regionsampling +import android.graphics.Color import android.graphics.Rect import android.view.View import androidx.annotation.VisibleForTesting @@ -33,18 +34,19 @@ open class RegionSamplingInstance( regionSamplingEnabled: Boolean, updateFun: UpdateColorCallback ) { - private var isDark = RegionDarkness.DEFAULT + private var regionDarkness = RegionDarkness.DEFAULT private var samplingBounds = Rect() private val tmpScreenLocation = IntArray(2) @VisibleForTesting var regionSampler: RegionSamplingHelper? = null - + private var lightForegroundColor = Color.WHITE + private var darkForegroundColor = Color.BLACK /** * Interface for method to be passed into RegionSamplingHelper */ @FunctionalInterface interface UpdateColorCallback { /** - * Method to update the text colors after clock darkness changed. + * Method to update the foreground colors after clock darkness changed. */ fun updateColors() } @@ -59,6 +61,30 @@ open class RegionSamplingInstance( return RegionSamplingHelper(sampledView, callback, mainExecutor, bgExecutor) } + /** + * Sets the colors to be used for Dark and Light Foreground. + * + * @param lightColor The color used for Light Foreground. + * @param darkColor The color used for Dark Foreground. + */ + fun setForegroundColors(lightColor: Int, darkColor: Int) { + lightForegroundColor = lightColor + darkForegroundColor = darkColor + } + + /** + * Determines which foreground color to use based on region darkness. + * + * @return the determined foreground color + */ + fun currentForegroundColor(): Int{ + return if (regionDarkness.isDark) { + lightForegroundColor + } else { + darkForegroundColor + } + } + private fun convertToClockDarkness(isRegionDark: Boolean): RegionDarkness { return if (isRegionDark) { RegionDarkness.DARK @@ -68,7 +94,7 @@ open class RegionSamplingInstance( } fun currentRegionDarkness(): RegionDarkness { - return isDark + return regionDarkness } /** @@ -97,7 +123,7 @@ open class RegionSamplingInstance( regionSampler = createRegionSamplingHelper(sampledView, object : SamplingCallback { override fun onRegionDarknessChanged(isRegionDark: Boolean) { - isDark = convertToClockDarkness(isRegionDark) + regionDarkness = convertToClockDarkness(isRegionDark) updateFun.updateColors() } /** diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/InteractionJankMonitorWrapper.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/InteractionJankMonitorWrapper.java index 5d6598d63a1b..8a2509610310 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/InteractionJankMonitorWrapper.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/InteractionJankMonitorWrapper.java @@ -51,6 +51,8 @@ public final class InteractionJankMonitorWrapper { InteractionJankMonitor.CUJ_SPLIT_SCREEN_ENTER; public static final int CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION = InteractionJankMonitor.CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION; + public static final int CUJ_RECENTS_SCROLLING = + InteractionJankMonitor.CUJ_RECENTS_SCROLLING; @IntDef({ CUJ_APP_LAUNCH_FROM_RECENTS, @@ -59,7 +61,8 @@ public final class InteractionJankMonitorWrapper { CUJ_APP_CLOSE_TO_PIP, CUJ_QUICK_SWITCH, CUJ_APP_LAUNCH_FROM_WIDGET, - CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION + CUJ_LAUNCHER_UNLOCK_ENTRANCE_ANIMATION, + CUJ_RECENTS_SCROLLING }) @Retention(RetentionPolicy.SOURCE) public @interface CujType { diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java index 7c3b5fc52f0a..2d6bef5a6788 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java @@ -60,7 +60,7 @@ public class RemoteAnimationTargetCompat { public static final int ACTIVITY_TYPE_ASSISTANT = WindowConfiguration.ACTIVITY_TYPE_ASSISTANT; public final int activityType; - public int taskId; + public final int taskId; public final SurfaceControl leash; public final boolean isTranslucent; public final Rect clipRect; @@ -72,7 +72,7 @@ public class RemoteAnimationTargetCompat { public final Rect startScreenSpaceBounds; public final boolean isNotInRecents; public final Rect contentInsets; - public ActivityManager.RunningTaskInfo taskInfo; + public final ActivityManager.RunningTaskInfo taskInfo; public final boolean allowEnterPip; public final int rotationChange; public final int windowType; @@ -102,7 +102,7 @@ public class RemoteAnimationTargetCompat { activityType = app.windowConfiguration.getActivityType(); taskInfo = app.taskInfo; allowEnterPip = app.allowEnterPip; - rotationChange = 0; + rotationChange = app.rotationChange; mStartLeash = app.startLeash; windowType = app.windowType; @@ -131,6 +131,7 @@ public class RemoteAnimationTargetCompat { isNotInRecents, mStartLeash, startBounds, taskInfo, allowEnterPip, windowType ); target.setWillShowImeOnTarget(willShowImeOnTarget); + target.setRotationChange(rotationChange); return target; } diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java deleted file mode 100644 index 30c062b66da9..000000000000 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.systemui.shared.system; - -import android.graphics.HardwareRenderer; -import android.graphics.Matrix; -import android.graphics.Rect; -import android.os.Handler; -import android.os.Handler.Callback; -import android.os.Message; -import android.os.Trace; -import android.view.SurfaceControl; -import android.view.SurfaceControl.Transaction; -import android.view.View; -import android.view.ViewRootImpl; - -import java.util.function.Consumer; - -/** - * Helper class to apply surface transactions in sync with RenderThread. - * - * NOTE: This is a modification of {@link android.view.SyncRtSurfaceTransactionApplier}, we can't - * currently reference that class from the shared lib as it is hidden. - */ -public class SyncRtSurfaceTransactionApplierCompat { - - public static final int FLAG_ALL = 0xffffffff; - public static final int FLAG_ALPHA = 1; - public static final int FLAG_MATRIX = 1 << 1; - public static final int FLAG_WINDOW_CROP = 1 << 2; - public static final int FLAG_LAYER = 1 << 3; - public static final int FLAG_CORNER_RADIUS = 1 << 4; - public static final int FLAG_BACKGROUND_BLUR_RADIUS = 1 << 5; - public static final int FLAG_VISIBILITY = 1 << 6; - public static final int FLAG_RELATIVE_LAYER = 1 << 7; - public static final int FLAG_SHADOW_RADIUS = 1 << 8; - - private static final int MSG_UPDATE_SEQUENCE_NUMBER = 0; - - private final SurfaceControl mBarrierSurfaceControl; - private final ViewRootImpl mTargetViewRootImpl; - private final Handler mApplyHandler; - - private int mSequenceNumber = 0; - private int mPendingSequenceNumber = 0; - private Runnable mAfterApplyCallback; - - /** - * @param targetView The view in the surface that acts as synchronization anchor. - */ - public SyncRtSurfaceTransactionApplierCompat(View targetView) { - mTargetViewRootImpl = targetView != null ? targetView.getViewRootImpl() : null; - mBarrierSurfaceControl = mTargetViewRootImpl != null - ? mTargetViewRootImpl.getSurfaceControl() : null; - - mApplyHandler = new Handler(new Callback() { - @Override - public boolean handleMessage(Message msg) { - if (msg.what == MSG_UPDATE_SEQUENCE_NUMBER) { - onApplyMessage(msg.arg1); - return true; - } - return false; - } - }); - } - - private void onApplyMessage(int seqNo) { - mSequenceNumber = seqNo; - if (mSequenceNumber == mPendingSequenceNumber && mAfterApplyCallback != null) { - Runnable r = mAfterApplyCallback; - mAfterApplyCallback = null; - r.run(); - } - } - - /** - * Schedules applying surface parameters on the next frame. - * - * @param params The surface parameters to apply. DO NOT MODIFY the list after passing into - * this method to avoid synchronization issues. - */ - public void scheduleApply(final SyncRtSurfaceTransactionApplierCompat.SurfaceParams... params) { - if (mTargetViewRootImpl == null || mTargetViewRootImpl.getView() == null) { - return; - } - - mPendingSequenceNumber++; - final int toApplySeqNo = mPendingSequenceNumber; - mTargetViewRootImpl.registerRtFrameCallback(new HardwareRenderer.FrameDrawingCallback() { - @Override - public void onFrameDraw(long frame) { - if (mBarrierSurfaceControl == null || !mBarrierSurfaceControl.isValid()) { - Message.obtain(mApplyHandler, MSG_UPDATE_SEQUENCE_NUMBER, toApplySeqNo, 0) - .sendToTarget(); - return; - } - Trace.traceBegin(Trace.TRACE_TAG_VIEW, "Sync transaction frameNumber=" + frame); - Transaction t = new Transaction(); - for (int i = params.length - 1; i >= 0; i--) { - SyncRtSurfaceTransactionApplierCompat.SurfaceParams surfaceParams = - params[i]; - surfaceParams.applyTo(t); - } - if (mTargetViewRootImpl != null) { - mTargetViewRootImpl.mergeWithNextTransaction(t, frame); - } else { - t.apply(); - } - Trace.traceEnd(Trace.TRACE_TAG_VIEW); - Message.obtain(mApplyHandler, MSG_UPDATE_SEQUENCE_NUMBER, toApplySeqNo, 0) - .sendToTarget(); - } - }); - - // Make sure a frame gets scheduled. - mTargetViewRootImpl.getView().invalidate(); - } - - /** - * Calls the runnable when any pending apply calls have completed - */ - public void addAfterApplyCallback(final Runnable afterApplyCallback) { - if (mSequenceNumber == mPendingSequenceNumber) { - afterApplyCallback.run(); - } else { - if (mAfterApplyCallback == null) { - mAfterApplyCallback = afterApplyCallback; - } else { - final Runnable oldCallback = mAfterApplyCallback; - mAfterApplyCallback = new Runnable() { - @Override - public void run() { - afterApplyCallback.run(); - oldCallback.run(); - } - }; - } - } - } - - public static void applyParams(TransactionCompat t, - SyncRtSurfaceTransactionApplierCompat.SurfaceParams params) { - params.applyTo(t.mTransaction); - } - - /** - * Creates an instance of SyncRtSurfaceTransactionApplier, deferring until the target view is - * attached if necessary. - */ - public static void create(final View targetView, - final Consumer<SyncRtSurfaceTransactionApplierCompat> callback) { - if (targetView == null) { - // No target view, no applier - callback.accept(null); - } else if (targetView.getViewRootImpl() != null) { - // Already attached, we're good to go - callback.accept(new SyncRtSurfaceTransactionApplierCompat(targetView)); - } else { - // Haven't been attached before we can get the view root - targetView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { - @Override - public void onViewAttachedToWindow(View v) { - targetView.removeOnAttachStateChangeListener(this); - callback.accept(new SyncRtSurfaceTransactionApplierCompat(targetView)); - } - - @Override - public void onViewDetachedFromWindow(View v) { - // Do nothing - } - }); - } - } - - public static class SurfaceParams { - public static class Builder { - final SurfaceControl surface; - int flags; - float alpha; - float cornerRadius; - int backgroundBlurRadius; - Matrix matrix; - Rect windowCrop; - int layer; - SurfaceControl relativeTo; - int relativeLayer; - boolean visible; - float shadowRadius; - - /** - * @param surface The surface to modify. - */ - public Builder(SurfaceControl surface) { - this.surface = surface; - } - - /** - * @param alpha The alpha value to apply to the surface. - * @return this Builder - */ - public Builder withAlpha(float alpha) { - this.alpha = alpha; - flags |= FLAG_ALPHA; - return this; - } - - /** - * @param matrix The matrix to apply to the surface. - * @return this Builder - */ - public Builder withMatrix(Matrix matrix) { - this.matrix = new Matrix(matrix); - flags |= FLAG_MATRIX; - return this; - } - - /** - * @param windowCrop The window crop to apply to the surface. - * @return this Builder - */ - public Builder withWindowCrop(Rect windowCrop) { - this.windowCrop = new Rect(windowCrop); - flags |= FLAG_WINDOW_CROP; - return this; - } - - /** - * @param layer The layer to assign the surface. - * @return this Builder - */ - public Builder withLayer(int layer) { - this.layer = layer; - flags |= FLAG_LAYER; - return this; - } - - /** - * @param relativeTo The surface that's set relative layer to. - * @param relativeLayer The relative layer. - * @return this Builder - */ - public Builder withRelativeLayerTo(SurfaceControl relativeTo, int relativeLayer) { - this.relativeTo = relativeTo; - this.relativeLayer = relativeLayer; - flags |= FLAG_RELATIVE_LAYER; - return this; - } - - /** - * @param radius the Radius for rounded corners to apply to the surface. - * @return this Builder - */ - public Builder withCornerRadius(float radius) { - this.cornerRadius = radius; - flags |= FLAG_CORNER_RADIUS; - return this; - } - - /** - * @param radius the Radius for the shadows to apply to the surface. - * @return this Builder - */ - public Builder withShadowRadius(float radius) { - this.shadowRadius = radius; - flags |= FLAG_SHADOW_RADIUS; - return this; - } - - /** - * @param radius the Radius for blur to apply to the background surfaces. - * @return this Builder - */ - public Builder withBackgroundBlur(int radius) { - this.backgroundBlurRadius = radius; - flags |= FLAG_BACKGROUND_BLUR_RADIUS; - return this; - } - - /** - * @param visible The visibility to apply to the surface. - * @return this Builder - */ - public Builder withVisibility(boolean visible) { - this.visible = visible; - flags |= FLAG_VISIBILITY; - return this; - } - - /** - * @return a new SurfaceParams instance - */ - public SurfaceParams build() { - return new SurfaceParams(surface, flags, alpha, matrix, windowCrop, layer, - relativeTo, relativeLayer, cornerRadius, backgroundBlurRadius, visible, - shadowRadius); - } - } - - private SurfaceParams(SurfaceControl surface, int flags, float alpha, Matrix matrix, - Rect windowCrop, int layer, SurfaceControl relativeTo, int relativeLayer, - float cornerRadius, int backgroundBlurRadius, boolean visible, float shadowRadius) { - this.flags = flags; - this.surface = surface; - this.alpha = alpha; - this.matrix = matrix; - this.windowCrop = windowCrop; - this.layer = layer; - this.relativeTo = relativeTo; - this.relativeLayer = relativeLayer; - this.cornerRadius = cornerRadius; - this.backgroundBlurRadius = backgroundBlurRadius; - this.visible = visible; - this.shadowRadius = shadowRadius; - } - - private final int flags; - private final float[] mTmpValues = new float[9]; - - public final SurfaceControl surface; - public final float alpha; - public final float cornerRadius; - public final int backgroundBlurRadius; - public final Matrix matrix; - public final Rect windowCrop; - public final int layer; - public final SurfaceControl relativeTo; - public final int relativeLayer; - public final boolean visible; - public final float shadowRadius; - - public void applyTo(SurfaceControl.Transaction t) { - if ((flags & FLAG_MATRIX) != 0) { - t.setMatrix(surface, matrix, mTmpValues); - } - if ((flags & FLAG_WINDOW_CROP) != 0) { - t.setWindowCrop(surface, windowCrop); - } - if ((flags & FLAG_ALPHA) != 0) { - t.setAlpha(surface, alpha); - } - if ((flags & FLAG_LAYER) != 0) { - t.setLayer(surface, layer); - } - if ((flags & FLAG_CORNER_RADIUS) != 0) { - t.setCornerRadius(surface, cornerRadius); - } - if ((flags & FLAG_BACKGROUND_BLUR_RADIUS) != 0) { - t.setBackgroundBlurRadius(surface, backgroundBlurRadius); - } - if ((flags & FLAG_VISIBILITY) != 0) { - if (visible) { - t.show(surface); - } else { - t.hide(surface); - } - } - if ((flags & FLAG_RELATIVE_LAYER) != 0) { - t.setRelativeLayer(surface, relativeTo, relativeLayer); - } - if ((flags & FLAG_SHADOW_RADIUS) != 0) { - t.setShadowRadius(surface, shadowRadius); - } - } - } -} diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java deleted file mode 100644 index 43a882a5f6be..000000000000 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.systemui.shared.system; - -import android.graphics.Matrix; -import android.graphics.Rect; -import android.view.SurfaceControl; -import android.view.SurfaceControl.Transaction; - -public class TransactionCompat { - - final Transaction mTransaction; - - final float[] mTmpValues = new float[9]; - - public TransactionCompat() { - mTransaction = new Transaction(); - } - - public void apply() { - mTransaction.apply(); - } - - public TransactionCompat show(SurfaceControl surfaceControl) { - mTransaction.show(surfaceControl); - return this; - } - - public TransactionCompat hide(SurfaceControl surfaceControl) { - mTransaction.hide(surfaceControl); - return this; - } - - public TransactionCompat setPosition(SurfaceControl surfaceControl, float x, float y) { - mTransaction.setPosition(surfaceControl, x, y); - return this; - } - - public TransactionCompat setSize(SurfaceControl surfaceControl, int w, int h) { - mTransaction.setBufferSize(surfaceControl, w, h); - return this; - } - - public TransactionCompat setLayer(SurfaceControl surfaceControl, int z) { - mTransaction.setLayer(surfaceControl, z); - return this; - } - - public TransactionCompat setAlpha(SurfaceControl surfaceControl, float alpha) { - mTransaction.setAlpha(surfaceControl, alpha); - return this; - } - - public TransactionCompat setOpaque(SurfaceControl surfaceControl, boolean opaque) { - mTransaction.setOpaque(surfaceControl, opaque); - return this; - } - - public TransactionCompat setMatrix(SurfaceControl surfaceControl, float dsdx, float dtdx, - float dtdy, float dsdy) { - mTransaction.setMatrix(surfaceControl, dsdx, dtdx, dtdy, dsdy); - return this; - } - - public TransactionCompat setMatrix(SurfaceControl surfaceControl, Matrix matrix) { - mTransaction.setMatrix(surfaceControl, matrix, mTmpValues); - return this; - } - - public TransactionCompat setWindowCrop(SurfaceControl surfaceControl, Rect crop) { - mTransaction.setWindowCrop(surfaceControl, crop); - return this; - } - - public TransactionCompat setCornerRadius(SurfaceControl surfaceControl, float radius) { - mTransaction.setCornerRadius(surfaceControl, radius); - return this; - } - - public TransactionCompat setBackgroundBlurRadius(SurfaceControl surfaceControl, int radius) { - mTransaction.setBackgroundBlurRadius(surfaceControl, radius); - return this; - } - - public TransactionCompat setColor(SurfaceControl surfaceControl, float[] color) { - mTransaction.setColor(surfaceControl, color); - return this; - } - - public static void setRelativeLayer(Transaction t, SurfaceControl surfaceControl, - SurfaceControl relativeTo, int z) { - t.setRelativeLayer(surfaceControl, relativeTo, z); - } -} diff --git a/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt b/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt index 0075ddd73cd3..5277e40492e4 100644 --- a/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt +++ b/packages/SystemUI/src/com/android/keyguard/BouncerKeyguardMessageArea.kt @@ -16,19 +16,29 @@ package com.android.keyguard +import android.animation.Animator +import android.animation.AnimatorListenerAdapter +import android.animation.AnimatorSet +import android.animation.ObjectAnimator import android.content.Context import android.content.res.ColorStateList import android.content.res.TypedArray import android.graphics.Color import android.util.AttributeSet +import android.view.View import com.android.settingslib.Utils +import com.android.systemui.animation.Interpolators /** Displays security messages for the keyguard bouncer. */ -class BouncerKeyguardMessageArea(context: Context?, attrs: AttributeSet?) : +open class BouncerKeyguardMessageArea(context: Context?, attrs: AttributeSet?) : KeyguardMessageArea(context, attrs) { private val DEFAULT_COLOR = -1 private var mDefaultColorState: ColorStateList? = null private var mNextMessageColorState: ColorStateList? = ColorStateList.valueOf(DEFAULT_COLOR) + private val animatorSet = AnimatorSet() + private var textAboutToShow: CharSequence? = null + protected open val SHOW_DURATION_MILLIS = 150L + protected open val HIDE_DURATION_MILLIS = 200L override fun updateTextColor() { var colorState = mDefaultColorState @@ -58,4 +68,46 @@ class BouncerKeyguardMessageArea(context: Context?, attrs: AttributeSet?) : mDefaultColorState = Utils.getColorAttr(context, android.R.attr.textColorPrimary) super.reloadColor() } + + override fun setMessage(msg: CharSequence?) { + if (msg == textAboutToShow || msg == text) { + return + } + textAboutToShow = msg + + if (animatorSet.isRunning) { + animatorSet.cancel() + textAboutToShow = null + } + + val hideAnimator = + ObjectAnimator.ofFloat(this, View.ALPHA, 1f, 0f).apply { + duration = HIDE_DURATION_MILLIS + interpolator = Interpolators.STANDARD_ACCELERATE + } + + hideAnimator.addListener( + object : AnimatorListenerAdapter() { + override fun onAnimationEnd(animation: Animator?) { + super@BouncerKeyguardMessageArea.setMessage(msg) + } + } + ) + val showAnimator = + ObjectAnimator.ofFloat(this, View.ALPHA, 0f, 1f).apply { + duration = SHOW_DURATION_MILLIS + interpolator = Interpolators.STANDARD_DECELERATE + } + + showAnimator.addListener( + object : AnimatorListenerAdapter() { + override fun onAnimationEnd(animation: Animator?) { + textAboutToShow = null + } + } + ) + + animatorSet.playSequentially(hideAnimator, showAnimator) + animatorSet.start() + } } diff --git a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt index 9151238499dc..910955a45f7b 100644 --- a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt +++ b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt @@ -23,12 +23,18 @@ import android.content.res.Resources import android.text.format.DateFormat import android.util.TypedValue import android.view.View +import androidx.annotation.VisibleForTesting +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.repeatOnLifecycle import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.Flags.REGION_SAMPLING +import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor +import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor +import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.plugins.ClockController -import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.shared.regionsampling.RegionSamplingInstance import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback @@ -38,13 +44,20 @@ import java.util.Locale import java.util.TimeZone import java.util.concurrent.Executor import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.DisposableHandle +import kotlinx.coroutines.Job +import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.launch /** * Controller for a Clock provided by the registry and used on the keyguard. Instantiated by * [KeyguardClockSwitchController]. Functionality is forked from [AnimatableClockController]. */ open class ClockEventController @Inject constructor( - private val statusBarStateController: StatusBarStateController, + private val keyguardInteractor: KeyguardInteractor, + private val keyguardTransitionInteractor: KeyguardTransitionInteractor, private val broadcastDispatcher: BroadcastDispatcher, private val batteryController: BatteryController, private val keyguardUpdateMonitor: KeyguardUpdateMonitor, @@ -53,7 +66,7 @@ open class ClockEventController @Inject constructor( private val context: Context, @Main private val mainExecutor: Executor, @Background private val bgExecutor: Executor, - private val featureFlags: FeatureFlags, + private val featureFlags: FeatureFlags ) { var clock: ClockController? = null set(value) { @@ -70,9 +83,9 @@ open class ClockEventController @Inject constructor( private var isCharging = false private var dozeAmount = 0f private var isKeyguardVisible = false - - private val regionSamplingEnabled = - featureFlags.isEnabled(com.android.systemui.flags.Flags.REGION_SAMPLING) + private var isRegistered = false + private var disposableHandle: DisposableHandle? = null + private val regionSamplingEnabled = featureFlags.isEnabled(REGION_SAMPLING) private fun updateColors() { if (regionSamplingEnabled && smallRegionSampler != null && largeRegionSampler != null) { @@ -165,15 +178,6 @@ open class ClockEventController @Inject constructor( } } - private val statusBarStateListener = object : StatusBarStateController.StateListener { - override fun onDozeAmountChanged(linear: Float, eased: Float) { - clock?.animations?.doze(linear) - - isDozing = linear > dozeAmount - dozeAmount = linear - } - } - private val keyguardUpdateMonitorCallback = object : KeyguardUpdateMonitorCallback() { override fun onKeyguardVisibilityChanged(visible: Boolean) { isKeyguardVisible = visible @@ -195,13 +199,11 @@ open class ClockEventController @Inject constructor( } } - init { - isDozing = statusBarStateController.isDozing - } - - fun registerListeners() { - dozeAmount = statusBarStateController.dozeAmount - isDozing = statusBarStateController.isDozing || dozeAmount != 0f + fun registerListeners(parent: View) { + if (isRegistered) { + return + } + isRegistered = true broadcastDispatcher.registerReceiver( localeBroadcastReceiver, @@ -210,17 +212,28 @@ open class ClockEventController @Inject constructor( configurationController.addCallback(configListener) batteryController.addCallback(batteryCallback) keyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback) - statusBarStateController.addCallback(statusBarStateListener) smallRegionSampler?.startRegionSampler() largeRegionSampler?.startRegionSampler() + disposableHandle = parent.repeatWhenAttached { + repeatOnLifecycle(Lifecycle.State.STARTED) { + listenForDozing(this) + listenForDozeAmount(this) + listenForDozeAmountTransition(this) + } + } } fun unregisterListeners() { + if (!isRegistered) { + return + } + isRegistered = false + + disposableHandle?.dispose() broadcastDispatcher.unregisterReceiver(localeBroadcastReceiver) configurationController.removeCallback(configListener) batteryController.removeCallback(batteryCallback) keyguardUpdateMonitor.removeCallback(keyguardUpdateMonitorCallback) - statusBarStateController.removeCallback(statusBarStateListener) smallRegionSampler?.stopRegionSampler() largeRegionSampler?.stopRegionSampler() } @@ -235,8 +248,39 @@ open class ClockEventController @Inject constructor( largeRegionSampler?.dump(pw) } - companion object { - private val TAG = ClockEventController::class.simpleName - private const val FORMAT_NUMBER = 1234567890 + @VisibleForTesting + internal fun listenForDozeAmount(scope: CoroutineScope): Job { + return scope.launch { + keyguardInteractor.dozeAmount.collect { + dozeAmount = it + clock?.animations?.doze(dozeAmount) + } + } + } + + @VisibleForTesting + internal fun listenForDozeAmountTransition(scope: CoroutineScope): Job { + return scope.launch { + keyguardTransitionInteractor.aodToLockscreenTransition.collect { + // Would eventually run this: + // dozeAmount = it.value + // clock?.animations?.doze(dozeAmount) + } + } + } + + @VisibleForTesting + internal fun listenForDozing(scope: CoroutineScope): Job { + return scope.launch { + combine ( + keyguardInteractor.dozeAmount, + keyguardInteractor.isDozing, + ) { localDozeAmount, localIsDozing -> + localDozeAmount > dozeAmount || localIsDozing + } + .collect { localIsDozing -> + isDozing = localIsDozing + } + } } } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java index b450ec35db32..8eebe30222ae 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java @@ -40,6 +40,7 @@ import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.keyguard.KeyguardUnlockAnimationController; +import com.android.systemui.plugins.ClockAnimations; import com.android.systemui.plugins.ClockController; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.clocks.ClockRegistry; @@ -164,7 +165,7 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS protected void onViewAttached() { mClockRegistry.registerClockChangeListener(mClockChangedListener); setClock(mClockRegistry.createCurrentClock()); - mClockEventController.registerListeners(); + mClockEventController.registerListeners(mView); mKeyguardClockTopMargin = mView.getResources().getDimensionPixelSize(R.dimen.keyguard_clock_top_margin); @@ -404,5 +405,9 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS clock.dump(pw); } } -} + /** Gets the animations for the current clock. */ + public ClockAnimations getClockAnimations() { + return getClock().getAnimations(); + } +} diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java index f26b9057dc7c..73229c321079 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardInputViewController.java @@ -152,6 +152,7 @@ public abstract class KeyguardInputViewController<T extends KeyguardInputView> } public void startAppearAnimation() { + mMessageAreaController.setMessage(getInitialMessageResId()); mView.startAppearAnimation(); } @@ -169,6 +170,11 @@ public abstract class KeyguardInputViewController<T extends KeyguardInputView> return view.indexOfChild(mView); } + /** Determines the message to show in the bouncer when it first appears. */ + protected int getInitialMessageResId() { + return 0; + } + /** Factory for a {@link KeyguardInputViewController}. */ public static class Factory { private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java index c2802f7b6843..2bd3ca59b740 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMessageAreaController.java @@ -18,7 +18,6 @@ package com.android.keyguard; import android.content.res.ColorStateList; import android.content.res.Configuration; -import android.text.TextUtils; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; @@ -100,15 +99,6 @@ public class KeyguardMessageAreaController<T extends KeyguardMessageArea> mView.setMessage(resId); } - /** - * Set Text if KeyguardMessageArea is empty. - */ - public void setMessageIfEmpty(int resId) { - if (TextUtils.isEmpty(mView.getText())) { - setMessage(resId); - } - } - public void setNextMessageColor(ColorStateList colorState) { mView.setNextMessageColor(colorState); } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordViewController.java index 29e912fdab32..0025986c0e5c 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPasswordViewController.java @@ -187,7 +187,7 @@ public class KeyguardPasswordViewController @Override void resetState() { mPasswordEntry.setTextOperationUser(UserHandle.of(KeyguardUpdateMonitor.getCurrentUser())); - mMessageAreaController.setMessage(""); + mMessageAreaController.setMessage(getInitialMessageResId()); final boolean wasDisabled = mPasswordEntry.isEnabled(); mView.setPasswordEntryEnabled(true); mView.setPasswordEntryInputEnabled(true); @@ -207,7 +207,6 @@ public class KeyguardPasswordViewController if (reason != KeyguardSecurityView.SCREEN_ON || mShowImeAtScreenOn) { showInput(); } - mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_password); } private void showInput() { @@ -324,4 +323,9 @@ public class KeyguardPasswordViewController //enabled input method subtype (The current IME should be LatinIME.) || imm.getEnabledInputMethodSubtypeList(null, false).size() > 1; } + + @Override + protected int getInitialMessageResId() { + return R.string.keyguard_enter_your_password; + } } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java index 987164557a7a..1f0bd54f8e09 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPatternViewController.java @@ -298,12 +298,6 @@ public class KeyguardPatternViewController } @Override - public void onResume(int reason) { - super.onResume(reason); - mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pattern); - } - - @Override public boolean needsInput() { return false; } @@ -361,7 +355,7 @@ public class KeyguardPatternViewController } private void displayDefaultSecurityMessage() { - mMessageAreaController.setMessage(""); + mMessageAreaController.setMessage(getInitialMessageResId()); } private void handleAttemptLockout(long elapsedRealtimeDeadline) { @@ -392,4 +386,9 @@ public class KeyguardPatternViewController }.start(); } + + @Override + protected int getInitialMessageResId() { + return R.string.keyguard_enter_your_pattern; + } } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputViewController.java index 59a018ad51df..f7423ed12e68 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPinBasedInputViewController.java @@ -127,7 +127,6 @@ public abstract class KeyguardPinBasedInputViewController<T extends KeyguardPinB public void onResume(int reason) { super.onResume(reason); mPasswordEntry.requestFocus(); - mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pin); } @Override diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPinViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPinViewController.java index 89fcc47caf57..7876f071fdf5 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardPinViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPinViewController.java @@ -76,20 +76,13 @@ public class KeyguardPinViewController } @Override - void resetState() { - super.resetState(); - mMessageAreaController.setMessage(""); - } - - @Override - public void startAppearAnimation() { - mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pin); - super.startAppearAnimation(); - } - - @Override public boolean startDisappearAnimation(Runnable finishRunnable) { return mView.startDisappearAnimation( mKeyguardUpdateMonitor.needsSlowUnlockTransition(), finishRunnable); } + + @Override + protected int getInitialMessageResId() { + return R.string.keyguard_enter_your_pin; + } } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java index e9f06eddf261..784974778af5 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java @@ -20,6 +20,7 @@ import android.graphics.Rect; import android.util.Slog; import com.android.keyguard.KeyguardClockSwitch.ClockSize; +import com.android.systemui.plugins.ClockAnimations; import com.android.systemui.statusbar.notification.AnimatableProperty; import com.android.systemui.statusbar.notification.PropertyAnimator; import com.android.systemui.statusbar.notification.stack.AnimationProperties; @@ -232,4 +233,9 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV mView.setClipBounds(null); } } + + /** Gets the animations for the current clock. */ + public ClockAnimations getClockAnimations() { + return mKeyguardClockSwitchController.getClockAnimations(); + } } diff --git a/packages/SystemUI/src/com/android/keyguard/logging/BiometricMessageDeferralLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/BiometricMessageDeferralLogger.kt index 2c2ab7b39161..6264ce7273f1 100644 --- a/packages/SystemUI/src/com/android/keyguard/logging/BiometricMessageDeferralLogger.kt +++ b/packages/SystemUI/src/com/android/keyguard/logging/BiometricMessageDeferralLogger.kt @@ -17,9 +17,9 @@ package com.android.keyguard.logging import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.DEBUG import com.android.systemui.log.dagger.BiometricMessagesLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.DEBUG import javax.inject.Inject /** Helper class for logging for [com.android.systemui.biometrics.FaceHelpMessageDeferral] */ diff --git a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardLogger.kt index 50012a589b5a..46f3d4e5f6aa 100644 --- a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardLogger.kt +++ b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardLogger.kt @@ -16,15 +16,15 @@ package com.android.keyguard.logging -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.ERROR -import com.android.systemui.log.LogLevel.VERBOSE -import com.android.systemui.log.LogLevel.WARNING -import com.android.systemui.log.MessageInitializer -import com.android.systemui.log.MessagePrinter import com.android.systemui.log.dagger.KeyguardLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.ERROR +import com.android.systemui.plugins.log.LogLevel.VERBOSE +import com.android.systemui.plugins.log.LogLevel.WARNING +import com.android.systemui.plugins.log.MessageInitializer +import com.android.systemui.plugins.log.MessagePrinter import com.google.errorprone.annotations.CompileTimeConstant import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt index 2eee95738b7b..82b32cf616ec 100644 --- a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt +++ b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt @@ -22,13 +22,13 @@ import android.telephony.SubscriptionInfo import com.android.keyguard.ActiveUnlockConfig import com.android.keyguard.KeyguardListenModel import com.android.keyguard.KeyguardUpdateMonitorCallback -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.ERROR -import com.android.systemui.log.LogLevel.INFO -import com.android.systemui.log.LogLevel.VERBOSE -import com.android.systemui.log.LogLevel.WARNING +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.ERROR +import com.android.systemui.plugins.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogLevel.VERBOSE +import com.android.systemui.plugins.log.LogLevel.WARNING import com.android.systemui.log.dagger.KeyguardUpdateMonitorLog import com.google.errorprone.annotations.CompileTimeConstant import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/DisplayCutoutBaseView.kt b/packages/SystemUI/src/com/android/systemui/DisplayCutoutBaseView.kt index a3351e1a6440..5d52056d8b17 100644 --- a/packages/SystemUI/src/com/android/systemui/DisplayCutoutBaseView.kt +++ b/packages/SystemUI/src/com/android/systemui/DisplayCutoutBaseView.kt @@ -86,30 +86,38 @@ open class DisplayCutoutBaseView : View, RegionInterceptableView { onUpdate() } - fun onDisplayChanged(newDisplayUniqueId: String?) { + fun updateConfiguration(newDisplayUniqueId: String?) { + val info = DisplayInfo() + context.display?.getDisplayInfo(info) val oldMode: Display.Mode? = displayMode - val display: Display? = context.display - displayMode = display?.mode + displayMode = info.mode - if (displayUniqueId != display?.uniqueId) { - displayUniqueId = display?.uniqueId - shouldDrawCutout = DisplayCutout.getFillBuiltInDisplayCutout( - context.resources, displayUniqueId - ) - } + updateDisplayUniqueId(info.uniqueId) // Skip if display mode or cutout hasn't changed. if (!displayModeChanged(oldMode, displayMode) && - display?.cutout == displayInfo.displayCutout) { + displayInfo.displayCutout == info.displayCutout && + displayRotation == info.rotation) { return } - if (newDisplayUniqueId == display?.uniqueId) { + if (newDisplayUniqueId == info.uniqueId) { + displayRotation = info.rotation updateCutout() updateProtectionBoundingPath() onUpdate() } } + open fun updateDisplayUniqueId(newDisplayUniqueId: String?) { + if (displayUniqueId != newDisplayUniqueId) { + displayUniqueId = newDisplayUniqueId + shouldDrawCutout = DisplayCutout.getFillBuiltInDisplayCutout( + context.resources, displayUniqueId + ) + invalidate() + } + } + open fun updateRotation(rotation: Int) { displayRotation = rotation updateCutout() diff --git a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java index b5f42a164495..11d579d481c1 100644 --- a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +++ b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java @@ -456,7 +456,6 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { } } - boolean needToUpdateProviderViews = false; final String newUniqueId = mDisplayInfo.uniqueId; if (!Objects.equals(newUniqueId, mDisplayUniqueId)) { mDisplayUniqueId = newUniqueId; @@ -474,37 +473,6 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { setupDecorations(); return; } - - if (mScreenDecorHwcLayer != null) { - updateHwLayerRoundedCornerDrawable(); - updateHwLayerRoundedCornerExistAndSize(); - } - needToUpdateProviderViews = true; - } - - final float newRatio = getPhysicalPixelDisplaySizeRatio(); - if (mRoundedCornerResDelegate.getPhysicalPixelDisplaySizeRatio() != newRatio) { - mRoundedCornerResDelegate.setPhysicalPixelDisplaySizeRatio(newRatio); - if (mScreenDecorHwcLayer != null) { - updateHwLayerRoundedCornerExistAndSize(); - } - needToUpdateProviderViews = true; - } - - if (needToUpdateProviderViews) { - updateOverlayProviderViews(null); - } else { - updateOverlayProviderViews(new Integer[] { - mFaceScanningViewId, - R.id.display_cutout, - R.id.display_cutout_left, - R.id.display_cutout_right, - R.id.display_cutout_bottom, - }); - } - - if (mScreenDecorHwcLayer != null) { - mScreenDecorHwcLayer.onDisplayChanged(newUniqueId); } } }; @@ -1070,9 +1038,11 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { && (newRotation != mRotation || displayModeChanged(mDisplayMode, newMod))) { mRotation = newRotation; mDisplayMode = newMod; + mRoundedCornerResDelegate.setPhysicalPixelDisplaySizeRatio( + getPhysicalPixelDisplaySizeRatio()); if (mScreenDecorHwcLayer != null) { mScreenDecorHwcLayer.pendingConfigChange = false; - mScreenDecorHwcLayer.updateRotation(mRotation); + mScreenDecorHwcLayer.updateConfiguration(mDisplayUniqueId); updateHwLayerRoundedCornerExistAndSize(); updateHwLayerRoundedCornerDrawable(); } @@ -1111,7 +1081,8 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { context.getResources(), context.getDisplay().getUniqueId()); } - private void updateOverlayProviderViews(@Nullable Integer[] filterIds) { + @VisibleForTesting + void updateOverlayProviderViews(@Nullable Integer[] filterIds) { if (mOverlays == null) { return; } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java index 242a5983a59d..9493975ca00f 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java @@ -792,7 +792,11 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks, mUdfpsBounds = udfpsProp.getLocation().getRect(); mUdfpsBounds.scale(mScaleFactor); mUdfpsController.updateOverlayParams(udfpsProp.sensorId, - new UdfpsOverlayParams(mUdfpsBounds, mCachedDisplayInfo.getNaturalWidth(), + new UdfpsOverlayParams(mUdfpsBounds, new Rect( + 0, mCachedDisplayInfo.getNaturalHeight() / 2, + mCachedDisplayInfo.getNaturalWidth(), + mCachedDisplayInfo.getNaturalHeight()), + mCachedDisplayInfo.getNaturalWidth(), mCachedDisplayInfo.getNaturalHeight(), mScaleFactor, mCachedDisplayInfo.rotation)); if (!Objects.equals(previousUdfpsBounds, mUdfpsBounds)) { diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java index 5ed898682883..76cd3f4c4f1d 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java @@ -24,6 +24,7 @@ import android.content.Context; import android.graphics.Insets; import android.os.UserHandle; import android.text.InputType; +import android.text.TextUtils; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.View; @@ -151,39 +152,52 @@ public class AuthCredentialPasswordView extends AuthCredentialView protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); - if (mAuthCredentialInput == null || mAuthCredentialHeader == null - || mSubtitleView == null || mPasswordField == null || mErrorView == null) { + if (mAuthCredentialInput == null || mAuthCredentialHeader == null || mSubtitleView == null + || mDescriptionView == null || mPasswordField == null || mErrorView == null) { return; } - // b/157910732 In AuthContainerView#getLayoutParams() we used to prevent jank risk when - // resizing by IME show or hide, we used to setFitInsetsTypes `~WindowInsets.Type.ime()` to - // LP. As a result this view needs to listen onApplyWindowInsets() and handle onLayout. int inputLeftBound; int inputTopBound; int headerRightBound = right; + int headerTopBounds = top; + final int subTitleBottom = (mSubtitleView.getVisibility() == GONE) ? mTitleView.getBottom() + : mSubtitleView.getBottom(); + final int descBottom = (mDescriptionView.getVisibility() == GONE) ? subTitleBottom + : mDescriptionView.getBottom(); if (getResources().getConfiguration().orientation == ORIENTATION_LANDSCAPE) { - inputTopBound = (bottom - (mPasswordField.getHeight() + mErrorView.getHeight())) / 2; + inputTopBound = (bottom - mAuthCredentialInput.getHeight()) / 2; inputLeftBound = (right - left) / 2; headerRightBound = inputLeftBound; + headerTopBounds -= Math.min(mIconView.getBottom(), mBottomInset); } else { - inputTopBound = mSubtitleView.getBottom() + (bottom - mSubtitleView.getBottom()) / 2; + inputTopBound = + descBottom + (bottom - descBottom - mAuthCredentialInput.getHeight()) / 2; inputLeftBound = (right - left - mAuthCredentialInput.getWidth()) / 2; } - mAuthCredentialHeader.layout(left, top, headerRightBound, bottom); + if (mDescriptionView.getBottom() > mBottomInset) { + mAuthCredentialHeader.layout(left, headerTopBounds, headerRightBound, bottom); + } mAuthCredentialInput.layout(inputLeftBound, inputTopBound, right, bottom); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); + final int newWidth = MeasureSpec.getSize(widthMeasureSpec); final int newHeight = MeasureSpec.getSize(heightMeasureSpec) - mBottomInset; - setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), newHeight); + setMeasuredDimension(newWidth, newHeight); - measureChildren(widthMeasureSpec, - MeasureSpec.makeMeasureSpec(newHeight, MeasureSpec.AT_MOST)); + final int halfWidthSpec = MeasureSpec.makeMeasureSpec(getWidth() / 2, + MeasureSpec.AT_MOST); + final int fullHeightSpec = MeasureSpec.makeMeasureSpec(newHeight, MeasureSpec.UNSPECIFIED); + if (getResources().getConfiguration().orientation == ORIENTATION_LANDSCAPE) { + measureChildren(halfWidthSpec, fullHeightSpec); + } else { + measureChildren(widthMeasureSpec, fullHeightSpec); + } } @NonNull @@ -193,6 +207,20 @@ public class AuthCredentialPasswordView extends AuthCredentialView final Insets bottomInset = insets.getInsets(ime()); if (v instanceof AuthCredentialPasswordView && mBottomInset != bottomInset.bottom) { mBottomInset = bottomInset.bottom; + if (mBottomInset > 0 + && getResources().getConfiguration().orientation == ORIENTATION_LANDSCAPE) { + mTitleView.setSingleLine(true); + mTitleView.setEllipsize(TextUtils.TruncateAt.MARQUEE); + mTitleView.setMarqueeRepeatLimit(-1); + // select to enable marquee unless a screen reader is enabled + mTitleView.setSelected(!mAccessibilityManager.isEnabled() + || !mAccessibilityManager.isTouchExplorationEnabled()); + } else { + mTitleView.setSingleLine(false); + mTitleView.setEllipsize(null); + // select to enable marquee unless a screen reader is enabled + mTitleView.setSelected(false); + } requestLayout(); } return insets; diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPatternView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPatternView.java index 11498dbc0b83..f9e44a0c1724 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPatternView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPatternView.java @@ -93,7 +93,9 @@ public class AuthCredentialPatternView extends AuthCredentialView { @Override protected void onErrorTimeoutFinish() { super.onErrorTimeoutFinish(); - mLockPatternView.setEnabled(true); + // select to enable marquee unless a screen reader is enabled + mLockPatternView.setEnabled(!mAccessibilityManager.isEnabled() + || !mAccessibilityManager.isTouchExplorationEnabled()); } public AuthCredentialPatternView(Context context, AttributeSet attrs) { diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java index d4176acf10f9..fa623d146756 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java @@ -77,7 +77,7 @@ public abstract class AuthCredentialView extends LinearLayout { protected final Handler mHandler; protected final LockPatternUtils mLockPatternUtils; - private final AccessibilityManager mAccessibilityManager; + protected final AccessibilityManager mAccessibilityManager; private final UserManager mUserManager; private final DevicePolicyManager mDevicePolicyManager; @@ -86,10 +86,10 @@ public abstract class AuthCredentialView extends LinearLayout { private boolean mShouldAnimatePanel; private boolean mShouldAnimateContents; - private TextView mTitleView; + protected TextView mTitleView; protected TextView mSubtitleView; - private TextView mDescriptionView; - private ImageView mIconView; + protected TextView mDescriptionView; + protected ImageView mIconView; protected TextView mErrorView; protected @Utils.CredentialType int mCredentialType; diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt index 39199d194cc9..0d08b4307f12 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsLogger.kt @@ -16,12 +16,12 @@ package com.android.systemui.biometrics -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogLevel.ERROR -import com.android.systemui.log.LogLevel.VERBOSE -import com.android.systemui.log.LogLevel.WARNING import com.android.systemui.log.dagger.UdfpsLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogLevel.ERROR +import com.android.systemui.plugins.log.LogLevel.VERBOSE +import com.android.systemui.plugins.log.LogLevel.WARNING import com.google.errorprone.annotations.CompileTimeConstant import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlay.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlay.kt new file mode 100644 index 000000000000..6e78f3d3d6aa --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlay.kt @@ -0,0 +1,206 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.biometrics + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.PixelFormat +import android.graphics.Rect +import android.hardware.fingerprint.FingerprintManager +import android.hardware.fingerprint.FingerprintSensorPropertiesInternal +import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback +import android.os.Handler +import android.view.MotionEvent +import android.view.View +import android.view.WindowManager +import android.view.WindowManager.LayoutParams.INPUT_FEATURE_SPY +import com.android.keyguard.KeyguardUpdateMonitor +import com.android.systemui.CoreStartable +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.util.concurrency.DelayableExecutor +import com.android.systemui.util.concurrency.Execution +import java.util.* +import java.util.concurrent.Executor +import javax.inject.Inject + +private const val TAG = "UdfpsOverlay" + +@SuppressLint("ClickableViewAccessibility") +@SysUISingleton +class UdfpsOverlay +@Inject +constructor( + private val context: Context, + private val execution: Execution, + private val windowManager: WindowManager, + private val fingerprintManager: FingerprintManager?, + private val handler: Handler, + private val biometricExecutor: Executor, + private val alternateTouchProvider: Optional<AlternateUdfpsTouchProvider>, + private val fgExecutor: DelayableExecutor, + private val keyguardUpdateMonitor: KeyguardUpdateMonitor, + private val authController: AuthController, + private val udfpsLogger: UdfpsLogger +) : CoreStartable { + + /** The view, when [isShowing], or null. */ + var overlayView: UdfpsOverlayView? = null + private set + + private var requestId: Long = 0 + private var onFingerDown = false + val size = windowManager.maximumWindowMetrics.bounds + val udfpsProps: MutableList<FingerprintSensorPropertiesInternal> = mutableListOf() + + private var params: UdfpsOverlayParams = UdfpsOverlayParams() + + private val coreLayoutParams = + WindowManager.LayoutParams( + WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG, + 0 /* flags set in computeLayoutParams() */, + PixelFormat.TRANSLUCENT + ) + .apply { + title = TAG + fitInsetsTypes = 0 + gravity = android.view.Gravity.TOP or android.view.Gravity.LEFT + layoutInDisplayCutoutMode = + WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS + flags = Utils.FINGERPRINT_OVERLAY_LAYOUT_PARAM_FLAGS + privateFlags = WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY + // Avoid announcing window title. + accessibilityTitle = " " + inputFeatures = INPUT_FEATURE_SPY + } + + fun onTouch(v: View, event: MotionEvent): Boolean { + val view = v as UdfpsOverlayView + + return when (event.action) { + MotionEvent.ACTION_DOWN, + MotionEvent.ACTION_MOVE -> { + onFingerDown = true + if (!view.isDisplayConfigured && alternateTouchProvider.isPresent) { + biometricExecutor.execute { + alternateTouchProvider + .get() + .onPointerDown( + requestId, + event.x.toInt(), + event.y.toInt(), + event.touchMinor, + event.touchMajor + ) + } + fgExecutor.execute { + if (keyguardUpdateMonitor.isFingerprintDetectionRunning) { + keyguardUpdateMonitor.onUdfpsPointerDown(requestId.toInt()) + } + } + + view.configureDisplay { + biometricExecutor.execute { alternateTouchProvider.get().onUiReady() } + } + } + + true + } + MotionEvent.ACTION_UP, + MotionEvent.ACTION_CANCEL -> { + if (onFingerDown && alternateTouchProvider.isPresent) { + biometricExecutor.execute { + alternateTouchProvider.get().onPointerUp(requestId) + } + fgExecutor.execute { + if (keyguardUpdateMonitor.isFingerprintDetectionRunning) { + keyguardUpdateMonitor.onUdfpsPointerUp(requestId.toInt()) + } + } + } + onFingerDown = false + if (view.isDisplayConfigured) { + view.unconfigureDisplay() + } + + true + } + else -> false + } + } + + fun show(requestId: Long): Boolean { + this.requestId = requestId + if (overlayView == null && alternateTouchProvider.isPresent) { + UdfpsOverlayView(context, null).let { + it.overlayParams = params + it.setUdfpsDisplayMode( + UdfpsDisplayMode(context, execution, authController, udfpsLogger) + ) + it.setOnTouchListener { v, event -> onTouch(v, event) } + overlayView = it + } + windowManager.addView(overlayView, coreLayoutParams) + return true + } + + return false + } + + fun hide() { + overlayView?.apply { + windowManager.removeView(this) + setOnTouchListener(null) + } + + overlayView = null + } + + @Override + override fun start() { + fingerprintManager?.addAuthenticatorsRegisteredCallback( + object : IFingerprintAuthenticatorsRegisteredCallback.Stub() { + override fun onAllAuthenticatorsRegistered( + sensors: List<FingerprintSensorPropertiesInternal> + ) { + handler.post { handleAllFingerprintAuthenticatorsRegistered(sensors) } + } + } + ) + } + + private fun handleAllFingerprintAuthenticatorsRegistered( + sensors: List<FingerprintSensorPropertiesInternal> + ) { + for (props in sensors) { + if (props.isAnyUdfpsType) { + udfpsProps.add(props) + } + } + + // Setup param size + if (udfpsProps.isNotEmpty()) { + params = + UdfpsOverlayParams( + sensorBounds = udfpsProps[0].location.rect, + overlayBounds = Rect(0, size.height() / 2, size.width(), size.height()), + naturalDisplayWidth = size.width(), + naturalDisplayHeight = size.height(), + scaleFactor = 1f + ) + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlayParams.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlayParams.kt index d725dfbfe216..c23b0f09f099 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlayParams.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlayParams.kt @@ -20,6 +20,7 @@ import android.view.Surface.Rotation data class UdfpsOverlayParams( val sensorBounds: Rect = Rect(), + val overlayBounds: Rect = Rect(), val naturalDisplayWidth: Int = 0, val naturalDisplayHeight: Int = 0, val scaleFactor: Float = 1f, @@ -40,4 +41,4 @@ data class UdfpsOverlayParams( } else { naturalDisplayHeight } -}
\ No newline at end of file +} diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlayView.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlayView.kt new file mode 100644 index 000000000000..d37133239531 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsOverlayView.kt @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.biometrics + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.RectF +import android.util.AttributeSet +import android.widget.FrameLayout + +private const val TAG = "UdfpsOverlayView" + +class UdfpsOverlayView(context: Context, attrs: AttributeSet?) : FrameLayout(context, attrs) { + + private val sensorRect = RectF() + var overlayParams = UdfpsOverlayParams() + private var mUdfpsDisplayMode: UdfpsDisplayMode? = null + + var overlayPaint = Paint() + var sensorPaint = Paint() + val centerPaint = Paint() + + /** True after the call to [configureDisplay] and before the call to [unconfigureDisplay]. */ + var isDisplayConfigured: Boolean = false + private set + + init { + this.setWillNotDraw(false) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + overlayPaint.color = Color.argb(120, 255, 0, 0) + overlayPaint.style = Paint.Style.FILL + + sensorPaint.color = Color.argb(150, 134, 204, 255) + sensorPaint.style = Paint.Style.FILL + } + + override fun onDraw(canvas: Canvas) { + super.onDraw(canvas) + + canvas.drawRect(overlayParams.overlayBounds, overlayPaint) + canvas.drawRect(overlayParams.sensorBounds, sensorPaint) + canvas.drawCircle( + overlayParams.sensorBounds.exactCenterX(), + overlayParams.sensorBounds.exactCenterY(), + overlayParams.sensorBounds.width().toFloat() / 2, + centerPaint + ) + } + + fun setUdfpsDisplayMode(udfpsDisplayMode: UdfpsDisplayMode?) { + mUdfpsDisplayMode = udfpsDisplayMode + } + + fun configureDisplay(onDisplayConfigured: Runnable) { + isDisplayConfigured = true + mUdfpsDisplayMode?.enable(onDisplayConfigured) + } + + fun unconfigureDisplay() { + isDisplayConfigured = false + mUdfpsDisplayMode?.disable(null /* onDisabled */) + } +} diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsShell.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsShell.kt index b1d6e003319a..75640b787a62 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsShell.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsShell.kt @@ -16,6 +16,7 @@ package com.android.systemui.biometrics +import android.content.Context import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_BP import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_KEYGUARD import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_OTHER @@ -23,9 +24,9 @@ import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_SETTING import android.hardware.biometrics.BiometricOverlayConstants.REASON_ENROLL_ENROLLING import android.hardware.biometrics.BiometricOverlayConstants.REASON_ENROLL_FIND_SENSOR import android.hardware.biometrics.BiometricOverlayConstants.REASON_UNKNOWN -import android.hardware.fingerprint.IUdfpsOverlayController import android.hardware.fingerprint.IUdfpsOverlayControllerCallback import android.util.Log +import android.view.LayoutInflater import com.android.systemui.dagger.SysUISingleton import com.android.systemui.statusbar.commandline.Command import com.android.systemui.statusbar.commandline.CommandRegistry @@ -41,14 +42,17 @@ private const val SENSOR_ID = 0 */ @SysUISingleton class UdfpsShell @Inject constructor( - commandRegistry: CommandRegistry + commandRegistry: CommandRegistry, + private val udfpsOverlay: UdfpsOverlay ) : Command { /** * Set in [UdfpsController.java] constructor, used to show and hide the UDFPS overlay. * TODO: inject after b/229290039 is resolved */ - var udfpsOverlayController: IUdfpsOverlayController? = null + var udfpsOverlayController: UdfpsController.UdfpsOverlayController? = null + var context: Context? = null + var inflater: LayoutInflater? = null init { commandRegistry.registerCommand("udfps") { this } @@ -57,6 +61,11 @@ class UdfpsShell @Inject constructor( override fun execute(pw: PrintWriter, args: List<String>) { if (args.size == 1 && args[0] == "hide") { hideOverlay() + } else if (args.size == 2 && args[0] == "udfpsOverlay" && args[1] == "show") { + hideOverlay() + showUdfpsOverlay() + } else if (args.size == 2 && args[0] == "udfpsOverlay" && args[1] == "hide") { + hideUdfpsOverlay() } else if (args.size == 2 && args[0] == "show") { showOverlay(getEnrollmentReason(args[1])) } else { @@ -104,7 +113,17 @@ class UdfpsShell @Inject constructor( ) } + private fun showUdfpsOverlay() { + Log.v(TAG, "showUdfpsOverlay") + udfpsOverlay.show(REQUEST_ID) + } + + private fun hideUdfpsOverlay() { + Log.v(TAG, "hideUdfpsOverlay") + udfpsOverlay.hide() + } + private fun hideOverlay() { udfpsOverlayController?.hideUdfpsOverlay(SENSOR_ID) } -}
\ No newline at end of file +} diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/BluetoothLogger.kt b/packages/SystemUI/src/com/android/systemui/bluetooth/BluetoothLogger.kt index 96af42bfda22..d99625a9fbf2 100644 --- a/packages/SystemUI/src/com/android/systemui/bluetooth/BluetoothLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/bluetooth/BluetoothLogger.kt @@ -17,9 +17,9 @@ package com.android.systemui.bluetooth import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.BluetoothLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject /** Helper class for logging bluetooth events. */ diff --git a/packages/SystemUI/src/com/android/systemui/broadcast/logging/BroadcastDispatcherLogger.kt b/packages/SystemUI/src/com/android/systemui/broadcast/logging/BroadcastDispatcherLogger.kt index 5b3a982ab5e2..d27708fc04d7 100644 --- a/packages/SystemUI/src/com/android/systemui/broadcast/logging/BroadcastDispatcherLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/broadcast/logging/BroadcastDispatcherLogger.kt @@ -20,11 +20,11 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.INFO -import com.android.systemui.log.LogMessage +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogMessage import com.android.systemui.log.dagger.BroadcastDispatcherLog import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/common/shared/model/ContentDescription.kt b/packages/SystemUI/src/com/android/systemui/common/shared/model/ContentDescription.kt index bebade0cc484..08e8293cbe9c 100644 --- a/packages/SystemUI/src/com/android/systemui/common/shared/model/ContentDescription.kt +++ b/packages/SystemUI/src/com/android/systemui/common/shared/model/ContentDescription.kt @@ -17,6 +17,7 @@ package com.android.systemui.common.shared.model import android.annotation.StringRes +import android.content.Context /** * Models a content description, that can either be already [loaded][ContentDescription.Loaded] or @@ -30,4 +31,20 @@ sealed class ContentDescription { data class Resource( @StringRes val res: Int, ) : ContentDescription() + + companion object { + /** + * Returns the loaded content description string, or null if we don't have one. + * + * Prefer [com.android.systemui.common.ui.binder.ContentDescriptionViewBinder.bind] over + * this method. This should only be used for testing or concatenation purposes. + */ + fun ContentDescription?.loadContentDescription(context: Context): String? { + return when (this) { + null -> null + is Loaded -> this.description + is Resource -> context.getString(this.res) + } + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/common/shared/model/Text.kt b/packages/SystemUI/src/com/android/systemui/common/shared/model/Text.kt index 5d0e08ffc307..4a5693202dba 100644 --- a/packages/SystemUI/src/com/android/systemui/common/shared/model/Text.kt +++ b/packages/SystemUI/src/com/android/systemui/common/shared/model/Text.kt @@ -18,6 +18,7 @@ package com.android.systemui.common.shared.model import android.annotation.StringRes +import android.content.Context /** * Models a text, that can either be already [loaded][Text.Loaded] or be a [reference] @@ -31,4 +32,20 @@ sealed class Text { data class Resource( @StringRes val res: Int, ) : Text() + + companion object { + /** + * Returns the loaded test string, or null if we don't have one. + * + * Prefer [com.android.systemui.common.ui.binder.TextViewBinder.bind] over this method. This + * should only be used for testing or concatenation purposes. + */ + fun Text?.loadText(context: Context): String? { + return when (this) { + null -> null + is Loaded -> this.text + is Resource -> context.getString(this.res) + } + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt index 77b65233c112..d3b5d0edd222 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsActivity.kt @@ -21,6 +21,8 @@ import android.content.Context import android.content.Intent import android.content.IntentFilter import android.os.Bundle +import android.os.RemoteException +import android.service.dreams.IDreamManager import android.view.View import android.view.ViewGroup import android.view.WindowInsets @@ -40,11 +42,13 @@ import javax.inject.Inject */ class ControlsActivity @Inject constructor( private val uiController: ControlsUiController, - private val broadcastDispatcher: BroadcastDispatcher + private val broadcastDispatcher: BroadcastDispatcher, + private val dreamManager: IDreamManager, ) : ComponentActivity() { private lateinit var parent: ViewGroup private lateinit var broadcastReceiver: BroadcastReceiver + private var mExitToDream: Boolean = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -81,17 +85,36 @@ class ControlsActivity @Inject constructor( parent = requireViewById<ViewGroup>(R.id.global_actions_controls) parent.alpha = 0f - uiController.show(parent, { finish() }, this) + uiController.show(parent, { finishOrReturnToDream() }, this) ControlsAnimations.enterAnimation(parent).start() } - override fun onBackPressed() { + override fun onResume() { + super.onResume() + mExitToDream = intent.getBooleanExtra(ControlsUiController.EXIT_TO_DREAM, false) + } + + fun finishOrReturnToDream() { + if (mExitToDream) { + try { + mExitToDream = false + dreamManager.dream() + return + } catch (e: RemoteException) { + // Fall through + } + } finish() } + override fun onBackPressed() { + finishOrReturnToDream() + } + override fun onStop() { super.onStop() + mExitToDream = false uiController.hide() } @@ -106,7 +129,8 @@ class ControlsActivity @Inject constructor( broadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val action = intent.getAction() - if (Intent.ACTION_SCREEN_OFF.equals(action)) { + if (action == Intent.ACTION_SCREEN_OFF || + action == Intent.ACTION_DREAMING_STARTED) { finish() } } @@ -114,6 +138,7 @@ class ControlsActivity @Inject constructor( val filter = IntentFilter() filter.addAction(Intent.ACTION_SCREEN_OFF) + filter.addAction(Intent.ACTION_DREAMING_STARTED) broadcastDispatcher.registerReceiver(broadcastReceiver, filter) } } diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt index 822f8f2e6191..c1cfbcb0c211 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt @@ -27,6 +27,7 @@ interface ControlsUiController { companion object { public const val TAG = "ControlsUiController" public const val EXTRA_ANIMATE = "extra_animate" + public const val EXIT_TO_DREAM = "extra_exit_to_dream" } fun show(parent: ViewGroup, onDismiss: Runnable, activityContext: Context) diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt b/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt index 721c0ba4f865..09743ef7aebf 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUICoreStartableModule.kt @@ -25,6 +25,7 @@ import com.android.systemui.SliceBroadcastRelayHandler import com.android.systemui.accessibility.SystemActions import com.android.systemui.accessibility.WindowMagnification import com.android.systemui.biometrics.AuthController +import com.android.systemui.biometrics.UdfpsOverlay import com.android.systemui.clipboardoverlay.ClipboardListener import com.android.systemui.dagger.qualifiers.PerUser import com.android.systemui.globalactions.GlobalActionsComponent @@ -218,6 +219,12 @@ abstract class SystemUICoreStartableModule { @ClassKey(KeyguardLiftController::class) abstract fun bindKeyguardLiftController(sysui: KeyguardLiftController): CoreStartable + /** Inject into UdfpsOverlay. */ + @Binds + @IntoMap + @ClassKey(UdfpsOverlay::class) + abstract fun bindUdfpsOverlay(sysui: UdfpsOverlay): CoreStartable + /** Inject into MediaTttSenderCoordinator. */ @Binds @IntoMap diff --git a/packages/SystemUI/src/com/android/systemui/decor/CutoutDecorProviderImpl.kt b/packages/SystemUI/src/com/android/systemui/decor/CutoutDecorProviderImpl.kt index 991b54e8035e..ded0fb79cd6f 100644 --- a/packages/SystemUI/src/com/android/systemui/decor/CutoutDecorProviderImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/decor/CutoutDecorProviderImpl.kt @@ -59,7 +59,7 @@ class CutoutDecorProviderImpl( (view as? DisplayCutoutView)?.let { cutoutView -> cutoutView.setColor(tintColor) cutoutView.updateRotation(rotation) - cutoutView.onDisplayChanged(displayUniqueId) + cutoutView.updateConfiguration(displayUniqueId) } } } diff --git a/packages/SystemUI/src/com/android/systemui/decor/FaceScanningProviderFactory.kt b/packages/SystemUI/src/com/android/systemui/decor/FaceScanningProviderFactory.kt index ec0013bb5000..5fdd198c19d7 100644 --- a/packages/SystemUI/src/com/android/systemui/decor/FaceScanningProviderFactory.kt +++ b/packages/SystemUI/src/com/android/systemui/decor/FaceScanningProviderFactory.kt @@ -124,7 +124,7 @@ class FaceScanningOverlayProviderImpl( view.layoutParams = it (view as? FaceScanningOverlay)?.let { overlay -> overlay.setColor(tintColor) - overlay.onDisplayChanged(displayUniqueId) + overlay.updateConfiguration(displayUniqueId) } } } diff --git a/packages/SystemUI/src/com/android/systemui/decor/RoundedCornerResDelegate.kt b/packages/SystemUI/src/com/android/systemui/decor/RoundedCornerResDelegate.kt index a25286438387..8b4aeefb6ed4 100644 --- a/packages/SystemUI/src/com/android/systemui/decor/RoundedCornerResDelegate.kt +++ b/packages/SystemUI/src/com/android/systemui/decor/RoundedCornerResDelegate.kt @@ -78,23 +78,18 @@ class RoundedCornerResDelegate( reloadMeasures() } - private fun reloadAll(newReloadToken: Int) { - if (reloadToken == newReloadToken) { - return - } - reloadToken = newReloadToken - reloadRes() - reloadMeasures() - } - fun updateDisplayUniqueId(newDisplayUniqueId: String?, newReloadToken: Int?) { if (displayUniqueId != newDisplayUniqueId) { displayUniqueId = newDisplayUniqueId newReloadToken ?.let { reloadToken = it } reloadRes() reloadMeasures() - } else { - newReloadToken?.let { reloadAll(it) } + } else if (newReloadToken != null) { + if (reloadToken == newReloadToken) { + return + } + reloadToken = newReloadToken + reloadMeasures() } } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt index cc5766210406..0e1bfba8aadb 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt @@ -19,10 +19,10 @@ package com.android.systemui.doze import android.view.Display import com.android.systemui.doze.DozeLog.Reason import com.android.systemui.doze.DozeLog.reasonToString -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.ERROR -import com.android.systemui.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.ERROR +import com.android.systemui.plugins.log.LogLevel.INFO import com.android.systemui.log.dagger.DozeLog import com.android.systemui.statusbar.policy.DevicePostureController import java.text.SimpleDateFormat diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java index ae412152b10e..96c35d43052e 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java @@ -20,7 +20,6 @@ import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWA import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_WAKING; import android.annotation.MainThread; -import android.app.UiModeManager; import android.content.res.Configuration; import android.hardware.display.AmbientDisplayConfiguration; import android.os.Trace; @@ -145,10 +144,9 @@ public class DozeMachine { private final Service mDozeService; private final WakeLock mWakeLock; - private final AmbientDisplayConfiguration mConfig; + private final AmbientDisplayConfiguration mAmbientDisplayConfig; private final WakefulnessLifecycle mWakefulnessLifecycle; private final DozeHost mDozeHost; - private final UiModeManager mUiModeManager; private final DockManager mDockManager; private final Part[] mParts; @@ -156,18 +154,18 @@ public class DozeMachine { private State mState = State.UNINITIALIZED; private int mPulseReason; private boolean mWakeLockHeldForCurrentState = false; + private int mUiModeType = Configuration.UI_MODE_TYPE_NORMAL; @Inject - public DozeMachine(@WrappedService Service service, AmbientDisplayConfiguration config, + public DozeMachine(@WrappedService Service service, + AmbientDisplayConfiguration ambientDisplayConfig, WakeLock wakeLock, WakefulnessLifecycle wakefulnessLifecycle, - UiModeManager uiModeManager, DozeLog dozeLog, DockManager dockManager, DozeHost dozeHost, Part[] parts) { mDozeService = service; - mConfig = config; + mAmbientDisplayConfig = ambientDisplayConfig; mWakefulnessLifecycle = wakefulnessLifecycle; mWakeLock = wakeLock; - mUiModeManager = uiModeManager; mDozeLog = dozeLog; mDockManager = dockManager; mDozeHost = dozeHost; @@ -187,6 +185,18 @@ public class DozeMachine { } /** + * Notifies the {@link DozeMachine} that {@link Configuration} has changed. + */ + public void onConfigurationChanged(Configuration newConfiguration) { + int newUiModeType = newConfiguration.uiMode & Configuration.UI_MODE_TYPE_MASK; + if (mUiModeType == newUiModeType) return; + mUiModeType = newUiModeType; + for (Part part : mParts) { + part.onUiModeTypeChanged(mUiModeType); + } + } + + /** * Requests transitioning to {@code requestedState}. * * This can be called during a state transition, in which case it will be queued until all @@ -211,6 +221,14 @@ public class DozeMachine { requestState(State.DOZE_REQUEST_PULSE, pulseReason); } + /** + * @return true if {@link DozeMachine} is currently in either {@link State#UNINITIALIZED} + * or {@link State#FINISH} + */ + public boolean isUninitializedOrFinished() { + return mState == State.UNINITIALIZED || mState == State.FINISH; + } + void onScreenState(int state) { mDozeLog.traceDisplayState(state); for (Part part : mParts) { @@ -360,7 +378,7 @@ public class DozeMachine { if (mState == State.FINISH) { return State.FINISH; } - if (mUiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR + if (mUiModeType == Configuration.UI_MODE_TYPE_CAR && (requestedState.canPulse() || requestedState.staysAwake())) { Log.i(TAG, "Doze is suppressed with all triggers disabled as car mode is active"); mDozeLog.traceCarModeStarted(); @@ -411,7 +429,7 @@ public class DozeMachine { nextState = State.FINISH; } else if (mDockManager.isDocked()) { nextState = mDockManager.isHidden() ? State.DOZE : State.DOZE_AOD_DOCKED; - } else if (mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT)) { + } else if (mAmbientDisplayConfig.alwaysOnEnabled(UserHandle.USER_CURRENT)) { nextState = State.DOZE_AOD; } else { nextState = State.DOZE; @@ -427,6 +445,7 @@ public class DozeMachine { /** Dumps the current state */ public void dump(PrintWriter pw) { pw.print(" state="); pw.println(mState); + pw.print(" mUiModeType="); pw.println(mUiModeType); pw.print(" wakeLockHeldForCurrentState="); pw.println(mWakeLockHeldForCurrentState); pw.print(" wakeLock="); pw.println(mWakeLock); pw.println("Parts:"); @@ -459,6 +478,19 @@ public class DozeMachine { /** Sets the {@link DozeMachine} when this Part is associated with one. */ default void setDozeMachine(DozeMachine dozeMachine) {} + + /** + * Notifies the Part about a change in {@link Configuration#uiMode}. + * + * @param newUiModeType {@link Configuration#UI_MODE_TYPE_NORMAL}, + * {@link Configuration#UI_MODE_TYPE_DESK}, + * {@link Configuration#UI_MODE_TYPE_CAR}, + * {@link Configuration#UI_MODE_TYPE_TELEVISION}, + * {@link Configuration#UI_MODE_TYPE_APPLIANCE}, + * {@link Configuration#UI_MODE_TYPE_WATCH}, + * or {@link Configuration#UI_MODE_TYPE_VR_HEADSET} + */ + default void onUiModeTypeChanged(int newUiModeType) {} } /** A wrapper interface for {@link android.service.dreams.DreamService} */ diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index a2eb4e3bb640..e8d7e4642e3e 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -17,6 +17,7 @@ package com.android.systemui.doze; import android.content.Context; +import android.content.res.Configuration; import android.os.PowerManager; import android.os.SystemClock; import android.service.dreams.DreamService; @@ -59,6 +60,7 @@ public class DozeService extends DreamService mPluginManager.addPluginListener(this, DozeServicePlugin.class, false /* allowMultiple */); DozeComponent dozeComponent = mDozeComponentBuilder.build(this); mDozeMachine = dozeComponent.getDozeMachine(); + mDozeMachine.onConfigurationChanged(getResources().getConfiguration()); } @Override @@ -127,6 +129,12 @@ public class DozeService extends DreamService } @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + mDozeMachine.onConfigurationChanged(newConfig); + } + + @Override public void onRequestHideDoze() { if (mDozeMachine != null) { mDozeMachine.requestState(DozeMachine.State.DOZE); diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressor.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressor.java index 7ed4b35e1ee7..e6d98655b119 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressor.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressor.java @@ -16,21 +16,13 @@ package com.android.systemui.doze; -import static android.app.UiModeManager.ACTION_ENTER_CAR_MODE; -import static android.app.UiModeManager.ACTION_EXIT_CAR_MODE; - -import android.app.UiModeManager; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.res.Configuration; +import static android.content.res.Configuration.UI_MODE_TYPE_CAR; + import android.hardware.display.AmbientDisplayConfiguration; import android.os.PowerManager; import android.os.UserHandle; import android.text.TextUtils; -import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.doze.dagger.DozeScope; import com.android.systemui.statusbar.phone.BiometricUnlockController; @@ -43,7 +35,9 @@ import dagger.Lazy; /** * Handles suppressing doze on: * 1. INITIALIZED, don't allow dozing at all when: - * - in CAR_MODE + * - in CAR_MODE, in this scenario the device is asleep and won't listen for any triggers + * to wake up. In this state, no UI shows. Unlike other conditions, this suppression is only + * temporary and stops when the device exits CAR_MODE * - device is NOT provisioned * - there's a pending authentication * 2. PowerSaveMode active @@ -57,35 +51,47 @@ import dagger.Lazy; */ @DozeScope public class DozeSuppressor implements DozeMachine.Part { - private static final String TAG = "DozeSuppressor"; private DozeMachine mMachine; private final DozeHost mDozeHost; private final AmbientDisplayConfiguration mConfig; private final DozeLog mDozeLog; - private final BroadcastDispatcher mBroadcastDispatcher; - private final UiModeManager mUiModeManager; private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy; - private boolean mBroadcastReceiverRegistered; + private boolean mIsCarModeEnabled = false; @Inject public DozeSuppressor( DozeHost dozeHost, AmbientDisplayConfiguration config, DozeLog dozeLog, - BroadcastDispatcher broadcastDispatcher, - UiModeManager uiModeManager, Lazy<BiometricUnlockController> biometricUnlockControllerLazy) { mDozeHost = dozeHost; mConfig = config; mDozeLog = dozeLog; - mBroadcastDispatcher = broadcastDispatcher; - mUiModeManager = uiModeManager; mBiometricUnlockControllerLazy = biometricUnlockControllerLazy; } @Override + public void onUiModeTypeChanged(int newUiModeType) { + boolean isCarModeEnabled = newUiModeType == UI_MODE_TYPE_CAR; + if (mIsCarModeEnabled == isCarModeEnabled) { + return; + } + mIsCarModeEnabled = isCarModeEnabled; + // Do not handle the event if doze machine is not initialized yet. + // It will be handled upon initialization. + if (mMachine.isUninitializedOrFinished()) { + return; + } + if (mIsCarModeEnabled) { + handleCarModeStarted(); + } else { + handleCarModeExited(); + } + } + + @Override public void setDozeMachine(DozeMachine dozeMachine) { mMachine = dozeMachine; } @@ -94,7 +100,6 @@ public class DozeSuppressor implements DozeMachine.Part { public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) { switch (newState) { case INITIALIZED: - registerBroadcastReceiver(); mDozeHost.addCallback(mHostCallback); checkShouldImmediatelyEndDoze(); checkShouldImmediatelySuspendDoze(); @@ -108,14 +113,12 @@ public class DozeSuppressor implements DozeMachine.Part { @Override public void destroy() { - unregisterBroadcastReceiver(); mDozeHost.removeCallback(mHostCallback); } private void checkShouldImmediatelySuspendDoze() { - if (mUiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR) { - mDozeLog.traceCarModeStarted(); - mMachine.requestState(DozeMachine.State.DOZE_SUSPEND_TRIGGERS); + if (mIsCarModeEnabled) { + handleCarModeStarted(); } } @@ -135,7 +138,7 @@ public class DozeSuppressor implements DozeMachine.Part { @Override public void dump(PrintWriter pw) { - pw.println(" uiMode=" + mUiModeManager.getCurrentModeType()); + pw.println(" isCarModeEnabled=" + mIsCarModeEnabled); pw.println(" hasPendingAuth=" + mBiometricUnlockControllerLazy.get().hasPendingAuthentication()); pw.println(" isProvisioned=" + mDozeHost.isProvisioned()); @@ -143,40 +146,18 @@ public class DozeSuppressor implements DozeMachine.Part { pw.println(" aodPowerSaveActive=" + mDozeHost.isPowerSaveActive()); } - private void registerBroadcastReceiver() { - if (mBroadcastReceiverRegistered) { - return; - } - IntentFilter filter = new IntentFilter(ACTION_ENTER_CAR_MODE); - filter.addAction(ACTION_EXIT_CAR_MODE); - mBroadcastDispatcher.registerReceiver(mBroadcastReceiver, filter); - mBroadcastReceiverRegistered = true; + private void handleCarModeExited() { + mDozeLog.traceCarModeEnded(); + mMachine.requestState(mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT) + ? DozeMachine.State.DOZE_AOD : DozeMachine.State.DOZE); } - private void unregisterBroadcastReceiver() { - if (!mBroadcastReceiverRegistered) { - return; - } - mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver); - mBroadcastReceiverRegistered = false; + private void handleCarModeStarted() { + mDozeLog.traceCarModeStarted(); + mMachine.requestState(DozeMachine.State.DOZE_SUSPEND_TRIGGERS); } - private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (ACTION_ENTER_CAR_MODE.equals(action)) { - mDozeLog.traceCarModeStarted(); - mMachine.requestState(DozeMachine.State.DOZE_SUSPEND_TRIGGERS); - } else if (ACTION_EXIT_CAR_MODE.equals(action)) { - mDozeLog.traceCarModeEnded(); - mMachine.requestState(mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT) - ? DozeMachine.State.DOZE_AOD : DozeMachine.State.DOZE); - } - } - }; - - private DozeHost.Callback mHostCallback = new DozeHost.Callback() { + private final DozeHost.Callback mHostCallback = new DozeHost.Callback() { @Override public void onPowerSaveChanged(boolean active) { // handles suppression changes, while DozeMachine#transitionPolicy handles gating diff --git a/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java b/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java index 0ccb222c8acc..cedd850ac2ef 100644 --- a/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java +++ b/packages/SystemUI/src/com/android/systemui/dreams/complication/DreamHomeControlsComplication.java @@ -210,7 +210,8 @@ public class DreamHomeControlsComplication implements Complication { final Intent intent = new Intent(mContext, ControlsActivity.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK) - .putExtra(ControlsUiController.EXTRA_ANIMATE, true); + .putExtra(ControlsUiController.EXTRA_ANIMATE, true) + .putExtra(ControlsUiController.EXIT_TO_DREAM, true); final ActivityLaunchAnimator.Controller controller = v != null ? ActivityLaunchAnimator.Controller.fromView(v, null /* cujType */) diff --git a/packages/SystemUI/src/com/android/systemui/dump/DumpHandler.kt b/packages/SystemUI/src/com/android/systemui/dump/DumpHandler.kt index 08ef8f3d025f..478f86169718 100644 --- a/packages/SystemUI/src/com/android/systemui/dump/DumpHandler.kt +++ b/packages/SystemUI/src/com/android/systemui/dump/DumpHandler.kt @@ -24,7 +24,7 @@ import com.android.systemui.R import com.android.systemui.dump.DumpHandler.Companion.PRIORITY_ARG_CRITICAL import com.android.systemui.dump.DumpHandler.Companion.PRIORITY_ARG_HIGH import com.android.systemui.dump.DumpHandler.Companion.PRIORITY_ARG_NORMAL -import com.android.systemui.log.LogBuffer +import com.android.systemui.plugins.log.LogBuffer import com.android.systemui.shared.system.UncaughtExceptionPreHandlerManager import java.io.PrintWriter import javax.inject.Inject @@ -235,6 +235,7 @@ class DumpHandler @Inject constructor( pw.println("$ <invocation> buffers") pw.println("$ <invocation> bugreport-critical") pw.println("$ <invocation> bugreport-normal") + pw.println("$ <invocation> config") pw.println() pw.println("Targets can be listed:") @@ -313,13 +314,21 @@ class DumpHandler @Inject constructor( const val PRIORITY_ARG_CRITICAL = "CRITICAL" const val PRIORITY_ARG_HIGH = "HIGH" const val PRIORITY_ARG_NORMAL = "NORMAL" + const val PROTO = "--sysui_proto" } } private val PRIORITY_OPTIONS = arrayOf(PRIORITY_ARG_CRITICAL, PRIORITY_ARG_HIGH, PRIORITY_ARG_NORMAL) -private val COMMANDS = arrayOf("bugreport-critical", "bugreport-normal", "buffers", "dumpables") +private val COMMANDS = arrayOf( + "bugreport-critical", + "bugreport-normal", + "buffers", + "dumpables", + "config", + "help" +) private class ParsedArgs( val rawArgs: Array<String>, diff --git a/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt b/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt index cca04da8f426..dbca65122fcb 100644 --- a/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt +++ b/packages/SystemUI/src/com/android/systemui/dump/DumpManager.kt @@ -18,7 +18,7 @@ package com.android.systemui.dump import android.util.ArrayMap import com.android.systemui.Dumpable -import com.android.systemui.log.LogBuffer +import com.android.systemui.plugins.log.LogBuffer import java.io.PrintWriter import javax.inject.Inject import javax.inject.Singleton diff --git a/packages/SystemUI/src/com/android/systemui/dump/LogBufferEulogizer.kt b/packages/SystemUI/src/com/android/systemui/dump/LogBufferEulogizer.kt index 0eab1afc4119..8299b13d305f 100644 --- a/packages/SystemUI/src/com/android/systemui/dump/LogBufferEulogizer.kt +++ b/packages/SystemUI/src/com/android/systemui/dump/LogBufferEulogizer.kt @@ -19,7 +19,7 @@ package com.android.systemui.dump import android.content.Context import android.util.Log import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer +import com.android.systemui.plugins.log.LogBuffer import com.android.systemui.util.io.Files import com.android.systemui.util.time.SystemClock import java.io.IOException diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.java b/packages/SystemUI/src/com/android/systemui/flags/Flags.java index fce9423fe8b1..465ebfec6d45 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.java +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.java @@ -45,35 +45,45 @@ public class Flags { /***************************************/ // 100 - notification + // TODO(b/254512751): Tracking Bug public static final UnreleasedFlag NOTIFICATION_PIPELINE_DEVELOPER_LOGGING = new UnreleasedFlag(103); + // TODO(b/254512732): Tracking Bug public static final UnreleasedFlag NSSL_DEBUG_LINES = new UnreleasedFlag(105); + // TODO(b/254512505): Tracking Bug public static final UnreleasedFlag NSSL_DEBUG_REMOVE_ANIMATION = new UnreleasedFlag(106); - public static final UnreleasedFlag NEW_PIPELINE_CRASH_ON_CALL_TO_OLD_PIPELINE = - new UnreleasedFlag(107); - + // TODO(b/254512624): Tracking Bug public static final ResourceBooleanFlag NOTIFICATION_DRAG_TO_CONTENTS = new ResourceBooleanFlag(108, R.bool.config_notificationToContents); + // TODO(b/254512703): Tracking Bug public static final ReleasedFlag REMOVE_UNRANKED_NOTIFICATIONS = new ReleasedFlag(109); + // TODO(b/254512517): Tracking Bug public static final UnreleasedFlag FSI_REQUIRES_KEYGUARD = new UnreleasedFlag(110, true); + // TODO(b/254512538): Tracking Bug public static final UnreleasedFlag INSTANT_VOICE_REPLY = new UnreleasedFlag(111, true); + // TODO(b/254512425): Tracking Bug public static final UnreleasedFlag NOTIFICATION_MEMORY_MONITOR_ENABLED = new UnreleasedFlag(112, false); + // TODO(b/254512731): Tracking Bug public static final UnreleasedFlag NOTIFICATION_DISMISSAL_FADE = new UnreleasedFlag(113, true); - // next id: 114 + public static final UnreleasedFlag STABILITY_INDEX_FIX = new UnreleasedFlag(114, true); + + public static final UnreleasedFlag SEMI_STABLE_SORT = new UnreleasedFlag(115, true); + + // next id: 116 /***************************************/ // 200 - keyguard/lockscreen @@ -82,27 +92,33 @@ public class Flags { // public static final BooleanFlag KEYGUARD_LAYOUT = // new BooleanFlag(200, true); + // TODO(b/254512713): Tracking Bug public static final ReleasedFlag LOCKSCREEN_ANIMATIONS = new ReleasedFlag(201); + // TODO(b/254512750): Tracking Bug public static final ReleasedFlag NEW_UNLOCK_SWIPE_ANIMATION = new ReleasedFlag(202); public static final ResourceBooleanFlag CHARGING_RIPPLE = new ResourceBooleanFlag(203, R.bool.flag_charging_ripple); + // TODO(b/254512281): Tracking Bug public static final ResourceBooleanFlag BOUNCER_USER_SWITCHER = new ResourceBooleanFlag(204, R.bool.config_enableBouncerUserSwitcher); + // TODO(b/254512694): Tracking Bug public static final ResourceBooleanFlag FACE_SCANNING_ANIM = new ResourceBooleanFlag(205, R.bool.config_enableFaceScanningAnimation); + // TODO(b/254512676): Tracking Bug public static final UnreleasedFlag LOCKSCREEN_CUSTOM_CLOCKS = new UnreleasedFlag(207); /** * Flag to enable the usage of the new bouncer data source. This is a refactor of and * eventual replacement of KeyguardBouncer.java. */ + // TODO(b/254512385): Tracking Bug public static final UnreleasedFlag MODERN_BOUNCER = new UnreleasedFlag(208); /** @@ -111,6 +127,7 @@ public class Flags { * <p>If this is {@code false}, the interactor and repo skip the controller and directly access * the framework APIs. */ + // TODO(b/254513286): Tracking Bug public static final UnreleasedFlag USER_INTERACTOR_AND_REPO_USE_CONTROLLER = new UnreleasedFlag(210); @@ -123,18 +140,28 @@ public class Flags { * <p>Note: do not set this to true if {@link #USER_INTERACTOR_AND_REPO_USE_CONTROLLER} is * {@code true} as it would created a cycle between controller -> interactor -> controller. */ + // TODO(b/254513102): Tracking Bug public static final ReleasedFlag USER_CONTROLLER_USES_INTERACTOR = new ReleasedFlag(211); + /** + * Whether the clock on a wide lock screen should use the new "stepping" animation for moving + * the digits when the clock moves. + */ + public static final UnreleasedFlag STEP_CLOCK_ANIMATION = new UnreleasedFlag(212); + /***************************************/ // 300 - power menu + // TODO(b/254512600): Tracking Bug public static final ReleasedFlag POWER_MENU_LITE = new ReleasedFlag(300); /***************************************/ // 400 - smartspace + // TODO(b/254513080): Tracking Bug public static final ReleasedFlag SMARTSPACE_DEDUPING = new ReleasedFlag(400); + // TODO(b/254513100): Tracking Bug public static final ReleasedFlag SMARTSPACE_SHARED_ELEMENT_TRANSITION_ENABLED = new ReleasedFlag(401); @@ -150,6 +177,7 @@ public class Flags { public static final ReleasedFlag NEW_USER_SWITCHER = new ReleasedFlag(500); + // TODO(b/254512321): Tracking Bug public static final UnreleasedFlag COMBINED_QS_HEADERS = new UnreleasedFlag(501, true); @@ -162,37 +190,48 @@ public class Flags { /** * @deprecated Not needed anymore */ + // TODO(b/254512699): Tracking Bug @Deprecated public static final ReleasedFlag NEW_FOOTER = new ReleasedFlag(504); + // TODO(b/254512747): Tracking Bug public static final UnreleasedFlag NEW_HEADER = new UnreleasedFlag(505, true); + // TODO(b/254512383): Tracking Bug public static final ResourceBooleanFlag FULL_SCREEN_USER_SWITCHER = new ResourceBooleanFlag(506, R.bool.config_enableFullscreenUserSwitcher); + // TODO(b/254512678): Tracking Bug public static final ReleasedFlag NEW_FOOTER_ACTIONS = new ReleasedFlag(507); /***************************************/ // 600- status bar + // TODO(b/254513246): Tracking Bug public static final ResourceBooleanFlag STATUS_BAR_USER_SWITCHER = new ResourceBooleanFlag(602, R.bool.flag_user_switcher_chip); + // TODO(b/254513025): Tracking Bug public static final ReleasedFlag STATUS_BAR_LETTERBOX_APPEARANCE = new ReleasedFlag(603, false); + // TODO(b/254512623): Tracking Bug public static final UnreleasedFlag NEW_STATUS_BAR_PIPELINE_BACKEND = new UnreleasedFlag(604, false); + // TODO(b/254512660): Tracking Bug public static final UnreleasedFlag NEW_STATUS_BAR_PIPELINE_FRONTEND = new UnreleasedFlag(605, false); /***************************************/ // 700 - dialer/calls + // TODO(b/254512734): Tracking Bug public static final ReleasedFlag ONGOING_CALL_STATUS_BAR_CHIP = new ReleasedFlag(700); + // TODO(b/254512681): Tracking Bug public static final ReleasedFlag ONGOING_CALL_IN_IMMERSIVE = new ReleasedFlag(701); + // TODO(b/254512753): Tracking Bug public static final ReleasedFlag ONGOING_CALL_IN_IMMERSIVE_CHIP_TAP = new ReleasedFlag(702); @@ -203,32 +242,48 @@ public class Flags { /***************************************/ // 801 - region sampling + // TODO(b/254512848): Tracking Bug public static final UnreleasedFlag REGION_SAMPLING = new UnreleasedFlag(801); // 802 - wallpaper rendering + // TODO(b/254512923): Tracking Bug public static final UnreleasedFlag USE_CANVAS_RENDERER = new UnreleasedFlag(802, true); // 803 - screen contents translation + // TODO(b/254513187): Tracking Bug public static final UnreleasedFlag SCREEN_CONTENTS_TRANSLATION = new UnreleasedFlag(803); + // 804 - monochromatic themes + public static final UnreleasedFlag MONOCHROMATIC_THEMES = new UnreleasedFlag(804); + /***************************************/ // 900 - media + // TODO(b/254512697): Tracking Bug public static final ReleasedFlag MEDIA_TAP_TO_TRANSFER = new ReleasedFlag(900); + // TODO(b/254512502): Tracking Bug public static final UnreleasedFlag MEDIA_SESSION_ACTIONS = new UnreleasedFlag(901); + // TODO(b/254512726): Tracking Bug public static final ReleasedFlag MEDIA_NEARBY_DEVICES = new ReleasedFlag(903); + // TODO(b/254512695): Tracking Bug public static final ReleasedFlag MEDIA_MUTE_AWAIT = new ReleasedFlag(904); + // TODO(b/254512654): Tracking Bug public static final UnreleasedFlag DREAM_MEDIA_COMPLICATION = new UnreleasedFlag(905); + // TODO(b/254512673): Tracking Bug public static final UnreleasedFlag DREAM_MEDIA_TAP_TO_OPEN = new UnreleasedFlag(906); + // TODO(b/254513168): Tracking Bug public static final UnreleasedFlag UMO_SURFACE_RIPPLE = new UnreleasedFlag(907); // 1000 - dock public static final ReleasedFlag SIMULATE_DOCK_THROUGH_CHARGING = new ReleasedFlag(1000); + + // TODO(b/254512444): Tracking Bug public static final ReleasedFlag DOCK_SETUP_ENABLED = new ReleasedFlag(1001); - public static final UnreleasedFlag ROUNDED_BOX_RIPPLE = - new UnreleasedFlag(1002, /* teamfood= */ true); + // TODO(b/254512758): Tracking Bug + public static final ReleasedFlag ROUNDED_BOX_RIPPLE = new ReleasedFlag(1002); + // TODO(b/254512525): Tracking Bug public static final UnreleasedFlag REFACTORED_DOCK_SETUP = new UnreleasedFlag(1003, true); // 1100 - windowing @@ -243,11 +298,13 @@ public class Flags { public static final SysPropBooleanFlag BUBBLES_HOME_GESTURE = new SysPropBooleanFlag(1101, "persist.wm.debug.bubbles_home_gesture", true); + // TODO(b/254513207): Tracking Bug @Keep public static final DeviceConfigBooleanFlag WM_ENABLE_PARTIAL_SCREEN_SHARING = new DeviceConfigBooleanFlag(1102, "record_task_content", NAMESPACE_WINDOW_MANAGER, false, true); + // TODO(b/254512674): Tracking Bug @Keep public static final SysPropBooleanFlag HIDE_NAVBAR_WINDOW = new SysPropBooleanFlag(1103, "persist.wm.debug.hide_navbar_window", false); @@ -290,18 +347,23 @@ public class Flags { public static final SysPropBooleanFlag WM_ALWAYS_ENFORCE_PREDICTIVE_BACK = new SysPropBooleanFlag(1202, "persist.wm.debug.predictive_back_always_enforce", false); + // TODO(b/254512728): Tracking Bug public static final UnreleasedFlag NEW_BACK_AFFORDANCE = new UnreleasedFlag(1203, false /* teamfood */); // 1300 - screenshots + // TODO(b/254512719): Tracking Bug public static final UnreleasedFlag SCREENSHOT_REQUEST_PROCESSOR = new UnreleasedFlag(1300); + // TODO(b/254513155): Tracking Bug public static final UnreleasedFlag SCREENSHOT_WORK_PROFILE_POLICY = new UnreleasedFlag(1301); // 1400 - columbus + // TODO(b/254512756): Tracking Bug public static final ReleasedFlag QUICK_TAP_IN_PCC = new ReleasedFlag(1400); // 1500 - chooser + // TODO(b/254512507): Tracking Bug public static final UnreleasedFlag CHOOSER_UNBUNDLED = new UnreleasedFlag(1500); // 1600 - accessibility @@ -311,6 +373,10 @@ public class Flags { // 1700 - clipboard public static final UnreleasedFlag CLIPBOARD_OVERLAY_REFACTOR = new UnreleasedFlag(1700); + // 1800 - shade container + public static final UnreleasedFlag LEAVE_SHADE_OPEN_FOR_BUGREPORT = + new UnreleasedFlag(1800, true); + // Pay no attention to the reflection behind the curtain. // ========================== Curtain ========================== // | | diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java index da5819a7f3bc..3ef5499237f1 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java @@ -116,6 +116,7 @@ import com.android.systemui.MultiListLayout; import com.android.systemui.MultiListLayout.MultiListAdapter; import com.android.systemui.animation.DialogCuj; import com.android.systemui.animation.DialogLaunchAnimator; +import com.android.systemui.animation.Expandable; import com.android.systemui.animation.Interpolators; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.colorextraction.SysuiColorExtractor; @@ -448,10 +449,11 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene * * @param keyguardShowing True if keyguard is showing * @param isDeviceProvisioned True if device is provisioned - * @param view The view from which we should animate the dialog when showing it + * @param expandable The expandable from which we should animate the dialog when + * showing it */ public void showOrHideDialog(boolean keyguardShowing, boolean isDeviceProvisioned, - @Nullable View view) { + @Nullable Expandable expandable) { mKeyguardShowing = keyguardShowing; mDeviceProvisioned = isDeviceProvisioned; if (mDialog != null && mDialog.isShowing()) { @@ -463,7 +465,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mDialog.dismiss(); mDialog = null; } else { - handleShow(view); + handleShow(expandable); } } @@ -495,7 +497,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene } } - protected void handleShow(@Nullable View view) { + protected void handleShow(@Nullable Expandable expandable) { awakenIfNecessary(); mDialog = createDialog(); prepareDialog(); @@ -507,10 +509,12 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene // Don't acquire soft keyboard focus, to avoid destroying state when capturing bugreports mDialog.getWindow().addFlags(FLAG_ALT_FOCUSABLE_IM); - if (view != null) { - mDialogLaunchAnimator.showFromView(mDialog, view, - new DialogCuj(InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, - INTERACTION_JANK_TAG)); + DialogLaunchAnimator.Controller controller = + expandable != null ? expandable.dialogLaunchController( + new DialogCuj(InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, + INTERACTION_JANK_TAG)) : null; + if (controller != null) { + mDialogLaunchAnimator.show(mDialog, controller); } else { mDialog.show(); } @@ -1016,8 +1020,9 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene Log.w(TAG, "Bugreport handler could not be launched"); mIActivityManager.requestInteractiveBugReport(); } - // Close shade so user sees the activity - mCentralSurfacesOptional.ifPresent(CentralSurfaces::collapseShade); + // Maybe close shade (depends on a flag) so user sees the activity + mCentralSurfacesOptional.ifPresent( + CentralSurfaces::collapseShadeForBugreport); } catch (RemoteException e) { } } @@ -1036,8 +1041,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene mMetricsLogger.action(MetricsEvent.ACTION_BUGREPORT_FROM_POWER_MENU_FULL); mUiEventLogger.log(GlobalActionsEvent.GA_BUGREPORT_LONG_PRESS); mIActivityManager.requestFullBugReport(); - // Close shade so user sees the activity - mCentralSurfacesOptional.ifPresent(CentralSurfaces::collapseShade); + // Maybe close shade (depends on a flag) so user sees the activity + mCentralSurfacesOptional.ifPresent(CentralSurfaces::collapseShadeForBugreport); } catch (RemoteException e) { } return false; diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java index 56f1ac46a875..56a1f1ae936e 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/dagger/KeyguardModule.java @@ -43,6 +43,7 @@ import com.android.systemui.keyguard.DismissCallbackRegistry; import com.android.systemui.keyguard.KeyguardUnlockAnimationController; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.keyguard.data.repository.KeyguardRepositoryModule; +import com.android.systemui.keyguard.domain.interactor.StartKeyguardTransitionModule; import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceModule; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.statusbar.NotificationShadeDepthController; @@ -72,6 +73,7 @@ import dagger.Provides; FalsingModule.class, KeyguardQuickAffordanceModule.class, KeyguardRepositoryModule.class, + StartKeyguardTransitionModule.class, }) public class KeyguardModule { /** diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt index 45b668e609ea..b186ae0ceec4 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardRepository.kt @@ -21,6 +21,7 @@ import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCall import com.android.systemui.common.shared.model.Position import com.android.systemui.dagger.SysUISingleton import com.android.systemui.doze.DozeHost +import com.android.systemui.keyguard.shared.model.StatusBarState import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.policy.KeyguardStateController import javax.inject.Inject @@ -85,6 +86,9 @@ interface KeyguardRepository { */ val dozeAmount: Flow<Float> + /** Observable for the [StatusBarState] */ + val statusBarState: Flow<StatusBarState> + /** * Returns `true` if the keyguard is showing; `false` otherwise. * @@ -185,6 +189,24 @@ constructor( return keyguardStateController.isShowing } + override val statusBarState: Flow<StatusBarState> = conflatedCallbackFlow { + val callback = + object : StatusBarStateController.StateListener { + override fun onStateChanged(state: Int) { + trySendWithFailureLogging(statusBarStateIntToObject(state), TAG, "state") + } + } + + statusBarStateController.addCallback(callback) + trySendWithFailureLogging( + statusBarStateIntToObject(statusBarStateController.getState()), + TAG, + "initial state" + ) + + awaitClose { statusBarStateController.removeCallback(callback) } + } + override fun setAnimateDozingTransitions(animate: Boolean) { _animateBottomAreaDozingTransitions.value = animate } @@ -197,6 +219,15 @@ constructor( _clockPosition.value = Position(x, y) } + private fun statusBarStateIntToObject(value: Int): StatusBarState { + return when (value) { + 0 -> StatusBarState.SHADE + 1 -> StatusBarState.KEYGUARD + 2 -> StatusBarState.SHADE_LOCKED + else -> throw IllegalArgumentException("Invalid StatusBarState value: $value") + } + } + companion object { private const val TAG = "KeyguardRepositoryImpl" } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepository.kt b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepository.kt new file mode 100644 index 000000000000..e8532ecfdc37 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepository.kt @@ -0,0 +1,169 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.keyguard.data.repository + +import android.animation.Animator +import android.animation.AnimatorListenerAdapter +import android.animation.ValueAnimator +import android.animation.ValueAnimator.AnimatorUpdateListener +import android.annotation.FloatRange +import android.util.Log +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.keyguard.shared.model.KeyguardState +import com.android.systemui.keyguard.shared.model.TransitionInfo +import com.android.systemui.keyguard.shared.model.TransitionState +import com.android.systemui.keyguard.shared.model.TransitionStep +import java.util.UUID +import javax.inject.Inject +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.filter + +@SysUISingleton +class KeyguardTransitionRepository @Inject constructor() { + /* + * Each transition between [KeyguardState]s will have an associated Flow. + * In order to collect these events, clients should call [transition]. + */ + private val _transitions = MutableStateFlow(TransitionStep()) + val transitions = _transitions.asStateFlow() + + /* Information about the active transition. */ + private var currentTransitionInfo: TransitionInfo? = null + /* + * When manual control of the transition is requested, a unique [UUID] is used as the handle + * to permit calls to [updateTransition] + */ + private var updateTransitionId: UUID? = null + + /** + * Interactors that require information about changes between [KeyguardState]s will call this to + * register themselves for flowable [TransitionStep]s when that transition occurs. + */ + fun transition(from: KeyguardState, to: KeyguardState): Flow<TransitionStep> { + return transitions.filter { step -> step.from == from && step.to == to } + } + + /** + * Begin a transition from one state to another. The [info.from] must match + * [currentTransitionInfo.to], or the request will be denied. This is enforced to avoid + * unplanned transitions. + */ + fun startTransition(info: TransitionInfo): UUID? { + if (currentTransitionInfo != null) { + // Open questions: + // * Queue of transitions? buffer of 1? + // * Are transitions cancellable if a new one is triggered? + // * What validation does this need to do? + Log.wtf(TAG, "Transition still active: $currentTransitionInfo") + return null + } + currentTransitionInfo?.animator?.cancel() + + currentTransitionInfo = info + info.animator?.let { animator -> + // An animator was provided, so use it to run the transition + animator.setFloatValues(0f, 1f) + val updateListener = + object : AnimatorUpdateListener { + override fun onAnimationUpdate(animation: ValueAnimator) { + emitTransition( + info, + (animation.getAnimatedValue() as Float), + TransitionState.RUNNING + ) + } + } + val adapter = + object : AnimatorListenerAdapter() { + override fun onAnimationStart(animation: Animator) { + Log.i(TAG, "Starting transition: $info") + emitTransition(info, 0f, TransitionState.STARTED) + } + override fun onAnimationCancel(animation: Animator) { + Log.i(TAG, "Cancelling transition: $info") + } + override fun onAnimationEnd(animation: Animator) { + Log.i(TAG, "Ending transition: $info") + emitTransition(info, 1f, TransitionState.FINISHED) + animator.removeListener(this) + animator.removeUpdateListener(updateListener) + } + } + animator.addListener(adapter) + animator.addUpdateListener(updateListener) + animator.start() + return@startTransition null + } + ?: run { + Log.i(TAG, "Starting transition (manual): $info") + emitTransition(info, 0f, TransitionState.STARTED) + + // No animator, so it's manual. Provide a mechanism to callback + updateTransitionId = UUID.randomUUID() + return@startTransition updateTransitionId + } + } + + /** + * Allows manual control of a transition. When calling [startTransition], the consumer must pass + * in a null animator. In return, it will get a unique [UUID] that will be validated to allow + * further updates. + * + * When the transition is over, TransitionState.FINISHED must be passed into the [state] + * parameter. + */ + fun updateTransition( + transitionId: UUID, + @FloatRange(from = 0.0, to = 1.0) value: Float, + state: TransitionState + ) { + if (updateTransitionId != transitionId) { + Log.wtf(TAG, "Attempting to update with old/invalid transitionId: $transitionId") + return + } + + if (currentTransitionInfo == null) { + Log.wtf(TAG, "Attempting to update with null 'currentTransitionInfo'") + return + } + + currentTransitionInfo?.let { info -> + if (state == TransitionState.FINISHED) { + updateTransitionId = null + Log.i(TAG, "Ending transition: $info") + } + + emitTransition(info, value, state) + } + } + + private fun emitTransition( + info: TransitionInfo, + value: Float, + transitionState: TransitionState + ) { + if (transitionState == TransitionState.FINISHED) { + currentTransitionInfo = null + } + _transitions.value = TransitionStep(info.from, info.to, value, transitionState) + } + + companion object { + private const val TAG = "KeyguardTransitionRepository" + } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AodLockscreenTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AodLockscreenTransitionInteractor.kt new file mode 100644 index 000000000000..400376663f1a --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/AodLockscreenTransitionInteractor.kt @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.systemui.keyguard.domain.interactor + +import android.animation.ValueAnimator +import com.android.systemui.animation.Interpolators +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.keyguard.data.repository.KeyguardRepository +import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository +import com.android.systemui.keyguard.shared.model.KeyguardState +import com.android.systemui.keyguard.shared.model.TransitionInfo +import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.launch + +@SysUISingleton +class AodLockscreenTransitionInteractor +@Inject +constructor( + @Application private val scope: CoroutineScope, + private val keyguardRepository: KeyguardRepository, + private val keyguardTransitionRepository: KeyguardTransitionRepository, +) : TransitionInteractor("AOD<->LOCKSCREEN") { + + override fun start() { + scope.launch { + keyguardRepository.isDozing.collect { isDozing -> + if (isDozing) { + keyguardTransitionRepository.startTransition( + TransitionInfo( + name, + KeyguardState.LOCKSCREEN, + KeyguardState.AOD, + getAnimator(), + ) + ) + } else { + keyguardTransitionRepository.startTransition( + TransitionInfo( + name, + KeyguardState.AOD, + KeyguardState.LOCKSCREEN, + getAnimator(), + ) + ) + } + } + } + } + + private fun getAnimator(): ValueAnimator { + return ValueAnimator().apply { + setInterpolator(Interpolators.LINEAR) + setDuration(TRANSITION_DURATION_MS) + } + } + + companion object { + private const val TRANSITION_DURATION_MS = 500L + } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt index 192919e32cf6..fc2269c6b01c 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt @@ -38,7 +38,7 @@ constructor( val dozeAmount: Flow<Float> = repository.dozeAmount /** Whether the system is in doze mode. */ val isDozing: Flow<Boolean> = repository.isDozing - /** Whether the keyguard is showing ot not. */ + /** Whether the keyguard is showing to not. */ val isKeyguardShowing: Flow<Boolean> = repository.isKeyguardShowing fun isKeyguardShowing(): Boolean { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionCoreStartable.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionCoreStartable.kt new file mode 100644 index 000000000000..b166681433a8 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionCoreStartable.kt @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.keyguard.domain.interactor + +import android.util.Log +import com.android.systemui.CoreStartable +import com.android.systemui.dagger.SysUISingleton +import java.util.Set +import javax.inject.Inject + +@SysUISingleton +class KeyguardTransitionCoreStartable +@Inject +constructor( + private val interactors: Set<TransitionInteractor>, +) : CoreStartable { + + override fun start() { + // By listing the interactors in a when, the compiler will help enforce all classes + // extending the sealed class [TransitionInteractor] will be initialized. + interactors.forEach { + // `when` needs to be an expression in order for the compiler to enforce it being + // exhaustive + val ret = + when (it) { + is LockscreenBouncerTransitionInteractor -> Log.d(TAG, "Started $it") + is AodLockscreenTransitionInteractor -> Log.d(TAG, "Started $it") + } + it.start() + } + } + + companion object { + private const val TAG = "KeyguardTransitionCoreStartable" + } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt new file mode 100644 index 000000000000..59bb22786917 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.android.systemui.keyguard.domain.interactor + +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository +import com.android.systemui.keyguard.shared.model.KeyguardState.AOD +import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN +import com.android.systemui.keyguard.shared.model.TransitionStep +import javax.inject.Inject +import kotlinx.coroutines.flow.Flow + +/** Encapsulates business-logic related to the keyguard transitions. */ +@SysUISingleton +class KeyguardTransitionInteractor +@Inject +constructor( + repository: KeyguardTransitionRepository, +) { + /** AOD->LOCKSCREEN transition information. */ + val aodToLockscreenTransition: Flow<TransitionStep> = repository.transition(AOD, LOCKSCREEN) +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/LockscreenBouncerTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/LockscreenBouncerTransitionInteractor.kt new file mode 100644 index 000000000000..3c2a12e3836a --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/LockscreenBouncerTransitionInteractor.kt @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.systemui.keyguard.domain.interactor + +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.keyguard.data.repository.KeyguardRepository +import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository +import com.android.systemui.keyguard.shared.model.KeyguardState +import com.android.systemui.keyguard.shared.model.StatusBarState.SHADE_LOCKED +import com.android.systemui.keyguard.shared.model.TransitionInfo +import com.android.systemui.keyguard.shared.model.TransitionState +import com.android.systemui.shade.data.repository.ShadeRepository +import com.android.systemui.util.kotlin.sample +import java.util.UUID +import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.launch + +@SysUISingleton +class LockscreenBouncerTransitionInteractor +@Inject +constructor( + @Application private val scope: CoroutineScope, + private val keyguardRepository: KeyguardRepository, + private val shadeRepository: ShadeRepository, + private val keyguardTransitionRepository: KeyguardTransitionRepository, +) : TransitionInteractor("LOCKSCREEN<->BOUNCER") { + + private var transitionId: UUID? = null + + override fun start() { + scope.launch { + shadeRepository.shadeModel.sample( + combine( + keyguardTransitionRepository.transitions, + keyguardRepository.statusBarState, + ) { transitions, statusBarState -> + Pair(transitions, statusBarState) + } + ) { shadeModel, pair -> + val (transitions, statusBarState) = pair + + val id = transitionId + if (id != null) { + // An existing `id` means a transition is started, and calls to + // `updateTransition` will control it until FINISHED + keyguardTransitionRepository.updateTransition( + id, + shadeModel.expansionAmount, + if (shadeModel.expansionAmount == 0f || shadeModel.expansionAmount == 1f) { + transitionId = null + TransitionState.FINISHED + } else { + TransitionState.RUNNING + } + ) + } else { + // TODO (b/251849525): Remove statusbarstate check when that state is integrated + // into KeyguardTransitionRepository + val isOnLockscreen = + transitions.transitionState == TransitionState.FINISHED && + transitions.to == KeyguardState.LOCKSCREEN + if ( + isOnLockscreen && + shadeModel.isUserDragging && + statusBarState != SHADE_LOCKED + ) { + transitionId = + keyguardTransitionRepository.startTransition( + TransitionInfo( + ownerName = name, + from = KeyguardState.LOCKSCREEN, + to = KeyguardState.BOUNCER, + animator = null, + ) + ) + } + } + } + } + } +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/StartKeyguardTransitionModule.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/StartKeyguardTransitionModule.kt new file mode 100644 index 000000000000..74c542c0043f --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/StartKeyguardTransitionModule.kt @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.keyguard.domain.interactor + +import com.android.systemui.CoreStartable +import dagger.Binds +import dagger.Module +import dagger.multibindings.ClassKey +import dagger.multibindings.IntoMap +import dagger.multibindings.IntoSet + +@Module +abstract class StartKeyguardTransitionModule { + + @Binds + @IntoMap + @ClassKey(KeyguardTransitionCoreStartable::class) + abstract fun bind(impl: KeyguardTransitionCoreStartable): CoreStartable + + @Binds + @IntoSet + abstract fun lockscreenBouncer( + impl: LockscreenBouncerTransitionInteractor + ): TransitionInteractor + + @Binds + @IntoSet + abstract fun aodLockscreen(impl: AodLockscreenTransitionInteractor): TransitionInteractor +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/TransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/TransitionInteractor.kt new file mode 100644 index 000000000000..a2a46d9e3a71 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/TransitionInteractor.kt @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.systemui.keyguard.domain.interactor +/** + * Each TransitionInteractor is responsible for determining under which conditions to notify + * [KeyguardTransitionRepository] to signal a transition. When (and if) the transition occurs is + * determined by [KeyguardTransitionRepository]. + * + * [name] field should be a unique identifiable string representing this state, used primarily for + * logging + * + * MUST list implementing classes in dagger module [StartKeyguardTransitionModule] and also in the + * 'when' clause of [KeyguardTransitionCoreStartable] + */ +sealed class TransitionInteractor(val name: String) { + + abstract fun start() +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt new file mode 100644 index 000000000000..f66d5d3650c8 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.keyguard.shared.model + +/** List of all possible states to transition to/from */ +enum class KeyguardState { + /** For initialization only */ + NONE, + /* Always-on Display. The device is in a low-power mode with a minimal UI visible */ + AOD, + /* + * The security screen prompt UI, containing PIN, Password, Pattern, and all FPS + * (Fingerprint Sensor) variations, for the user to verify their credentials + */ + BOUNCER, + /* + * Device is actively displaying keyguard UI and is not in low-power mode. Device may be + * unlocked if SWIPE security method is used, or if face lockscreen bypass is false. + */ + LOCKSCREEN, +} diff --git a/core/java/com/android/internal/util/function/pooled/PooledConsumer.java b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/StatusBarState.kt index f66586ee6791..bb953477583d 100644 --- a/core/java/com/android/internal/util/function/pooled/PooledConsumer.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/StatusBarState.kt @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 The Android Open Source Project + * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -11,21 +11,13 @@ * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and - * limitations under the License. + * limitations under the License */ +package com.android.systemui.keyguard.shared.model -package com.android.internal.util.function.pooled; - -import java.util.function.Consumer; - -/** - * {@link Consumer} + {@link PooledLambda} - * - * @see PooledLambda - * @hide - */ -public interface PooledConsumer<T> extends PooledLambda, Consumer<T> { - - /** @inheritDoc */ - PooledConsumer<T> recycleOnUse(); +/** See [com.android.systemui.statusbar.StatusBarState] for definitions */ +enum class StatusBarState { + SHADE, + KEYGUARD, + SHADE_LOCKED, } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionInfo.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionInfo.kt new file mode 100644 index 000000000000..bfccf3fe076c --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionInfo.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.keyguard.shared.model + +import android.animation.ValueAnimator + +/** Tracks who is controlling the current transition, and how to run it. */ +data class TransitionInfo( + val ownerName: String, + val from: KeyguardState, + val to: KeyguardState, + val animator: ValueAnimator?, // 'null' animator signal manual control +) { + override fun toString(): String = + "TransitionInfo(ownerName=$ownerName, from=$from, to=$to, " + + (if (animator != null) { + "animated" + } else { + "manual" + }) + + ")" +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionState.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionState.kt new file mode 100644 index 000000000000..d8691c17f53d --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionState.kt @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.keyguard.shared.model + +/** Possible states for a running transition between [State] */ +enum class TransitionState { + NONE, + STARTED, + RUNNING, + FINISHED +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionStep.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionStep.kt new file mode 100644 index 000000000000..688ec912aac8 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/TransitionStep.kt @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.keyguard.shared.model + +/** This information will flow from the [KeyguardTransitionRepository] to control the UI layer */ +data class TransitionStep( + val from: KeyguardState = KeyguardState.NONE, + val to: KeyguardState = KeyguardState.NONE, + val value: Float = 0f, // constrained [0.0, 1.0] + val transitionState: TransitionState = TransitionState.NONE, +) diff --git a/packages/SystemUI/src/com/android/systemui/log/LogBufferFactory.kt b/packages/SystemUI/src/com/android/systemui/log/LogBufferFactory.kt index 5651399cb891..f9e341c8629a 100644 --- a/packages/SystemUI/src/com/android/systemui/log/LogBufferFactory.kt +++ b/packages/SystemUI/src/com/android/systemui/log/LogBufferFactory.kt @@ -19,6 +19,9 @@ package com.android.systemui.log import android.app.ActivityManager import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogcatEchoTracker + import javax.inject.Inject @SysUISingleton @@ -26,7 +29,7 @@ class LogBufferFactory @Inject constructor( private val dumpManager: DumpManager, private val logcatEchoTracker: LogcatEchoTracker ) { - /* limit the size of maxPoolSize for low ram (Go) devices */ + /* limitiometricMessageDeferralLogger the size of maxPoolSize for low ram (Go) devices */ private fun adjustMaxSize(requestedMaxSize: Int): Int { return if (ActivityManager.isLowRamDeviceStatic()) { minOf(requestedMaxSize, 20) /* low ram max log size*/ diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/BiometricMessagesLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/BiometricMessagesLog.java index 7f1ad6d20c16..eeadf406060d 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/BiometricMessagesLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/BiometricMessagesLog.java @@ -23,7 +23,7 @@ import java.lang.annotation.RetentionPolicy; import javax.inject.Qualifier; /** - * A {@link com.android.systemui.log.LogBuffer} for BiometricMessages processing such as + * A {@link com.android.systemui.plugins.log.LogBuffer} for BiometricMessages processing such as * {@link com.android.systemui.biometrics.FaceHelpMessageDeferral} */ @Qualifier diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/BroadcastDispatcherLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/BroadcastDispatcherLog.java index 7d1f1c2709fa..5cca1ab2abe7 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/BroadcastDispatcherLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/BroadcastDispatcherLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/CollapsedSbFragmentLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/CollapsedSbFragmentLog.java index 9ca0293fbd86..1d016d837b02 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/CollapsedSbFragmentLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/CollapsedSbFragmentLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/DozeLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/DozeLog.java index 7c5f4025117f..c9f78bcdeef8 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/DozeLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/DozeLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/LSShadeTransitionLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/LSShadeTransitionLog.java index 08d969b5eb77..76d20bea4bdf 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/LSShadeTransitionLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LSShadeTransitionLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; 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 28aa19e18e80..00bf2104b7f2 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java @@ -22,11 +22,11 @@ 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.plugins.log.LogBuffer; +import com.android.systemui.plugins.log.LogcatEchoTracker; +import com.android.systemui.plugins.log.LogcatEchoTrackerDebug; +import com.android.systemui.plugins.log.LogcatEchoTrackerProd; import com.android.systemui.statusbar.notification.NotifPipelineFlags; import com.android.systemui.util.Compile; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaBrowserLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaBrowserLog.java index 1d7ba94af4ed..90ced0291805 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaBrowserLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaBrowserLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaCarouselControllerLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaCarouselControllerLog.java index b03655a543f7..e5ac3e2e893b 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaCarouselControllerLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaCarouselControllerLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaMuteAwaitLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaMuteAwaitLog.java index c67d8bebe313..73690ab6c24d 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaMuteAwaitLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaMuteAwaitLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTimeoutListenerLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTimeoutListenerLog.java index 53963fc8d431..99ec05bc8d94 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTimeoutListenerLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTimeoutListenerLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttReceiverLogBuffer.java b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttReceiverLogBuffer.java index 5c572e8ef554..1570d434bc62 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttReceiverLogBuffer.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttReceiverLogBuffer.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttSenderLogBuffer.java b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttSenderLogBuffer.java index edab8c319f87..bf216c6991d2 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttSenderLogBuffer.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaTttSenderLogBuffer.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaViewLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaViewLog.java index 75a34fc22c3c..8c904eab409e 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/MediaViewLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/MediaViewLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/NearbyMediaDevicesLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/NearbyMediaDevicesLog.java index b1c6dcfcb13b..6d91f0c97c8a 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/NearbyMediaDevicesLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/NearbyMediaDevicesLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/NotifInteractionLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/NotifInteractionLog.java index 20fc6ff445a6..26af4964f7b8 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/NotifInteractionLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/NotifInteractionLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationHeadsUpLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationHeadsUpLog.java index fcc184a317b8..61daf9c8d71c 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationHeadsUpLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationHeadsUpLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationInterruptLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationInterruptLog.java index 760fbf3928b6..a59afa0fed1b 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationInterruptLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationInterruptLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationLog.java index a0b686487bec..6f8ea7ff2e9b 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationRenderLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationRenderLog.java index 8c8753a07339..835d3490293c 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationRenderLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationRenderLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationSectionLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationSectionLog.java index 7259eebf19b6..6e2bd7b2e1b5 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationSectionLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/NotificationSectionLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/PrivacyLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/PrivacyLog.java index e96e532f94bf..77b1bf5fd630 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/PrivacyLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/PrivacyLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/QSFragmentDisableLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/QSFragmentDisableLog.java index 557a254e5c09..9fd166b759d2 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/QSFragmentDisableLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/QSFragmentDisableLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/QSLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/QSLog.java index dd5010cf39a8..dd168bac5654 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/QSLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/QSLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/ShadeLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/ShadeLog.java index bd0d298ebdee..d24bfcb88188 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/ShadeLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/ShadeLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarConnectivityLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarConnectivityLog.java index b237f2d74483..67cdb722055b 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarConnectivityLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarConnectivityLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarNetworkControllerLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarNetworkControllerLog.java index f26b3164f488..af0f7c518e64 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarNetworkControllerLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/StatusBarNetworkControllerLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/SwipeStatusBarAwayLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/SwipeStatusBarAwayLog.java index dd6837563a74..4c276e2bfaab 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/SwipeStatusBarAwayLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/SwipeStatusBarAwayLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/ToastLog.java b/packages/SystemUI/src/com/android/systemui/log/dagger/ToastLog.java index 8671dbfdf1fe..ba8b27c23ec1 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/ToastLog.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/ToastLog.java @@ -18,7 +18,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt index 80bff83d03a0..5977ed06b0f1 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt @@ -133,7 +133,7 @@ class MediaCarouselController @Inject constructor( private val visualStabilityCallback: OnReorderingAllowedListener private var needsReordering: Boolean = false private var keysNeedRemoval = mutableSetOf<String>() - var shouldScrollToActivePlayer: Boolean = false + var shouldScrollToKey: Boolean = false private var isRtl: Boolean = false set(value) { if (value != field) { @@ -436,7 +436,10 @@ class MediaCarouselController @Inject constructor( return mediaCarousel } - private fun reorderAllPlayers(previousVisiblePlayerKey: MediaPlayerData.MediaSortKey?) { + private fun reorderAllPlayers( + previousVisiblePlayerKey: MediaPlayerData.MediaSortKey?, + key: String? = null + ) { mediaContent.removeAllViews() for (mediaPlayer in MediaPlayerData.players()) { mediaPlayer.mediaViewHolder?.let { @@ -446,18 +449,18 @@ class MediaCarouselController @Inject constructor( } } mediaCarouselScrollHandler.onPlayersChanged() - + MediaPlayerData.updateVisibleMediaPlayers() // Automatically scroll to the active player if needed - if (shouldScrollToActivePlayer) { - shouldScrollToActivePlayer = false - val activeMediaIndex = MediaPlayerData.firstActiveMediaIndex() - if (activeMediaIndex != -1) { + if (shouldScrollToKey) { + shouldScrollToKey = false + val mediaIndex = key?.let { MediaPlayerData.getMediaPlayerIndex(it) } ?: -1 + if (mediaIndex != -1) { previousVisiblePlayerKey?.let { val previousVisibleIndex = MediaPlayerData.playerKeys() .indexOfFirst { key -> it == key } mediaCarouselScrollHandler - .scrollToPlayer(previousVisibleIndex, activeMediaIndex) - } ?: mediaCarouselScrollHandler.scrollToPlayer(destIndex = activeMediaIndex) + .scrollToPlayer(previousVisibleIndex, mediaIndex) + } ?: mediaCarouselScrollHandler.scrollToPlayer(destIndex = mediaIndex) } } } @@ -471,9 +474,8 @@ class MediaCarouselController @Inject constructor( ): Boolean = traceSection("MediaCarouselController#addOrUpdatePlayer") { MediaPlayerData.moveIfExists(oldKey, key) val existingPlayer = MediaPlayerData.getMediaPlayer(key) - val curVisibleMediaKey = MediaPlayerData.playerKeys() + val curVisibleMediaKey = MediaPlayerData.visiblePlayerKeys() .elementAtOrNull(mediaCarouselScrollHandler.visibleMediaIndex) - val isCurVisibleMediaPlaying = curVisibleMediaKey?.data?.isPlaying if (existingPlayer == null) { val newPlayer = mediaControlPanelFactory.get() newPlayer.attachPlayer(MediaViewHolder.create( @@ -488,8 +490,10 @@ class MediaCarouselController @Inject constructor( key, data, newPlayer, systemClock, isSsReactivated, debugLogger ) updatePlayerToState(newPlayer, noAnimation = true) - if (data.active) { - reorderAllPlayers(curVisibleMediaKey) + // Media data added from a recommendation card should starts playing. + if ((shouldScrollToKey && data.isPlaying == true) || + (!shouldScrollToKey && data.active)) { + reorderAllPlayers(curVisibleMediaKey, key) } else { needsReordering = true } @@ -498,14 +502,16 @@ class MediaCarouselController @Inject constructor( MediaPlayerData.addMediaPlayer( key, data, existingPlayer, systemClock, isSsReactivated, debugLogger ) - // Check the playing status of both current visible and new media players - // To make sure we scroll to the active playing media card. + val packageName = MediaPlayerData.smartspaceMediaData?.packageName ?: String() + // In case of recommendations hits. + // Check the playing status of media player and the package name. + // To make sure we scroll to the right app's media player. if (isReorderingAllowed || - shouldScrollToActivePlayer && + shouldScrollToKey && data.isPlaying == true && - isCurVisibleMediaPlaying == false + packageName == data.packageName ) { - reorderAllPlayers(curVisibleMediaKey) + reorderAllPlayers(curVisibleMediaKey, key) } else { needsReordering = true } @@ -534,7 +540,7 @@ class MediaCarouselController @Inject constructor( val existingSmartspaceMediaKey = MediaPlayerData.smartspaceMediaKey() existingSmartspaceMediaKey?.let { - val removedPlayer = MediaPlayerData.removeMediaPlayer(existingSmartspaceMediaKey) + val removedPlayer = MediaPlayerData.removeMediaPlayer(existingSmartspaceMediaKey, true) removedPlayer?.run { debugLogger.logPotentialMemoryLeak(existingSmartspaceMediaKey) } } @@ -546,7 +552,7 @@ class MediaCarouselController @Inject constructor( ViewGroup.LayoutParams.WRAP_CONTENT) newRecs.recommendationViewHolder?.recommendations?.setLayoutParams(lp) newRecs.bindRecommendation(data) - val curVisibleMediaKey = MediaPlayerData.playerKeys() + val curVisibleMediaKey = MediaPlayerData.visiblePlayerKeys() .elementAtOrNull(mediaCarouselScrollHandler.visibleMediaIndex) MediaPlayerData.addMediaRecommendation( key, data, newRecs, shouldPrioritize, systemClock, debugLogger @@ -572,7 +578,10 @@ class MediaCarouselController @Inject constructor( logger.logRecommendationRemoved(it.packageName, it.instanceId) } } - val removed = MediaPlayerData.removeMediaPlayer(key) + val removed = MediaPlayerData.removeMediaPlayer( + key, + dismissMediaData || dismissRecommendation + ) removed?.apply { mediaCarouselScrollHandler.onPrePlayerRemoved(removed) mediaContent.removeView(removed.mediaViewHolder?.player) @@ -835,18 +844,20 @@ class MediaCarouselController @Inject constructor( fun logSmartspaceImpression(qsExpanded: Boolean) { val visibleMediaIndex = mediaCarouselScrollHandler.visibleMediaIndex if (MediaPlayerData.players().size > visibleMediaIndex) { - val mediaControlPanel = MediaPlayerData.players().elementAt(visibleMediaIndex) + val mediaControlPanel = MediaPlayerData.getMediaControlPanel(visibleMediaIndex) val hasActiveMediaOrRecommendationCard = MediaPlayerData.hasActiveMediaOrRecommendationCard() if (!hasActiveMediaOrRecommendationCard && !qsExpanded) { // Skip logging if on LS or QQS, and there is no active media card return } - logSmartspaceCardReported(800, // SMARTSPACE_CARD_SEEN - mediaControlPanel.mSmartspaceId, - mediaControlPanel.mUid, - intArrayOf(mediaControlPanel.surfaceForSmartspaceLogging)) - mediaControlPanel.mIsImpressed = true + mediaControlPanel?.let { + logSmartspaceCardReported(800, // SMARTSPACE_CARD_SEEN + it.mSmartspaceId, + it.mUid, + intArrayOf(it.surfaceForSmartspaceLogging)) + it.mIsImpressed = true + } } } @@ -885,7 +896,7 @@ class MediaCarouselController @Inject constructor( return } - val mediaControlKey = MediaPlayerData.playerKeys().elementAt(rank) + val mediaControlKey = MediaPlayerData.visiblePlayerKeys().elementAt(rank) // Only log media resume card when Smartspace data is available if (!mediaControlKey.isSsMediaRec && !mediaManager.smartspaceMediaData.isActive && @@ -960,7 +971,8 @@ class MediaCarouselController @Inject constructor( pw.apply { println("keysNeedRemoval: $keysNeedRemoval") println("dataKeys: ${MediaPlayerData.dataKeys()}") - println("playerSortKeys: ${MediaPlayerData.playerKeys()}") + println("orderedPlayerSortKeys: ${MediaPlayerData.playerKeys()}") + println("visiblePlayerSortKeys: ${MediaPlayerData.visiblePlayerKeys()}") println("smartspaceMediaData: ${MediaPlayerData.smartspaceMediaData}") println("shouldPrioritizeSs: ${MediaPlayerData.shouldPrioritizeSs}") println("current size: $currentCarouselWidth x $currentCarouselHeight") @@ -1000,6 +1012,7 @@ internal object MediaPlayerData { data class MediaSortKey( val isSsMediaRec: Boolean, // Whether the item represents a Smartspace media recommendation. val data: MediaData, + val key: String, val updateTime: Long = 0, val isSsReactivated: Boolean = false ) @@ -1018,6 +1031,8 @@ internal object MediaPlayerData { private val mediaPlayers = TreeMap<MediaSortKey, MediaControlPanel>(comparator) private val mediaData: MutableMap<String, MediaSortKey> = mutableMapOf() + // A map that tracks order of visible media players before they get reordered. + private val visibleMediaPlayers = LinkedHashMap<String, MediaSortKey>() fun addMediaPlayer( key: String, @@ -1032,9 +1047,10 @@ internal object MediaPlayerData { debugLogger?.logPotentialMemoryLeak(key) } val sortKey = MediaSortKey(isSsMediaRec = false, - data, clock.currentTimeMillis(), isSsReactivated = isSsReactivated) + data, key, clock.currentTimeMillis(), isSsReactivated = isSsReactivated) mediaData.put(key, sortKey) mediaPlayers.put(sortKey, player) + visibleMediaPlayers.put(key, sortKey) } fun addMediaRecommendation( @@ -1050,10 +1066,16 @@ internal object MediaPlayerData { if (removedPlayer != null && removedPlayer != player) { debugLogger?.logPotentialMemoryLeak(key) } - val sortKey = MediaSortKey(isSsMediaRec = true, - EMPTY.copy(isPlaying = false), clock.currentTimeMillis(), isSsReactivated = true) + val sortKey = MediaSortKey( + isSsMediaRec = true, + EMPTY.copy(isPlaying = false), + key, + clock.currentTimeMillis(), + isSsReactivated = true + ) mediaData.put(key, sortKey) mediaPlayers.put(sortKey, player) + visibleMediaPlayers.put(key, sortKey) smartspaceMediaData = data } @@ -1067,12 +1089,18 @@ internal object MediaPlayerData { } mediaData.remove(oldKey)?.let { + // MediaPlayer should not be visible + // no need to set isDismissed flag. val removedPlayer = removeMediaPlayer(newKey) removedPlayer?.run { debugLogger?.logPotentialMemoryLeak(newKey) } mediaData.put(newKey, it) } } + fun getMediaControlPanel(visibleIndex: Int): MediaControlPanel? { + return mediaPlayers.get(visiblePlayerKeys().elementAt(visibleIndex)) + } + fun getMediaPlayer(key: String): MediaControlPanel? { return mediaData.get(key)?.let { mediaPlayers.get(it) } } @@ -1087,10 +1115,17 @@ internal object MediaPlayerData { return -1 } - fun removeMediaPlayer(key: String) = mediaData.remove(key)?.let { + /** + * Removes media player given the key. + * @param isDismissed determines whether the media player is removed from the carousel. + */ + fun removeMediaPlayer(key: String, isDismissed: Boolean = false) = mediaData.remove(key)?.let { if (it.isSsMediaRec) { smartspaceMediaData = null } + if (isDismissed) { + visibleMediaPlayers.remove(key) + } mediaPlayers.remove(it) } @@ -1102,6 +1137,8 @@ internal object MediaPlayerData { fun playerKeys() = mediaPlayers.keys + fun visiblePlayerKeys() = visibleMediaPlayers.values + /** Returns the index of the first non-timeout media. */ fun firstActiveMediaIndex(): Int { mediaPlayers.entries.forEachIndexed { index, e -> @@ -1126,6 +1163,7 @@ internal object MediaPlayerData { fun clear() { mediaData.clear() mediaPlayers.clear() + visibleMediaPlayers.clear() } /* Returns true if there is active media player card or recommendation card */ @@ -1140,4 +1178,16 @@ internal object MediaPlayerData { } fun isSsReactivated(key: String): Boolean = mediaData.get(key)?.isSsReactivated ?: false + + /** + * This method is called when media players are reordered. + * To make sure we have the new version of the order of + * media players visible to user. + */ + fun updateVisibleMediaPlayers() { + visibleMediaPlayers.clear() + playerKeys().forEach { + visibleMediaPlayers.put(it.key, it) + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselControllerLogger.kt b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselControllerLogger.kt index b1018f9544c0..d40624bfc63a 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselControllerLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselControllerLogger.kt @@ -17,9 +17,9 @@ package com.android.systemui.media import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.MediaCarouselControllerLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject /** A debug logger for [MediaCarouselController]. */ diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java index 759795f84963..fba51dda86e0 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java @@ -1441,7 +1441,7 @@ public class MediaControlPanel { } // Automatically scroll to the active player once the media is loaded. - mMediaCarouselController.setShouldScrollToActivePlayer(true); + mMediaCarouselController.setShouldScrollToKey(true); }); } diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaProjectionAppSelectorActivity.kt b/packages/SystemUI/src/com/android/systemui/media/MediaProjectionAppSelectorActivity.kt index 1ac2a078c8a0..be357ee0ff73 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaProjectionAppSelectorActivity.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaProjectionAppSelectorActivity.kt @@ -182,8 +182,7 @@ class MediaProjectionAppSelectorActivity( override fun shouldGetOnlyDefaultActivities() = false - // TODO(b/240924732) flip the flag when the recents selector is ready - override fun shouldShowContentPreview() = false + override fun shouldShowContentPreview() = true override fun createContentPreviewView(parent: ViewGroup): ViewGroup = recentsViewController.createView(parent) diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt b/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt index b52565d57f27..cc06b6c67879 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt @@ -33,7 +33,6 @@ import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dump.DumpManager -import com.android.systemui.people.widget.PeopleSpaceWidgetProvider.EXTRA_USER_HANDLE import com.android.systemui.tuner.TunerService import com.android.systemui.util.Utils import com.android.systemui.util.time.SystemClock diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutLogger.kt b/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutLogger.kt index d9c58c0d0d76..8c9e2d88c694 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutLogger.kt @@ -18,11 +18,10 @@ package com.android.systemui.media import android.media.session.PlaybackState import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.MediaTimeoutListenerLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject - private const val TAG = "MediaTimeout" /** diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaViewLogger.kt b/packages/SystemUI/src/com/android/systemui/media/MediaViewLogger.kt index 73868189b362..51c658cb6c54 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaViewLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaViewLogger.kt @@ -17,9 +17,9 @@ package com.android.systemui.media import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.MediaViewLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject private const val TAG = "MediaView" diff --git a/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowserLogger.kt b/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowserLogger.kt index 41f735486c7e..a9c5c61dddbb 100644 --- a/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowserLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/ResumeMediaBrowserLogger.kt @@ -18,9 +18,9 @@ package com.android.systemui.media import android.content.ComponentName import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.MediaBrowserLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject /** A logger for events in [ResumeMediaBrowser]. */ diff --git a/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java b/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java index a8a84331050d..e15e2d3dcccf 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java +++ b/packages/SystemUI/src/com/android/systemui/media/dagger/MediaModule.java @@ -17,7 +17,6 @@ package com.android.systemui.media.dagger; import com.android.systemui.dagger.SysUISingleton; -import com.android.systemui.log.LogBuffer; import com.android.systemui.log.dagger.MediaTttReceiverLogBuffer; import com.android.systemui.log.dagger.MediaTttSenderLogBuffer; import com.android.systemui.media.MediaDataManager; @@ -33,6 +32,7 @@ import com.android.systemui.media.taptotransfer.MediaTttFlags; import com.android.systemui.media.taptotransfer.common.MediaTttLogger; import com.android.systemui.media.taptotransfer.receiver.MediaTttReceiverLogger; import com.android.systemui.media.taptotransfer.sender.MediaTttSenderLogger; +import com.android.systemui.plugins.log.LogBuffer; import java.util.Optional; diff --git a/packages/SystemUI/src/com/android/systemui/media/muteawait/MediaMuteAwaitLogger.kt b/packages/SystemUI/src/com/android/systemui/media/muteawait/MediaMuteAwaitLogger.kt index 78f4e012da03..5ace3ea8a05b 100644 --- a/packages/SystemUI/src/com/android/systemui/media/muteawait/MediaMuteAwaitLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/muteawait/MediaMuteAwaitLogger.kt @@ -1,9 +1,9 @@ package com.android.systemui.media.muteawait import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.MediaMuteAwaitLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject /** Log messages for [MediaMuteAwaitConnectionManager]. */ diff --git a/packages/SystemUI/src/com/android/systemui/media/nearby/NearbyMediaDevicesLogger.kt b/packages/SystemUI/src/com/android/systemui/media/nearby/NearbyMediaDevicesLogger.kt index 46b2cc141b3c..78408fce5a36 100644 --- a/packages/SystemUI/src/com/android/systemui/media/nearby/NearbyMediaDevicesLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/nearby/NearbyMediaDevicesLogger.kt @@ -1,9 +1,9 @@ package com.android.systemui.media.nearby import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NearbyMediaDevicesLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject /** Log messages for [NearbyMediaDevicesManager]. */ diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttLogger.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttLogger.kt index b565f3c22f24..38c971ed3f7d 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttLogger.kt @@ -16,8 +16,8 @@ package com.android.systemui.media.taptotransfer.common -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.temporarydisplay.TemporaryViewLogger /** diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttUtils.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttUtils.kt index c3de94f28aea..0a6043793ef6 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttUtils.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttUtils.kt @@ -21,6 +21,8 @@ import android.content.pm.PackageManager import android.graphics.drawable.Drawable import com.android.settingslib.Utils import com.android.systemui.R +import com.android.systemui.common.shared.model.ContentDescription +import com.android.systemui.common.shared.model.Icon /** Utility methods for media tap-to-transfer. */ class MediaTttUtils { @@ -31,6 +33,23 @@ class MediaTttUtils { const val WAKE_REASON = "MEDIA_TRANSFER_ACTIVATED" /** + * Returns the information needed to display the icon in [Icon] form. + * + * See [getIconInfoFromPackageName]. + */ + fun getIconFromPackageName( + context: Context, + appPackageName: String?, + logger: MediaTttLogger, + ): Icon { + val iconInfo = getIconInfoFromPackageName(context, appPackageName, logger) + return Icon.Loaded( + iconInfo.drawable, + ContentDescription.Loaded(iconInfo.contentDescription) + ) + } + + /** * Returns the information needed to display the icon. * * The information will either contain app name and icon of the app playing media, or a diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt index c24b0307fcd1..6e596ee1f473 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/ChipStateSender.kt @@ -18,17 +18,12 @@ package com.android.systemui.media.taptotransfer.sender import android.app.StatusBarManager import android.content.Context -import android.media.MediaRoute2Info import android.util.Log -import android.view.View import androidx.annotation.StringRes import com.android.internal.logging.UiEventLogger -import com.android.internal.statusbar.IUndoMediaTransferCallback import com.android.systemui.R -import com.android.systemui.plugins.FalsingManager +import com.android.systemui.common.shared.model.Text import com.android.systemui.temporarydisplay.DEFAULT_TIMEOUT_MILLIS -import com.android.systemui.temporarydisplay.chipbar.ChipSenderInfo -import com.android.systemui.temporarydisplay.chipbar.ChipbarCoordinator /** * A class enumerating all the possible states of the media tap-to-transfer chip on the sender @@ -38,6 +33,7 @@ import com.android.systemui.temporarydisplay.chipbar.ChipbarCoordinator * @property stringResId the res ID of the string that should be displayed in the chip. Null if the * state should not have the chip be displayed. * @property transferStatus the transfer status that the chip state represents. + * @property endItem the item that should be displayed in the end section of the chip. * @property timeout the amount of time this chip should display on the screen before it times out * and disappears. */ @@ -46,6 +42,7 @@ enum class ChipStateSender( val uiEvent: UiEventLogger.UiEventEnum, @StringRes val stringResId: Int?, val transferStatus: TransferStatus, + val endItem: SenderEndItem?, val timeout: Long = DEFAULT_TIMEOUT_MILLIS ) { /** @@ -58,6 +55,7 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_ALMOST_CLOSE_TO_START_CAST, R.string.media_move_closer_to_start_cast, transferStatus = TransferStatus.NOT_STARTED, + endItem = null, ), /** @@ -71,6 +69,7 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_ALMOST_CLOSE_TO_END_CAST, R.string.media_move_closer_to_end_cast, transferStatus = TransferStatus.NOT_STARTED, + endItem = null, ), /** @@ -82,6 +81,7 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_TRIGGERED, R.string.media_transfer_playing_different_device, transferStatus = TransferStatus.IN_PROGRESS, + endItem = SenderEndItem.Loading, timeout = TRANSFER_TRIGGERED_TIMEOUT_MILLIS ), @@ -94,6 +94,7 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_TRIGGERED, R.string.media_transfer_playing_this_device, transferStatus = TransferStatus.IN_PROGRESS, + endItem = SenderEndItem.Loading, timeout = TRANSFER_TRIGGERED_TIMEOUT_MILLIS ), @@ -105,36 +106,13 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_SUCCEEDED, R.string.media_transfer_playing_different_device, transferStatus = TransferStatus.SUCCEEDED, - ) { - override fun undoClickListener( - chipbarCoordinator: ChipbarCoordinator, - routeInfo: MediaRoute2Info, - undoCallback: IUndoMediaTransferCallback?, - uiEventLogger: MediaTttSenderUiEventLogger, - falsingManager: FalsingManager, - ): View.OnClickListener? { - if (undoCallback == null) { - return null - } - return View.OnClickListener { - if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return@OnClickListener - - uiEventLogger.logUndoClicked( - MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_RECEIVER_CLICKED - ) - undoCallback.onUndoTriggered() - // The external service should eventually send us a TransferToThisDeviceTriggered - // state, but that may take too long to go through the binder and the user may be - // confused as to why the UI hasn't changed yet. So, we immediately change the UI - // here. - chipbarCoordinator.displayView( - ChipSenderInfo( - TRANSFER_TO_THIS_DEVICE_TRIGGERED, routeInfo, undoCallback - ) - ) - } - } - }, + endItem = SenderEndItem.UndoButton( + uiEventOnClick = + MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_RECEIVER_CLICKED, + newState = + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_TRIGGERED + ), + ), /** * A state representing that a transfer back to this device has been successfully completed. @@ -144,36 +122,13 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_SUCCEEDED, R.string.media_transfer_playing_this_device, transferStatus = TransferStatus.SUCCEEDED, - ) { - override fun undoClickListener( - chipbarCoordinator: ChipbarCoordinator, - routeInfo: MediaRoute2Info, - undoCallback: IUndoMediaTransferCallback?, - uiEventLogger: MediaTttSenderUiEventLogger, - falsingManager: FalsingManager, - ): View.OnClickListener? { - if (undoCallback == null) { - return null - } - return View.OnClickListener { - if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return@OnClickListener - - uiEventLogger.logUndoClicked( - MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_THIS_DEVICE_CLICKED - ) - undoCallback.onUndoTriggered() - // The external service should eventually send us a TransferToReceiverTriggered - // state, but that may take too long to go through the binder and the user may be - // confused as to why the UI hasn't changed yet. So, we immediately change the UI - // here. - chipbarCoordinator.displayView( - ChipSenderInfo( - TRANSFER_TO_RECEIVER_TRIGGERED, routeInfo, undoCallback - ) - ) - } - } - }, + endItem = SenderEndItem.UndoButton( + uiEventOnClick = + MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_THIS_DEVICE_CLICKED, + newState = + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_TRIGGERED + ), + ), /** A state representing that a transfer to the receiver device has failed. */ TRANSFER_TO_RECEIVER_FAILED( @@ -181,6 +136,7 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_FAILED, R.string.media_transfer_failed, transferStatus = TransferStatus.FAILED, + endItem = SenderEndItem.Error, ), /** A state representing that a transfer back to this device has failed. */ @@ -189,6 +145,7 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_FAILED, R.string.media_transfer_failed, transferStatus = TransferStatus.FAILED, + endItem = SenderEndItem.Error, ), /** A state representing that this device is far away from any receiver device. */ @@ -197,37 +154,27 @@ enum class ChipStateSender( MediaTttSenderUiEvents.MEDIA_TTT_SENDER_FAR_FROM_RECEIVER, stringResId = null, transferStatus = TransferStatus.TOO_FAR, - ); + // We shouldn't be displaying the chipbar anyway + endItem = null, + ) { + override fun getChipTextString(context: Context, otherDeviceName: String): Text { + // TODO(b/245610654): Better way to handle this. + throw IllegalArgumentException("FAR_FROM_RECEIVER should never be displayed, " + + "so its string should never be fetched") + } + }; /** * Returns a fully-formed string with the text that the chip should display. * + * Throws an NPE if [stringResId] is null. + * * @param otherDeviceName the name of the other device involved in the transfer. */ - fun getChipTextString(context: Context, otherDeviceName: String): String? { - if (stringResId == null) { - return null - } - return context.getString(stringResId, otherDeviceName) + open fun getChipTextString(context: Context, otherDeviceName: String): Text { + return Text.Loaded(context.getString(stringResId!!, otherDeviceName)) } - /** - * Returns a click listener for the undo button on the chip. Returns null if this chip state - * doesn't have an undo button. - * - * @param chipbarCoordinator passed as a parameter in case we want to display a new chipbar - * when undo is clicked. - * @param undoCallback if present, the callback that should be called when the user clicks the - * undo button. The undo button will only be shown if this is non-null. - */ - open fun undoClickListener( - chipbarCoordinator: ChipbarCoordinator, - routeInfo: MediaRoute2Info, - undoCallback: IUndoMediaTransferCallback?, - uiEventLogger: MediaTttSenderUiEventLogger, - falsingManager: FalsingManager, - ): View.OnClickListener? = null - companion object { /** * Returns the sender state enum associated with the given [displayState] from @@ -253,6 +200,26 @@ enum class ChipStateSender( } } +/** Represents the item that should be displayed in the end section of the chip. */ +sealed class SenderEndItem { + /** A loading icon should be displayed. */ + object Loading : SenderEndItem() + + /** An error icon should be displayed. */ + object Error : SenderEndItem() + + /** + * An undo button should be displayed. + * + * @property uiEventOnClick the UI event to log when this button is clicked. + * @property newState the state that should immediately be transitioned to. + */ + data class UndoButton( + val uiEventOnClick: UiEventLogger.UiEventEnum, + @StatusBarManager.MediaTransferSenderState val newState: Int, + ) : SenderEndItem() +} + // Give the Transfer*Triggered states a longer timeout since those states represent an active // process and we should keep the user informed about it as long as possible (but don't allow it to // continue indefinitely). diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinator.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinator.kt index 5aaab14c1065..fe2eed9c6079 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinator.kt @@ -20,14 +20,20 @@ import android.app.StatusBarManager import android.content.Context import android.media.MediaRoute2Info import android.util.Log +import android.view.View +import com.android.internal.logging.UiEventLogger import com.android.internal.statusbar.IUndoMediaTransferCallback import com.android.systemui.CoreStartable +import com.android.systemui.R +import com.android.systemui.common.shared.model.Text import com.android.systemui.dagger.SysUISingleton import com.android.systemui.media.taptotransfer.MediaTttFlags import com.android.systemui.media.taptotransfer.common.MediaTttLogger +import com.android.systemui.media.taptotransfer.common.MediaTttUtils import com.android.systemui.statusbar.CommandQueue -import com.android.systemui.temporarydisplay.chipbar.ChipSenderInfo import com.android.systemui.temporarydisplay.chipbar.ChipbarCoordinator +import com.android.systemui.temporarydisplay.chipbar.ChipbarEndItem +import com.android.systemui.temporarydisplay.chipbar.ChipbarInfo import com.android.systemui.temporarydisplay.chipbar.SENDER_TAG import javax.inject.Inject @@ -47,6 +53,8 @@ constructor( private val uiEventLogger: MediaTttSenderUiEventLogger, ) : CoreStartable { + private var displayedState: ChipStateSender? = null + private val commandQueueCallbacks = object : CommandQueue.Callbacks { override fun updateMediaTapToTransferSenderDisplay( @@ -84,9 +92,110 @@ constructor( uiEventLogger.logSenderStateChange(chipState) if (chipState == ChipStateSender.FAR_FROM_RECEIVER) { - chipbarCoordinator.removeView(removalReason = ChipStateSender.FAR_FROM_RECEIVER.name) + // Return early if we're not displaying a chip anyway + val currentDisplayedState = displayedState ?: return + + val removalReason = ChipStateSender.FAR_FROM_RECEIVER.name + if ( + currentDisplayedState.transferStatus == TransferStatus.IN_PROGRESS || + currentDisplayedState.transferStatus == TransferStatus.SUCCEEDED + ) { + // Don't remove the chip if we're in progress or succeeded, since the user should + // still be able to see the status of the transfer. + logger.logRemovalBypass( + removalReason, + bypassReason = "transferStatus=${currentDisplayedState.transferStatus.name}" + ) + return + } + + displayedState = null + chipbarCoordinator.removeView(removalReason) } else { - chipbarCoordinator.displayView(ChipSenderInfo(chipState, routeInfo, undoCallback)) + displayedState = chipState + chipbarCoordinator.displayView( + createChipbarInfo( + chipState, + routeInfo, + undoCallback, + context, + logger, + ) + ) } } + + /** + * Creates an instance of [ChipbarInfo] that can be sent to [ChipbarCoordinator] for display. + */ + private fun createChipbarInfo( + chipStateSender: ChipStateSender, + routeInfo: MediaRoute2Info, + undoCallback: IUndoMediaTransferCallback?, + context: Context, + logger: MediaTttLogger, + ): ChipbarInfo { + val packageName = routeInfo.clientPackageName + val otherDeviceName = routeInfo.name.toString() + + return ChipbarInfo( + // Display the app's icon as the start icon + startIcon = MediaTttUtils.getIconFromPackageName(context, packageName, logger), + text = chipStateSender.getChipTextString(context, otherDeviceName), + endItem = + when (chipStateSender.endItem) { + null -> null + is SenderEndItem.Loading -> ChipbarEndItem.Loading + is SenderEndItem.Error -> ChipbarEndItem.Error + is SenderEndItem.UndoButton -> { + if (undoCallback != null) { + getUndoButton( + undoCallback, + chipStateSender.endItem.uiEventOnClick, + chipStateSender.endItem.newState, + routeInfo, + ) + } else { + null + } + } + } + ) + } + + /** + * Returns an undo button for the chip. + * + * When the button is clicked: [undoCallback] will be triggered, [uiEvent] will be logged, and + * this coordinator will transition to [newState]. + */ + private fun getUndoButton( + undoCallback: IUndoMediaTransferCallback, + uiEvent: UiEventLogger.UiEventEnum, + @StatusBarManager.MediaTransferSenderState newState: Int, + routeInfo: MediaRoute2Info, + ): ChipbarEndItem.Button { + val onClickListener = + View.OnClickListener { + uiEventLogger.logUndoClicked(uiEvent) + undoCallback.onUndoTriggered() + + // The external service should eventually send us a new TransferTriggered state, but + // but that may take too long to go through the binder and the user may be confused + // as to why the UI hasn't changed yet. So, we immediately change the UI here. + updateMediaTapToTransferSenderDisplay( + newState, + routeInfo, + // Since we're force-updating the UI, we don't have any [undoCallback] from the + // external service (and TransferTriggered states don't have undo callbacks + // anyway). + undoCallback = null, + ) + } + + return ChipbarEndItem.Button( + Text.Resource(R.string.media_transfer_undo), + onClickListener, + ) + } } diff --git a/packages/SystemUI/src/com/android/systemui/privacy/logging/PrivacyLogger.kt b/packages/SystemUI/src/com/android/systemui/privacy/logging/PrivacyLogger.kt index 1ea93474f954..03503fd1ff61 100644 --- a/packages/SystemUI/src/com/android/systemui/privacy/logging/PrivacyLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/privacy/logging/PrivacyLogger.kt @@ -17,10 +17,10 @@ package com.android.systemui.privacy.logging import android.permission.PermissionGroupUsage -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogMessage import com.android.systemui.log.dagger.PrivacyLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogMessage import com.android.systemui.privacy.PrivacyDialog import com.android.systemui.privacy.PrivacyItem import java.text.SimpleDateFormat diff --git a/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt b/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt index 482a1397642b..bb2b4419a80a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/FgsManagerController.kt @@ -52,6 +52,7 @@ import com.android.systemui.Dumpable import com.android.systemui.R import com.android.systemui.animation.DialogCuj import com.android.systemui.animation.DialogLaunchAnimator +import com.android.systemui.animation.Expandable import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background @@ -98,10 +99,10 @@ interface FgsManagerController { fun init() /** - * Show the foreground services dialog. The dialog will be expanded from [viewLaunchedFrom] if + * Show the foreground services dialog. The dialog will be expanded from [expandable] if * it's not `null`. */ - fun showDialog(viewLaunchedFrom: View?) + fun showDialog(expandable: Expandable?) /** Add a [OnNumberOfPackagesChangedListener]. */ fun addOnNumberOfPackagesChangedListener(listener: OnNumberOfPackagesChangedListener) @@ -367,7 +368,7 @@ class FgsManagerControllerImpl @Inject constructor( override fun shouldUpdateFooterVisibility() = dialog == null - override fun showDialog(viewLaunchedFrom: View?) { + override fun showDialog(expandable: Expandable?) { synchronized(lock) { if (dialog == null) { @@ -403,16 +404,18 @@ class FgsManagerControllerImpl @Inject constructor( } mainExecutor.execute { - viewLaunchedFrom - ?.let { - dialogLaunchAnimator.showFromView( - dialog, it, - cuj = DialogCuj( - InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, - INTERACTION_JANK_TAG - ) + val controller = + expandable?.dialogLaunchController( + DialogCuj( + InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, + INTERACTION_JANK_TAG, ) - } ?: dialog.show() + ) + if (controller != null) { + dialogLaunchAnimator.show(dialog, controller) + } else { + dialog.show() + } } backgroundExecutor.execute { diff --git a/packages/SystemUI/src/com/android/systemui/qs/FooterActionsController.kt b/packages/SystemUI/src/com/android/systemui/qs/FooterActionsController.kt index 9d64781ef2e9..a9943e886339 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/FooterActionsController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/FooterActionsController.kt @@ -32,6 +32,7 @@ import com.android.internal.logging.nano.MetricsProto import com.android.keyguard.KeyguardUpdateMonitor import com.android.systemui.R import com.android.systemui.animation.ActivityLaunchAnimator +import com.android.systemui.animation.Expandable import com.android.systemui.globalactions.GlobalActionsDialogLite import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.FalsingManager @@ -156,7 +157,7 @@ internal class FooterActionsController @Inject constructor( startSettingsActivity() } else if (v === powerMenuLite) { uiEventLogger.log(GlobalActionsDialogLite.GlobalActionsEvent.GA_OPEN_QS) - globalActionsDialog?.showOrHideDialog(false, true, v) + globalActionsDialog?.showOrHideDialog(false, true, Expandable.fromView(powerMenuLite)) } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFgsManagerFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSFgsManagerFooter.java index 7511278e0919..b1b9dd721eaf 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFgsManagerFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFgsManagerFooter.java @@ -29,6 +29,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import com.android.systemui.R; +import com.android.systemui.animation.Expandable; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.qs.dagger.QSScope; @@ -130,7 +131,7 @@ public class QSFgsManagerFooter implements View.OnClickListener, @Override public void onClick(View view) { - mFgsManagerController.showDialog(mRootView); + mFgsManagerController.showDialog(Expandable.fromView(view)); } public void refreshState() { diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragmentDisableFlagsLogger.kt b/packages/SystemUI/src/com/android/systemui/qs/QSFragmentDisableFlagsLogger.kt index e5d86cc96f25..025fb228b829 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragmentDisableFlagsLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragmentDisableFlagsLogger.kt @@ -1,8 +1,8 @@ package com.android.systemui.qs -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.QSFragmentDisableLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.disableflags.DisableFlagsLogger import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java index 67bf3003deff..6c1e95645550 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java @@ -39,6 +39,7 @@ import androidx.annotation.Nullable; import com.android.internal.util.FrameworkStatsLog; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; +import com.android.systemui.animation.Expandable; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.common.shared.model.Icon; import com.android.systemui.dagger.qualifiers.Background; @@ -169,7 +170,7 @@ public class QSSecurityFooter extends ViewController<View> // TODO(b/242040009): Remove this. public void showDeviceMonitoringDialog() { - mQSSecurityFooterUtils.showDeviceMonitoringDialog(mContext, mView); + mQSSecurityFooterUtils.showDeviceMonitoringDialog(mContext, Expandable.fromView(mView)); } public void refreshState() { diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooterUtils.java b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooterUtils.java index ae6ed2008a77..67bc76998597 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooterUtils.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooterUtils.java @@ -75,6 +75,7 @@ import com.android.internal.jank.InteractionJankMonitor; import com.android.systemui.R; import com.android.systemui.animation.DialogCuj; import com.android.systemui.animation.DialogLaunchAnimator; +import com.android.systemui.animation.Expandable; import com.android.systemui.common.shared.model.ContentDescription; import com.android.systemui.common.shared.model.Icon; import com.android.systemui.dagger.SysUISingleton; @@ -190,8 +191,9 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener { } /** Show the device monitoring dialog. */ - public void showDeviceMonitoringDialog(Context quickSettingsContext, @Nullable View view) { - createDialog(quickSettingsContext, view); + public void showDeviceMonitoringDialog(Context quickSettingsContext, + @Nullable Expandable expandable) { + createDialog(quickSettingsContext, expandable); } /** @@ -440,7 +442,7 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener { } } - private void createDialog(Context quickSettingsContext, @Nullable View view) { + private void createDialog(Context quickSettingsContext, @Nullable Expandable expandable) { mShouldUseSettingsButton.set(false); mBgHandler.post(() -> { String settingsButtonText = getSettingsButton(); @@ -453,9 +455,12 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener { ? settingsButtonText : getNegativeButton(), this); mDialog.setView(dialogView); - if (view != null && view.isAggregatedVisible()) { - mDialogLaunchAnimator.showFromView(mDialog, view, new DialogCuj( - InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, INTERACTION_JANK_TAG)); + DialogLaunchAnimator.Controller controller = + expandable != null ? expandable.dialogLaunchController(new DialogCuj( + InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, INTERACTION_JANK_TAG)) + : null; + if (controller != null) { + mDialogLaunchAnimator.show(mDialog, controller); } else { mDialog.show(); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/external/TileServices.java b/packages/SystemUI/src/com/android/systemui/qs/external/TileServices.java index 4cacbbacec2f..5d03da3cc113 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/external/TileServices.java +++ b/packages/SystemUI/src/com/android/systemui/qs/external/TileServices.java @@ -35,6 +35,7 @@ import androidx.annotation.Nullable; import com.android.internal.statusbar.StatusBarIcon; import com.android.systemui.broadcast.BroadcastDispatcher; +import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.qs.QSTileHost; import com.android.systemui.settings.UserTracker; @@ -53,6 +54,7 @@ import javax.inject.Provider; /** * Runs the day-to-day operations of which tiles should be bound and when. */ +@SysUISingleton public class TileServices extends IQSService.Stub { static final int DEFAULT_MAX_BOUND = 3; static final int REDUCED_MAX_BOUND = 1; diff --git a/packages/SystemUI/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractor.kt b/packages/SystemUI/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractor.kt index cf9b41c25388..9ba3501c3434 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractor.kt @@ -23,13 +23,11 @@ import android.content.Intent import android.content.IntentFilter import android.os.UserHandle import android.provider.Settings -import android.view.View import com.android.internal.jank.InteractionJankMonitor import com.android.internal.logging.MetricsLogger import com.android.internal.logging.UiEventLogger import com.android.internal.logging.nano.MetricsProto import com.android.internal.util.FrameworkStatsLog -import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton @@ -74,37 +72,27 @@ interface FooterActionsInteractor { val deviceMonitoringDialogRequests: Flow<Unit> /** - * Show the device monitoring dialog, expanded from [view]. - * - * Important: [view] must be associated to the same [Context] as the [Quick Settings fragment] - * [com.android.systemui.qs.QSFragment]. - */ - // TODO(b/230830644): Replace view by Expandable interface. - fun showDeviceMonitoringDialog(view: View) - - /** - * Show the device monitoring dialog. + * Show the device monitoring dialog, expanded from [expandable] if it's not null. * * Important: [quickSettingsContext] *must* be the [Context] associated to the [Quick Settings * fragment][com.android.systemui.qs.QSFragment]. */ - // TODO(b/230830644): Replace view by Expandable interface. - fun showDeviceMonitoringDialog(quickSettingsContext: Context) + fun showDeviceMonitoringDialog(quickSettingsContext: Context, expandable: Expandable?) /** Show the foreground services dialog. */ - // TODO(b/230830644): Replace view by Expandable interface. - fun showForegroundServicesDialog(view: View) + fun showForegroundServicesDialog(expandable: Expandable) /** Show the power menu dialog. */ - // TODO(b/230830644): Replace view by Expandable interface. - fun showPowerMenuDialog(globalActionsDialogLite: GlobalActionsDialogLite, view: View) + fun showPowerMenuDialog( + globalActionsDialogLite: GlobalActionsDialogLite, + expandable: Expandable, + ) /** Show the settings. */ fun showSettings(expandable: Expandable) /** Show the user switcher. */ - // TODO(b/230830644): Replace view by Expandable interface. - fun showUserSwitcher(view: View) + fun showUserSwitcher(context: Context, expandable: Expandable) } @SysUISingleton @@ -147,28 +135,32 @@ constructor( null, ) - override fun showDeviceMonitoringDialog(view: View) { - qsSecurityFooterUtils.showDeviceMonitoringDialog(view.context, view) - DevicePolicyEventLogger.createEvent( - FrameworkStatsLog.DEVICE_POLICY_EVENT__EVENT_ID__DO_USER_INFO_CLICKED - ) - .write() - } - - override fun showDeviceMonitoringDialog(quickSettingsContext: Context) { - qsSecurityFooterUtils.showDeviceMonitoringDialog(quickSettingsContext, /* view= */ null) + override fun showDeviceMonitoringDialog( + quickSettingsContext: Context, + expandable: Expandable?, + ) { + qsSecurityFooterUtils.showDeviceMonitoringDialog(quickSettingsContext, expandable) + if (expandable != null) { + DevicePolicyEventLogger.createEvent( + FrameworkStatsLog.DEVICE_POLICY_EVENT__EVENT_ID__DO_USER_INFO_CLICKED + ) + .write() + } } - override fun showForegroundServicesDialog(view: View) { - fgsManagerController.showDialog(view) + override fun showForegroundServicesDialog(expandable: Expandable) { + fgsManagerController.showDialog(expandable) } - override fun showPowerMenuDialog(globalActionsDialogLite: GlobalActionsDialogLite, view: View) { + override fun showPowerMenuDialog( + globalActionsDialogLite: GlobalActionsDialogLite, + expandable: Expandable, + ) { uiEventLogger.log(GlobalActionsDialogLite.GlobalActionsEvent.GA_OPEN_QS) globalActionsDialogLite.showOrHideDialog( /* keyguardShowing= */ false, /* isDeviceProvisioned= */ true, - view, + expandable, ) } @@ -189,21 +181,21 @@ constructor( ) } - override fun showUserSwitcher(view: View) { + override fun showUserSwitcher(context: Context, expandable: Expandable) { if (!featureFlags.isEnabled(Flags.FULL_SCREEN_USER_SWITCHER)) { - userSwitchDialogController.showDialog(view) + userSwitchDialogController.showDialog(context, expandable) return } val intent = - Intent(view.context, UserSwitcherActivity::class.java).apply { + Intent(context, UserSwitcherActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK) } activityStarter.startActivity( intent, true /* dismissShade */, - ActivityLaunchAnimator.Controller.fromView(view, null), + expandable.activityLaunchController(), true /* showOverlockscreenwhenlocked */, UserHandle.SYSTEM, ) diff --git a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/binder/FooterActionsViewBinder.kt b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/binder/FooterActionsViewBinder.kt index dd1ffcc9fa12..3e39c8ee62f1 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/binder/FooterActionsViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/binder/FooterActionsViewBinder.kt @@ -31,6 +31,7 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import com.android.systemui.R +import com.android.systemui.animation.Expandable import com.android.systemui.common.ui.binder.IconViewBinder import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.people.ui.view.PeopleViewBinder.bind @@ -125,7 +126,7 @@ object FooterActionsViewBinder { launch { viewModel.security.collect { security -> if (previousSecurity != security) { - bindSecurity(securityHolder, security) + bindSecurity(view.context, securityHolder, security) previousSecurity = security } } @@ -159,6 +160,7 @@ object FooterActionsViewBinder { } private fun bindSecurity( + quickSettingsContext: Context, securityHolder: TextButtonViewHolder, security: FooterActionsSecurityButtonViewModel?, ) { @@ -171,9 +173,12 @@ object FooterActionsViewBinder { // Make sure that the chevron is visible and that the button is clickable if there is a // listener. val chevron = securityHolder.chevron - if (security.onClick != null) { + val onClick = security.onClick + if (onClick != null) { securityView.isClickable = true - securityView.setOnClickListener(security.onClick) + securityView.setOnClickListener { + onClick(quickSettingsContext, Expandable.fromView(securityView)) + } chevron.isVisible = true } else { securityView.isClickable = false @@ -205,7 +210,9 @@ object FooterActionsViewBinder { foregroundServicesWithNumberView.isVisible = false foregroundServicesWithTextView.isVisible = true - foregroundServicesWithTextView.setOnClickListener(foregroundServices.onClick) + foregroundServicesWithTextView.setOnClickListener { + foregroundServices.onClick(Expandable.fromView(foregroundServicesWithTextView)) + } foregroundServicesWithTextHolder.text.text = foregroundServices.text foregroundServicesWithTextHolder.newDot.isVisible = foregroundServices.hasNewChanges } else { @@ -213,7 +220,9 @@ object FooterActionsViewBinder { foregroundServicesWithTextView.isVisible = false foregroundServicesWithNumberView.visibility = View.VISIBLE - foregroundServicesWithNumberView.setOnClickListener(foregroundServices.onClick) + foregroundServicesWithNumberView.setOnClickListener { + foregroundServices.onClick(Expandable.fromView(foregroundServicesWithTextView)) + } foregroundServicesWithNumberHolder.number.text = foregroundServicesCount.toString() foregroundServicesWithNumberHolder.number.contentDescription = foregroundServices.text foregroundServicesWithNumberHolder.newDot.isVisible = foregroundServices.hasNewChanges @@ -229,7 +238,7 @@ object FooterActionsViewBinder { } buttonView.setBackgroundResource(model.background) - buttonView.setOnClickListener(model.onClick) + buttonView.setOnClickListener { model.onClick(Expandable.fromView(buttonView)) } val icon = model.icon val iconView = button.icon diff --git a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsButtonViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsButtonViewModel.kt index 9b5f683d8dab..8d819dacba67 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsButtonViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsButtonViewModel.kt @@ -17,7 +17,7 @@ package com.android.systemui.qs.footer.ui.viewmodel import android.annotation.DrawableRes -import android.view.View +import com.android.systemui.animation.Expandable import com.android.systemui.common.shared.model.Icon /** @@ -29,7 +29,5 @@ data class FooterActionsButtonViewModel( val icon: Icon, val iconTint: Int?, @DrawableRes val background: Int, - // TODO(b/230830644): Replace View by an Expandable interface that can expand in either dialog - // or activity. - val onClick: (View) -> Unit, + val onClick: (Expandable) -> Unit, ) diff --git a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsForegroundServicesButtonViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsForegroundServicesButtonViewModel.kt index 98b53cb0ed5a..ff8130d3e6ec 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsForegroundServicesButtonViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsForegroundServicesButtonViewModel.kt @@ -16,7 +16,7 @@ package com.android.systemui.qs.footer.ui.viewmodel -import android.view.View +import com.android.systemui.animation.Expandable /** A ViewModel for the foreground services button. */ data class FooterActionsForegroundServicesButtonViewModel( @@ -24,5 +24,5 @@ data class FooterActionsForegroundServicesButtonViewModel( val text: String, val displayText: Boolean, val hasNewChanges: Boolean, - val onClick: (View) -> Unit, + val onClick: (Expandable) -> Unit, ) diff --git a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsSecurityButtonViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsSecurityButtonViewModel.kt index 98ab129fc9de..3450505f9f86 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsSecurityButtonViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsSecurityButtonViewModel.kt @@ -16,12 +16,13 @@ package com.android.systemui.qs.footer.ui.viewmodel -import android.view.View +import android.content.Context +import com.android.systemui.animation.Expandable import com.android.systemui.common.shared.model.Icon /** A ViewModel for the security button. */ data class FooterActionsSecurityButtonViewModel( val icon: Icon, val text: String, - val onClick: ((View) -> Unit)?, + val onClick: ((quickSettingsContext: Context, Expandable) -> Unit)?, ) diff --git a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt index d3c06f60bc90..dee6fadbc9cb 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/footer/ui/viewmodel/FooterActionsViewModel.kt @@ -18,7 +18,6 @@ package com.android.systemui.qs.footer.ui.viewmodel import android.content.Context import android.util.Log -import android.view.View import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner @@ -199,50 +198,51 @@ class FooterActionsViewModel( */ suspend fun observeDeviceMonitoringDialogRequests(quickSettingsContext: Context) { footerActionsInteractor.deviceMonitoringDialogRequests.collect { - footerActionsInteractor.showDeviceMonitoringDialog(quickSettingsContext) + footerActionsInteractor.showDeviceMonitoringDialog( + quickSettingsContext, + expandable = null, + ) } } - private fun onSecurityButtonClicked(view: View) { + private fun onSecurityButtonClicked(quickSettingsContext: Context, expandable: Expandable) { if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return } - footerActionsInteractor.showDeviceMonitoringDialog(view) + footerActionsInteractor.showDeviceMonitoringDialog(quickSettingsContext, expandable) } - private fun onForegroundServiceButtonClicked(view: View) { + private fun onForegroundServiceButtonClicked(expandable: Expandable) { if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return } - footerActionsInteractor.showForegroundServicesDialog(view) + footerActionsInteractor.showForegroundServicesDialog(expandable) } - private fun onUserSwitcherClicked(view: View) { + private fun onUserSwitcherClicked(expandable: Expandable) { if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return } - footerActionsInteractor.showUserSwitcher(view) + footerActionsInteractor.showUserSwitcher(context, expandable) } - // TODO(b/230830644): Replace View by an Expandable interface that can expand in either dialog - // or activity. - private fun onSettingsButtonClicked(view: View) { + private fun onSettingsButtonClicked(expandable: Expandable) { if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return } - footerActionsInteractor.showSettings(Expandable.fromView(view)) + footerActionsInteractor.showSettings(expandable) } - private fun onPowerButtonClicked(view: View) { + private fun onPowerButtonClicked(expandable: Expandable) { if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) { return } - footerActionsInteractor.showPowerMenuDialog(globalActionsDialogLite, view) + footerActionsInteractor.showPowerMenuDialog(globalActionsDialogLite, expandable) } private fun userSwitcherButton( diff --git a/packages/SystemUI/src/com/android/systemui/qs/logging/QSLogger.kt b/packages/SystemUI/src/com/android/systemui/qs/logging/QSLogger.kt index 60380064e098..931dc8df151a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/logging/QSLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/logging/QSLogger.kt @@ -17,12 +17,12 @@ package com.android.systemui.qs.logging import android.service.quicksettings.Tile -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.VERBOSE -import com.android.systemui.log.LogMessage import com.android.systemui.log.dagger.QSLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.VERBOSE +import com.android.systemui.plugins.log.LogMessage import com.android.systemui.plugins.qs.QSTile import com.android.systemui.statusbar.StatusBarState import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java index d2d5063c7ae0..b6b657ec82f6 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/UserDetailView.java @@ -26,6 +26,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.internal.logging.MetricsLogger; @@ -43,6 +44,9 @@ import com.android.systemui.statusbar.policy.BaseUserSwitcherAdapter; import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.user.data.source.UserRecord; +import java.util.List; +import java.util.stream.Collectors; + import javax.inject.Inject; /** @@ -83,6 +87,13 @@ public class UserDetailView extends PseudoGridView { private final FalsingManager mFalsingManager; private @Nullable UserSwitchDialogController.DialogShower mDialogShower; + @NonNull + @Override + protected List<UserRecord> getUsers() { + return super.getUsers().stream().filter( + userRecord -> !userRecord.isManageUsers).collect(Collectors.toList()); + } + @Inject public Adapter(Context context, UserSwitcherController controller, UiEventLogger uiEventLogger, FalsingManager falsingManager) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt b/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt index bdcc6b0b2a57..314252bf310b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/user/UserSwitchDialogController.kt @@ -23,13 +23,13 @@ import android.content.DialogInterface.BUTTON_NEUTRAL import android.content.Intent import android.provider.Settings import android.view.LayoutInflater -import android.view.View import androidx.annotation.VisibleForTesting import com.android.internal.jank.InteractionJankMonitor import com.android.internal.logging.UiEventLogger import com.android.systemui.R import com.android.systemui.animation.DialogCuj import com.android.systemui.animation.DialogLaunchAnimator +import com.android.systemui.animation.Expandable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.FalsingManager @@ -77,10 +77,10 @@ class UserSwitchDialogController @VisibleForTesting constructor( * Show a [UserDialog]. * * Populate the dialog with information from and adapter obtained from - * [userDetailViewAdapterProvider] and show it as launched from [view]. + * [userDetailViewAdapterProvider] and show it as launched from [expandable]. */ - fun showDialog(view: View) { - with(dialogFactory(view.context)) { + fun showDialog(context: Context, expandable: Expandable) { + with(dialogFactory(context)) { setShowForAllUsers(true) setCanceledOnTouchOutside(true) @@ -112,13 +112,19 @@ class UserSwitchDialogController @VisibleForTesting constructor( adapter.linkToViewGroup(gridFrame.findViewById(R.id.grid)) - dialogLaunchAnimator.showFromView( - this, view, - cuj = DialogCuj( - InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, - INTERACTION_JANK_TAG + val controller = + expandable.dialogLaunchController( + DialogCuj(InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, INTERACTION_JANK_TAG) ) - ) + if (controller != null) { + dialogLaunchAnimator.show( + this, + controller, + ) + } else { + show() + } + uiEventLogger.log(QSUserSwitcherEvent.QS_USER_DETAIL_OPEN) adapter.injectDialogShower(DialogShowerImpl(this, dialogLaunchAnimator)) } diff --git a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt index a494f42985ac..6b540aa9f392 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/LargeScreenShadeHeaderController.kt @@ -292,6 +292,7 @@ class LargeScreenShadeHeaderController @Inject constructor( clock.addOnLayoutChangeListener { v, _, _, _, _, _, _, _, _ -> val newPivot = if (v.isLayoutRtl) v.width.toFloat() else 0f v.pivotX = newPivot + v.pivotY = v.height.toFloat() / 2 } } diff --git a/packages/SystemUI/src/com/android/systemui/shade/NPVCDownEventState.kt b/packages/SystemUI/src/com/android/systemui/shade/NPVCDownEventState.kt index 07e8b9fe3123..754036d3baa9 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NPVCDownEventState.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/NPVCDownEventState.kt @@ -16,7 +16,7 @@ package com.android.systemui.shade import android.view.MotionEvent import com.android.systemui.dump.DumpsysTableLogger import com.android.systemui.dump.Row -import com.android.systemui.util.collection.RingBuffer +import com.android.systemui.plugins.util.RingBuffer import java.text.SimpleDateFormat import java.util.Locale diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index a49b7f03acc6..fc93751b7f91 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -79,7 +79,10 @@ import android.os.UserManager; import android.os.VibrationEffect; import android.provider.Settings; import android.transition.ChangeBounds; +import android.transition.Transition; import android.transition.TransitionManager; +import android.transition.TransitionSet; +import android.transition.TransitionValues; import android.util.IndentingPrintWriter; import android.util.Log; import android.util.MathUtils; @@ -689,6 +692,7 @@ public final class NotificationPanelViewController { private int mScreenCornerRadius; private boolean mQSAnimatingHiddenFromCollapsed; private boolean mUseLargeScreenShadeHeader; + private boolean mEnableQsClipping; private int mQsClipTop; private int mQsClipBottom; @@ -1298,6 +1302,8 @@ public final class NotificationPanelViewController { mSplitShadeFullTransitionDistance = mResources.getDimensionPixelSize(R.dimen.split_shade_full_transition_distance); + + mEnableQsClipping = mResources.getBoolean(R.bool.qs_enable_clipping); } private void onSplitShadeEnabledChanged() { @@ -1664,9 +1670,40 @@ public final class NotificationPanelViewController { // horizontally properly. transition.excludeTarget(R.id.status_view_media_container, true); } + transition.setInterpolator(Interpolators.FAST_OUT_SLOW_IN); transition.setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD); - TransitionManager.beginDelayedTransition(mNotificationContainerParent, transition); + + boolean customClockAnimation = + mKeyguardStatusViewController.getClockAnimations() != null + && mKeyguardStatusViewController.getClockAnimations() + .getHasCustomPositionUpdatedAnimation(); + + if (mFeatureFlags.isEnabled(Flags.STEP_CLOCK_ANIMATION) && customClockAnimation) { + // Find the clock, so we can exclude it from this transition. + FrameLayout clockContainerView = + mView.findViewById(R.id.lockscreen_clock_view_large); + View clockView = clockContainerView.getChildAt(0); + + transition.excludeTarget(clockView, /* exclude= */ true); + + TransitionSet set = new TransitionSet(); + set.addTransition(transition); + + SplitShadeTransitionAdapter adapter = + new SplitShadeTransitionAdapter(mKeyguardStatusViewController); + + // Use linear here, so the actual clock can pick its own interpolator. + adapter.setInterpolator(Interpolators.LINEAR); + adapter.setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD); + adapter.addTarget(clockView); + set.addTransition(adapter); + + TransitionManager.beginDelayedTransition(mNotificationContainerParent, set); + } else { + TransitionManager.beginDelayedTransition( + mNotificationContainerParent, transition); + } } constraintSet.applyTo(mNotificationContainerParent); @@ -2090,7 +2127,8 @@ public final class NotificationPanelViewController { animator.start(); } - private void onFlingEnd(boolean cancelled) { + @VisibleForTesting + void onFlingEnd(boolean cancelled) { mIsFlinging = false; // No overshoot when the animation ends setOverExpansionInternal(0, false /* isFromGesture */); @@ -2952,8 +2990,10 @@ public final class NotificationPanelViewController { mQsTranslationForFullShadeTransition = qsTranslation; updateQsFrameTranslation(); float currentTranslation = mQsFrame.getTranslationY(); - mQsClipTop = (int) (top - currentTranslation - mQsFrame.getTop()); - mQsClipBottom = (int) (bottom - currentTranslation - mQsFrame.getTop()); + mQsClipTop = mEnableQsClipping + ? (int) (top - currentTranslation - mQsFrame.getTop()) : 0; + mQsClipBottom = mEnableQsClipping + ? (int) (bottom - currentTranslation - mQsFrame.getTop()) : 0; mQsVisible = qsVisible; mQs.setQsVisible(mQsVisible); mQs.setFancyClipping( @@ -3829,12 +3869,14 @@ public final class NotificationPanelViewController { } } - private void setIsClosing(boolean isClosing) { + @VisibleForTesting + void setIsClosing(boolean isClosing) { boolean wasClosing = isClosing(); mClosing = isClosing; if (wasClosing != isClosing) { mPanelEventsEmitter.notifyPanelCollapsingChanged(isClosing); } + mAmbientState.setIsClosing(isClosing); } private void updateDozingVisibilities(boolean animate) { @@ -3864,17 +3906,17 @@ public final class NotificationPanelViewController { switch (mBarState) { case KEYGUARD: if (!mDozingOnDown) { - if (mUpdateMonitor.isFaceEnrolled() - && !mUpdateMonitor.isFaceDetectionRunning() - && !mUpdateMonitor.getUserCanSkipBouncer( - KeyguardUpdateMonitor.getCurrentUser())) { - mUpdateMonitor.requestFaceAuth(true, - FaceAuthApiRequestReason.NOTIFICATION_PANEL_CLICKED); - } else { - mLockscreenGestureLogger.write(MetricsEvent.ACTION_LS_HINT, - 0 /* lengthDp - N/A */, 0 /* velocityDp - N/A */); - mLockscreenGestureLogger - .log(LockscreenUiEvent.LOCKSCREEN_LOCK_SHOW_HINT); + mShadeLog.v("onMiddleClicked on Keyguard, mDozingOnDown: false"); + // Try triggering face auth, this "might" run. Check + // KeyguardUpdateMonitor#shouldListenForFace to see when face auth won't run. + mUpdateMonitor.requestFaceAuth(true, + FaceAuthApiRequestReason.NOTIFICATION_PANEL_CLICKED); + + mLockscreenGestureLogger.write(MetricsEvent.ACTION_LS_HINT, + 0 /* lengthDp - N/A */, 0 /* velocityDp - N/A */); + mLockscreenGestureLogger + .log(LockscreenUiEvent.LOCKSCREEN_LOCK_SHOW_HINT); + if (!mUpdateMonitor.isFaceDetectionRunning()) { startUnlockHintAnimation(); } if (mUpdateMonitor.isFaceEnrolled()) { @@ -4625,14 +4667,16 @@ public final class NotificationPanelViewController { Log.v(TAG, (mViewName != null ? (mViewName + ": ") : "") + String.format(fmt, args)); } - private void notifyExpandingStarted() { + @VisibleForTesting + void notifyExpandingStarted() { if (!mExpanding) { mExpanding = true; onExpandingStarted(); } } - private void notifyExpandingFinished() { + @VisibleForTesting + void notifyExpandingFinished() { endClosing(); if (mExpanding) { mExpanding = false; @@ -6246,4 +6290,54 @@ public final class NotificationPanelViewController { loadDimens(); } } + + static class SplitShadeTransitionAdapter extends Transition { + private static final String PROP_BOUNDS = "splitShadeTransitionAdapter:bounds"; + private static final String[] TRANSITION_PROPERTIES = { PROP_BOUNDS }; + + private final KeyguardStatusViewController mController; + + SplitShadeTransitionAdapter(KeyguardStatusViewController controller) { + mController = controller; + } + + private void captureValues(TransitionValues transitionValues) { + Rect boundsRect = new Rect(); + boundsRect.left = transitionValues.view.getLeft(); + boundsRect.top = transitionValues.view.getTop(); + boundsRect.right = transitionValues.view.getRight(); + boundsRect.bottom = transitionValues.view.getBottom(); + transitionValues.values.put(PROP_BOUNDS, boundsRect); + } + + @Override + public void captureEndValues(TransitionValues transitionValues) { + captureValues(transitionValues); + } + + @Override + public void captureStartValues(TransitionValues transitionValues) { + captureValues(transitionValues); + } + + @Override + public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues, + TransitionValues endValues) { + ValueAnimator anim = ValueAnimator.ofFloat(0, 1); + + Rect from = (Rect) startValues.values.get(PROP_BOUNDS); + Rect to = (Rect) endValues.values.get(PROP_BOUNDS); + + anim.addUpdateListener( + animation -> mController.getClockAnimations().onPositionUpdated( + from, to, animation.getAnimatedFraction())); + + return anim; + } + + @Override + public String[] getTransitionProperties() { + return TRANSITION_PROPERTIES; + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt index 7bee0ba17afc..2b788d85a14c 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ShadeLogger.kt @@ -1,10 +1,10 @@ package com.android.systemui.shade import android.view.MotionEvent -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogMessage import com.android.systemui.log.dagger.ShadeLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogMessage import com.google.errorprone.annotations.CompileTimeConstant import javax.inject.Inject @@ -12,64 +12,69 @@ private const val TAG = "systemui.shade" /** Lightweight logging utility for the Shade. */ class ShadeLogger @Inject constructor(@ShadeLog private val buffer: LogBuffer) { - fun v(@CompileTimeConstant msg: String) { - buffer.log(TAG, LogLevel.VERBOSE, msg) - } + fun v(@CompileTimeConstant msg: String) { + buffer.log(TAG, LogLevel.VERBOSE, msg) + } - private inline fun log( - logLevel: LogLevel, - initializer: LogMessage.() -> Unit, - noinline printer: LogMessage.() -> String - ) { - buffer.log(TAG, logLevel, initializer, printer) - } + private inline fun log( + logLevel: LogLevel, + initializer: LogMessage.() -> Unit, + noinline printer: LogMessage.() -> String + ) { + buffer.log(TAG, logLevel, initializer, printer) + } - fun onQsInterceptMoveQsTrackingEnabled(h: Float) { - log( - LogLevel.VERBOSE, - { double1 = h.toDouble() }, - { "onQsIntercept: move action, QS tracking enabled. h = $double1" }) - } + fun onQsInterceptMoveQsTrackingEnabled(h: Float) { + log( + LogLevel.VERBOSE, + { double1 = h.toDouble() }, + { "onQsIntercept: move action, QS tracking enabled. h = $double1" } + ) + } - fun logQsTrackingNotStarted( - initialTouchY: Float, - y: Float, - h: Float, - touchSlop: Float, - qsExpanded: Boolean, - collapsedOnDown: Boolean, - keyguardShowing: Boolean, - qsExpansionEnabled: Boolean - ) { - log( - LogLevel.VERBOSE, - { - int1 = initialTouchY.toInt() - int2 = y.toInt() - long1 = h.toLong() - double1 = touchSlop.toDouble() - bool1 = qsExpanded - bool2 = collapsedOnDown - bool3 = keyguardShowing - bool4 = qsExpansionEnabled - }, - { - "QsTrackingNotStarted: initTouchY=$int1,y=$int2,h=$long1,slop=$double1,qsExpanded=" + - "$bool1,collapsedDown=$bool2,keyguardShowing=$bool3,qsExpansion=$bool4" - }) - } + fun logQsTrackingNotStarted( + initialTouchY: Float, + y: Float, + h: Float, + touchSlop: Float, + qsExpanded: Boolean, + collapsedOnDown: Boolean, + keyguardShowing: Boolean, + qsExpansionEnabled: Boolean + ) { + log( + LogLevel.VERBOSE, + { + int1 = initialTouchY.toInt() + int2 = y.toInt() + long1 = h.toLong() + double1 = touchSlop.toDouble() + bool1 = qsExpanded + bool2 = collapsedOnDown + bool3 = keyguardShowing + bool4 = qsExpansionEnabled + }, + { + "QsTrackingNotStarted: initTouchY=$int1,y=$int2,h=$long1,slop=$double1,qsExpanded" + + "=$bool1,collapsedDown=$bool2,keyguardShowing=$bool3,qsExpansion=$bool4" + } + ) + } - fun logMotionEvent(event: MotionEvent, message: String) { - log( - LogLevel.VERBOSE, - { - str1 = message - long1 = event.eventTime - long2 = event.downTime - int1 = event.action - int2 = event.classification - double1 = event.y.toDouble() - }, - { "$str1\neventTime=$long1,downTime=$long2,y=$double1,action=$int1,classification=$int2" }) - } + fun logMotionEvent(event: MotionEvent, message: String) { + log( + LogLevel.VERBOSE, + { + str1 = message + long1 = event.eventTime + long2 = event.downTime + int1 = event.action + int2 = event.classification + double1 = event.y.toDouble() + }, + { + "$str1\neventTime=$long1,downTime=$long2,y=$double1,action=$int1,class=$int2" + } + ) + } } diff --git a/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt b/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt new file mode 100644 index 000000000000..09019a69df47 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.shade.data.repository + +import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging +import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.shade.ShadeExpansionChangeEvent +import com.android.systemui.shade.ShadeExpansionListener +import com.android.systemui.shade.ShadeExpansionStateManager +import com.android.systemui.shade.domain.model.ShadeModel +import javax.inject.Inject +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.distinctUntilChanged + +/** Business logic for shade interactions */ +@SysUISingleton +class ShadeRepository @Inject constructor(shadeExpansionStateManager: ShadeExpansionStateManager) { + + val shadeModel: Flow<ShadeModel> = + conflatedCallbackFlow { + val callback = + object : ShadeExpansionListener { + override fun onPanelExpansionChanged(event: ShadeExpansionChangeEvent) { + // Don't propagate ShadeExpansionChangeEvent.dragDownPxAmount field. + // It is too noisy and produces extra events that consumers won't care + // about + val info = + ShadeModel( + expansionAmount = event.fraction, + isExpanded = event.expanded, + isUserDragging = event.tracking + ) + trySendWithFailureLogging(info, TAG, "updated shade expansion info") + } + } + + shadeExpansionStateManager.addExpansionListener(callback) + trySendWithFailureLogging(ShadeModel(), TAG, "initial shade expansion info") + + awaitClose { shadeExpansionStateManager.removeExpansionListener(callback) } + } + .distinctUntilChanged() + + companion object { + private const val TAG = "ShadeRepository" + } +} diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/model/ShadeModel.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/model/ShadeModel.kt new file mode 100644 index 000000000000..ce0f4283ff83 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/shade/domain/model/ShadeModel.kt @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +package com.android.systemui.shade.domain.model + +import android.annotation.FloatRange + +/** Information about shade (NotificationPanel) expansion */ +data class ShadeModel( + /** 0 when collapsed, 1 when fully expanded. */ + @FloatRange(from = 0.0, to = 1.0) val expansionAmount: Float = 0f, + /** Whether the panel should be considered expanded */ + val isExpanded: Boolean = false, + /** Whether the user is actively dragging the panel. */ + val isUserDragging: Boolean = false, +) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt index 7f7ff9cf4881..90c52bd8c9f4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ActionClickLogger.kt @@ -17,9 +17,9 @@ package com.android.systemui.statusbar import android.app.PendingIntent -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotifInteractionLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.notification.collection.NotificationEntry import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java index ea7ec4f7fc39..450b757295bc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java @@ -71,9 +71,9 @@ import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.demomode.DemoMode; import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dump.DumpManager; -import com.android.systemui.log.LogBuffer; -import com.android.systemui.log.LogLevel; import com.android.systemui.log.dagger.StatusBarNetworkControllerLog; +import com.android.systemui.plugins.log.LogBuffer; +import com.android.systemui.plugins.log.LogLevel; import com.android.systemui.qs.tiles.dialog.InternetDialogFactory; import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.statusbar.policy.ConfigurationController; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/gesture/SwipeStatusBarAwayGestureLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/gesture/SwipeStatusBarAwayGestureLogger.kt index 17feaa842165..9bdff928c44b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/gesture/SwipeStatusBarAwayGestureLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/gesture/SwipeStatusBarAwayGestureLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.gesture -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.SwipeStatusBarAwayLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject /** Log messages for [SwipeStatusBarAwayGestureHandler]. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt index dfba8cd4a081..fc984618f1b0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/lockscreen/LockscreenSmartspaceController.kt @@ -119,6 +119,7 @@ class LockscreenSmartspaceController @Inject constructor( regionSamplingEnabled, updateFun ) + initializeTextColors(regionSamplingInstance) regionSamplingInstance.startRegionSampler() regionSamplingInstances.put(v, regionSamplingInstance) connectSession() @@ -362,18 +363,20 @@ class LockscreenSmartspaceController @Inject constructor( } } + private fun initializeTextColors(regionSamplingInstance: RegionSamplingInstance) { + val lightThemeContext = ContextThemeWrapper(context, R.style.Theme_SystemUI_LightWallpaper) + val darkColor = Utils.getColorAttrDefaultColor(lightThemeContext, R.attr.wallpaperTextColor) + + val darkThemeContext = ContextThemeWrapper(context, R.style.Theme_SystemUI) + val lightColor = Utils.getColorAttrDefaultColor(darkThemeContext, R.attr.wallpaperTextColor) + + regionSamplingInstance.setForegroundColors(lightColor, darkColor) + } + private fun updateTextColorFromRegionSampler() { smartspaceViews.forEach { - val isRegionDark = regionSamplingInstances.getValue(it).currentRegionDarkness() - val themeID = if (isRegionDark.isDark) { - R.style.Theme_SystemUI - } else { - R.style.Theme_SystemUI_LightWallpaper - } - val themedContext = ContextThemeWrapper(context, themeID) - val wallpaperTextColor = - Utils.getColorAttrDefaultColor(themedContext, R.attr.wallpaperTextColor) - it.setPrimaryTextColor(wallpaperTextColor) + val textColor = regionSamplingInstances.getValue(it).currentForegroundColor() + it.setPrimaryTextColor(textColor) } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java index 822840dfd86b..0a5e9867a17f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/InstantAppNotifier.java @@ -290,7 +290,7 @@ public class InstantAppNotifier .setComponent(aiaComponent) .setAction(Intent.ACTION_VIEW) .addCategory(Intent.CATEGORY_BROWSABLE) - .addCategory("unique:" + System.currentTimeMillis()) + .setIdentifier("unique:" + System.currentTimeMillis()) .putExtra(Intent.EXTRA_PACKAGE_NAME, appInfo.packageName) .putExtra( Intent.EXTRA_VERSION_CODE, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotifPipelineFlags.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotifPipelineFlags.kt index 7fbdd35796c1..36b8333688ae 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotifPipelineFlags.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotifPipelineFlags.kt @@ -17,30 +17,14 @@ package com.android.systemui.statusbar.notification import android.content.Context -import android.util.Log -import android.widget.Toast import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags -import com.android.systemui.util.Compile import javax.inject.Inject class NotifPipelineFlags @Inject constructor( val context: Context, val featureFlags: FeatureFlags ) { - fun checkLegacyPipelineEnabled(): Boolean { - if (Compile.IS_DEBUG) { - Toast.makeText(context, "Old pipeline code running!", Toast.LENGTH_SHORT).show() - } - if (featureFlags.isEnabled(Flags.NEW_PIPELINE_CRASH_ON_CALL_TO_OLD_PIPELINE)) { - throw RuntimeException("Old pipeline code running with new pipeline enabled") - } else { - Log.d("NotifPipeline", "Old pipeline code running with new pipeline enabled", - Exception()) - } - return false - } - fun isDevLoggingEnabled(): Boolean = featureFlags.isEnabled(Flags.NOTIFICATION_PIPELINE_DEVELOPER_LOGGING) @@ -53,4 +37,12 @@ class NotifPipelineFlags @Inject constructor( fun fullScreenIntentRequiresKeyguard(): Boolean = featureFlags.isEnabled(Flags.FSI_REQUIRES_KEYGUARD) + + val isStabilityIndexFixEnabled: Boolean by lazy { + featureFlags.isEnabled(Flags.STABILITY_INDEX_FIX) + } + + val isSemiStableSortEnabled: Boolean by lazy { + featureFlags.isEnabled(Flags.SEMI_STABLE_SORT) + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt index ad3dfedcdb96..3058fbbc1031 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClickerLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotifInteractionLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.notification.collection.NotificationEntry import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt index f8449ae8807b..84ab0d1190f0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListAttachState.kt @@ -68,6 +68,9 @@ data class ListAttachState private constructor( */ var stableIndex: Int = -1 + /** Access the index of the [section] or -1 if the entry does not have one */ + val sectionIndex: Int get() = section?.index ?: -1 + /** Copies the state of another instance. */ fun clone(other: ListAttachState) { parent = other.parent @@ -95,11 +98,13 @@ data class ListAttachState private constructor( * This can happen if the entry is removed from a group that was broken up or if the entry was * filtered out during any of the filtering steps. */ - fun detach() { + fun detach(includingStableIndex: Boolean) { parent = null section = null promoter = null - // stableIndex = -1 // TODO(b/241229236): Clear this once we fix the stability fragility + if (includingStableIndex) { + stableIndex = -1 + } } companion object { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java index e129ee45817a..3ae2545e4e10 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java @@ -54,6 +54,9 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.OnBefo import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeSortListener; import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeTransformGroupsListener; import com.android.systemui.statusbar.notification.collection.listbuilder.PipelineState; +import com.android.systemui.statusbar.notification.collection.listbuilder.SemiStableSort; +import com.android.systemui.statusbar.notification.collection.listbuilder.SemiStableSort.StableOrder; +import com.android.systemui.statusbar.notification.collection.listbuilder.ShadeListBuilderHelper; import com.android.systemui.statusbar.notification.collection.listbuilder.ShadeListBuilderLogger; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.DefaultNotifStabilityManager; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Invalidator; @@ -96,11 +99,14 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { // used exclusivly by ShadeListBuilder#notifySectionEntriesUpdated // TODO replace temp with collection pool for readability private final ArrayList<ListEntry> mTempSectionMembers = new ArrayList<>(); + private NotifPipelineFlags mFlags; private final boolean mAlwaysLogList; private List<ListEntry> mNotifList = new ArrayList<>(); private List<ListEntry> mNewNotifList = new ArrayList<>(); + private final SemiStableSort mSemiStableSort = new SemiStableSort(); + private final StableOrder<ListEntry> mStableOrder = this::getStableOrderRank; private final PipelineState mPipelineState = new PipelineState(); private final Map<String, GroupEntry> mGroups = new ArrayMap<>(); private Collection<NotificationEntry> mAllEntries = Collections.emptyList(); @@ -141,6 +147,7 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { ) { mSystemClock = systemClock; mLogger = logger; + mFlags = flags; mAlwaysLogList = flags.isDevLoggingEnabled(); mInteractionTracker = interactionTracker; mChoreographer = pipelineChoreographer; @@ -527,7 +534,7 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { List<NotifFilter> filters) { Trace.beginSection("ShadeListBuilder.filterNotifs"); final long now = mSystemClock.uptimeMillis(); - for (ListEntry entry : entries) { + for (ListEntry entry : entries) { if (entry instanceof GroupEntry) { final GroupEntry groupEntry = (GroupEntry) entry; @@ -958,7 +965,8 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { * filtered out during any of the filtering steps. */ private void annulAddition(ListEntry entry) { - entry.getAttachState().detach(); + // NOTE(b/241229236): Don't clear stableIndex until we fix stability fragility + entry.getAttachState().detach(/* includingStableIndex= */ mFlags.isSemiStableSortEnabled()); } private void assignSections() { @@ -978,7 +986,16 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { private void sortListAndGroups() { Trace.beginSection("ShadeListBuilder.sortListAndGroups"); - // Assign sections to top-level elements and sort their children + if (mFlags.isSemiStableSortEnabled()) { + sortWithSemiStableSort(); + } else { + sortWithLegacyStability(); + } + Trace.endSection(); + } + + private void sortWithLegacyStability() { + // Sort all groups and the top level list for (ListEntry entry : mNotifList) { if (entry instanceof GroupEntry) { GroupEntry parent = (GroupEntry) entry; @@ -991,16 +1008,15 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { // Check for suppressed order changes if (!getStabilityManager().isEveryChangeAllowed()) { mForceReorderable = true; - boolean isSorted = isShadeSorted(); + boolean isSorted = isShadeSortedLegacy(); mForceReorderable = false; if (!isSorted) { getStabilityManager().onEntryReorderSuppressed(); } } - Trace.endSection(); } - private boolean isShadeSorted() { + private boolean isShadeSortedLegacy() { if (!isSorted(mNotifList, mTopLevelComparator)) { return false; } @@ -1014,6 +1030,43 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { return true; } + private void sortWithSemiStableSort() { + // Sort each group's children + boolean allSorted = true; + for (ListEntry entry : mNotifList) { + if (entry instanceof GroupEntry) { + GroupEntry parent = (GroupEntry) entry; + allSorted &= sortGroupChildren(parent.getRawChildren()); + } + } + // Sort each section within the top level list + mNotifList.sort(mTopLevelComparator); + if (!getStabilityManager().isEveryChangeAllowed()) { + for (List<ListEntry> subList : getSectionSubLists(mNotifList)) { + allSorted &= mSemiStableSort.stabilizeTo(subList, mStableOrder, mNewNotifList); + } + applyNewNotifList(); + } + assignIndexes(mNotifList); + if (!allSorted) { + // Report suppressed order changes + getStabilityManager().onEntryReorderSuppressed(); + } + } + + private Iterable<List<ListEntry>> getSectionSubLists(List<ListEntry> entries) { + return ShadeListBuilderHelper.INSTANCE.getSectionSubLists(entries); + } + + private boolean sortGroupChildren(List<NotificationEntry> entries) { + if (getStabilityManager().isEveryChangeAllowed()) { + entries.sort(mGroupChildrenComparator); + return true; + } else { + return mSemiStableSort.sort(entries, mStableOrder, mGroupChildrenComparator); + } + } + /** Determine whether the items in the list are sorted according to the comparator */ @VisibleForTesting public static <T> boolean isSorted(List<T> items, Comparator<? super T> comparator) { @@ -1036,27 +1089,41 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { /** * Assign the index of each notification relative to the total order */ - private static void assignIndexes(List<ListEntry> notifList) { + private void assignIndexes(List<ListEntry> notifList) { if (notifList.size() == 0) return; NotifSection currentSection = requireNonNull(notifList.get(0).getSection()); int sectionMemberIndex = 0; for (int i = 0; i < notifList.size(); i++) { - ListEntry entry = notifList.get(i); + final ListEntry entry = notifList.get(i); NotifSection section = requireNonNull(entry.getSection()); if (section.getIndex() != currentSection.getIndex()) { sectionMemberIndex = 0; currentSection = section; } - entry.getAttachState().setStableIndex(sectionMemberIndex); - if (entry instanceof GroupEntry) { - GroupEntry parent = (GroupEntry) entry; - for (int j = 0; j < parent.getChildren().size(); j++) { - entry = parent.getChildren().get(j); - entry.getAttachState().setStableIndex(sectionMemberIndex); - sectionMemberIndex++; + if (mFlags.isStabilityIndexFixEnabled()) { + entry.getAttachState().setStableIndex(sectionMemberIndex++); + if (entry instanceof GroupEntry) { + final GroupEntry parent = (GroupEntry) entry; + final NotificationEntry summary = parent.getSummary(); + if (summary != null) { + summary.getAttachState().setStableIndex(sectionMemberIndex++); + } + for (NotificationEntry child : parent.getChildren()) { + child.getAttachState().setStableIndex(sectionMemberIndex++); + } + } + } else { + // This old implementation uses the same index number for the group as the first + // child, and fails to assign an index to the summary. Remove once tested. + entry.getAttachState().setStableIndex(sectionMemberIndex); + if (entry instanceof GroupEntry) { + final GroupEntry parent = (GroupEntry) entry; + for (NotificationEntry child : parent.getChildren()) { + child.getAttachState().setStableIndex(sectionMemberIndex++); + } } + sectionMemberIndex++; } - sectionMemberIndex++; } } @@ -1196,7 +1263,7 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { o2.getSectionIndex()); if (cmp != 0) return cmp; - cmp = Integer.compare( + cmp = mFlags.isSemiStableSortEnabled() ? 0 : Integer.compare( getStableOrderIndex(o1), getStableOrderIndex(o2)); if (cmp != 0) return cmp; @@ -1225,7 +1292,7 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { private final Comparator<NotificationEntry> mGroupChildrenComparator = (o1, o2) -> { - int cmp = Integer.compare( + int cmp = mFlags.isSemiStableSortEnabled() ? 0 : Integer.compare( getStableOrderIndex(o1), getStableOrderIndex(o2)); if (cmp != 0) return cmp; @@ -1256,9 +1323,25 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { // let the stability manager constrain or allow reordering return -1; } + // NOTE(b/241229236): Can't use cleared section index until we fix stability fragility return entry.getPreviousAttachState().getStableIndex(); } + @Nullable + private Integer getStableOrderRank(ListEntry entry) { + if (getStabilityManager().isEntryReorderingAllowed(entry)) { + // let the stability manager constrain or allow reordering + return null; + } + if (entry.getAttachState().getSectionIndex() + != entry.getPreviousAttachState().getSectionIndex()) { + // stable index is only valid within the same section; otherwise we allow reordering + return null; + } + final int stableIndex = entry.getPreviousAttachState().getStableIndex(); + return stableIndex == -1 ? null : stableIndex; + } + private boolean applyFilters(NotificationEntry entry, long now, List<NotifFilter> filters) { final NotifFilter filter = findRejectingFilter(entry, now, filters); entry.getAttachState().setExcludingFilter(filter); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coalescer/GroupCoalescerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coalescer/GroupCoalescerLogger.kt index 211e37473a70..68d1319699d4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coalescer/GroupCoalescerLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coalescer/GroupCoalescerLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.collection.coalescer -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject class GroupCoalescerLogger @Inject constructor( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinatorLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinatorLogger.kt index e8f352f60da0..2919def16304 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinatorLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/GutsCoordinatorLogger.kt @@ -1,8 +1,8 @@ package com.android.systemui.statusbar.notification.collection.coordinator -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.notification.row.NotificationGuts import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt index 8f3eb4f7e223..8a31ed9271ad 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinator.kt @@ -18,6 +18,8 @@ package com.android.systemui.statusbar.notification.collection.coordinator import android.app.Notification import android.app.Notification.GROUP_ALERT_SUMMARY import android.util.ArrayMap +import android.util.ArraySet +import com.android.internal.annotations.VisibleForTesting import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.statusbar.NotificationRemoteInputManager import com.android.systemui.statusbar.notification.collection.GroupEntry @@ -70,6 +72,7 @@ class HeadsUpCoordinator @Inject constructor( @Main private val mExecutor: DelayableExecutor, ) : Coordinator { private val mEntriesBindingUntil = ArrayMap<String, Long>() + private val mEntriesUpdateTimes = ArrayMap<String, Long>() private var mEndLifetimeExtension: OnEndLifetimeExtensionCallback? = null private lateinit var mNotifPipeline: NotifPipeline private var mNow: Long = -1 @@ -264,6 +267,9 @@ class HeadsUpCoordinator @Inject constructor( } // After this method runs, all posted entries should have been handled (or skipped). mPostedEntries.clear() + + // Also take this opportunity to clean up any stale entry update times + cleanUpEntryUpdateTimes() } /** @@ -378,6 +384,9 @@ class HeadsUpCoordinator @Inject constructor( isAlerting = false, isBinding = false, ) + + // Record the last updated time for this key + setUpdateTime(entry, mSystemClock.currentTimeMillis()) } /** @@ -419,6 +428,9 @@ class HeadsUpCoordinator @Inject constructor( cancelHeadsUpBind(posted.entry) } } + + // Update last updated time for this entry + setUpdateTime(entry, mSystemClock.currentTimeMillis()) } /** @@ -426,6 +438,7 @@ class HeadsUpCoordinator @Inject constructor( */ override fun onEntryRemoved(entry: NotificationEntry, reason: Int) { mPostedEntries.remove(entry.key) + mEntriesUpdateTimes.remove(entry.key) cancelHeadsUpBind(entry) val entryKey = entry.key if (mHeadsUpManager.isAlerting(entryKey)) { @@ -454,7 +467,12 @@ class HeadsUpCoordinator @Inject constructor( // never) in mPostedEntries to need to alert, we need to check every notification // known to the pipeline. for (entry in mNotifPipeline.allNotifs) { - // The only entries we can consider alerting for here are entries that have never + // Only consider entries that are recent enough, since we want to apply a fairly + // strict threshold for when an entry should be updated via only ranking and not an + // app-provided notification update. + if (!isNewEnoughForRankingUpdate(entry)) continue + + // The only entries we consider alerting for here are entries that have never // interrupted and that now say they should heads up; if they've alerted in the // past, we don't want to incorrectly alert a second time if there wasn't an // explicit notification update. @@ -486,6 +504,41 @@ class HeadsUpCoordinator @Inject constructor( (entry.sbn.notification.flags and Notification.FLAG_ONLY_ALERT_ONCE) == 0) } + /** + * Sets the updated time for the given entry to the specified time. + */ + @VisibleForTesting + fun setUpdateTime(entry: NotificationEntry, time: Long) { + mEntriesUpdateTimes[entry.key] = time + } + + /** + * Checks whether the entry is new enough to be updated via ranking update. + * We want to avoid updating an entry too long after it was originally posted/updated when we're + * only reacting to a ranking change, as relevant ranking updates are expected to come in + * fairly soon after the posting of a notification. + */ + private fun isNewEnoughForRankingUpdate(entry: NotificationEntry): Boolean { + // If we don't have an update time for this key, default to "too old" + if (!mEntriesUpdateTimes.containsKey(entry.key)) return false + + val updateTime = mEntriesUpdateTimes[entry.key] ?: return false + return (mSystemClock.currentTimeMillis() - updateTime) <= MAX_RANKING_UPDATE_DELAY_MS + } + + private fun cleanUpEntryUpdateTimes() { + // Because we won't update entries that are older than this amount of time anyway, clean + // up any entries that are too old to notify. + val toRemove = ArraySet<String>() + for ((key, updateTime) in mEntriesUpdateTimes) { + if (updateTime == null || + (mSystemClock.currentTimeMillis() - updateTime) > MAX_RANKING_UPDATE_DELAY_MS) { + toRemove.add(key) + } + } + mEntriesUpdateTimes.removeAll(toRemove) + } + /** When an action is pressed on a notification, end HeadsUp lifetime extension. */ private val mActionPressListener = Consumer<NotificationEntry> { entry -> if (mNotifsExtendingLifetime.contains(entry)) { @@ -597,6 +650,9 @@ class HeadsUpCoordinator @Inject constructor( companion object { private const val TAG = "HeadsUpCoordinator" private const val BIND_TIMEOUT = 1000L + + // This value is set to match MAX_SOUND_DELAY_MS in NotificationRecord. + private const val MAX_RANKING_UPDATE_DELAY_MS: Long = 2000 } data class PostedEntry( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorLogger.kt index 8625cdbc89d5..dfaa291c6bb6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorLogger.kt @@ -1,9 +1,10 @@ package com.android.systemui.statusbar.notification.collection.coordinator import android.util.Log -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel + import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject private const val TAG = "HeadsUpCoordinator" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java index 93146f9b3bf3..6e76691ae1b1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java @@ -407,10 +407,7 @@ public class PreparationCoordinator implements Coordinator { mLogger.logGroupInflationTookTooLong(group); return false; } - // Only delay release if the summary is not inflated. - // TODO(253454977): Once we ensure that all other pipeline filtering and pruning has been - // done by this point, we can revert back to checking for mInflatingNotifs.contains(...) - if (!isInflated(group.getSummary())) { + if (mInflatingNotifs.contains(group.getSummary())) { mLogger.logDelayingGroupRelease(group, group.getSummary()); return true; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt index c4f4ed54e2fa..9558f47af795 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.collection.coordinator -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinatorLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinatorLogger.kt index c687e1bacbc9..d80445491bda 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinatorLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/ShadeEventCoordinatorLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.collection.coordinator -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject private const val TAG = "ShadeEventCoordinator" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/SemiStableSort.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/SemiStableSort.kt new file mode 100644 index 000000000000..9ec8e07e73b3 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/SemiStableSort.kt @@ -0,0 +1,200 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.notification.collection.listbuilder + +import androidx.annotation.VisibleForTesting +import kotlin.math.sign + +class SemiStableSort { + val preallocatedWorkspace by lazy { ArrayList<Any>() } + val preallocatedAdditions by lazy { ArrayList<Any>() } + val preallocatedMapToIndex by lazy { HashMap<Any, Int>() } + val preallocatedMapToIndexComparator: Comparator<Any> by lazy { + Comparator.comparingInt { item -> preallocatedMapToIndex[item] ?: -1 } + } + + /** + * Sort the given [items] such that items which have a [stableOrder] will all be in that order, + * items without a [stableOrder] will be sorted according to the comparator, and the two sets of + * items will be combined to have the fewest elements out of order according to the [comparator] + * . The result will be placed into the original [items] list. + */ + fun <T : Any> sort( + items: MutableList<T>, + stableOrder: StableOrder<in T>, + comparator: Comparator<in T>, + ): Boolean = + withWorkspace<T, Boolean> { workspace -> + val ordered = + sortTo( + items, + stableOrder, + comparator, + workspace, + ) + items.clear() + items.addAll(workspace) + return ordered + } + + /** + * Sort the given [items] such that items which have a [stableOrder] will all be in that order, + * items without a [stableOrder] will be sorted according to the comparator, and the two sets of + * items will be combined to have the fewest elements out of order according to the [comparator] + * . The result will be put into [output]. + */ + fun <T : Any> sortTo( + items: Iterable<T>, + stableOrder: StableOrder<in T>, + comparator: Comparator<in T>, + output: MutableList<T>, + ): Boolean { + if (DEBUG) println("\n> START from ${items.map { it to stableOrder.getRank(it) }}") + // If array already has elements, use subList to ensure we only append + val result = output.takeIf { it.isEmpty() } ?: output.subList(output.size, output.size) + items.filterTo(result) { stableOrder.getRank(it) != null } + result.sortBy { stableOrder.getRank(it)!! } + val isOrdered = result.isSorted(comparator) + withAdditions<T> { additions -> + items.filterTo(additions) { stableOrder.getRank(it) == null } + additions.sortWith(comparator) + insertPreSortedElementsWithFewestMisOrderings(result, additions, comparator) + } + return isOrdered + } + + /** + * Rearrange the [sortedItems] to enforce that items are in the [stableOrder], and store the + * result in [output]. Items with a [stableOrder] will be in that order, items without a + * [stableOrder] will remain in same relative order as the input, and the two sets of items will + * be combined to have the fewest elements moved from their locations in the original. + */ + fun <T : Any> stabilizeTo( + sortedItems: Iterable<T>, + stableOrder: StableOrder<in T>, + output: MutableList<T>, + ): Boolean { + // Append to the output array if present + val result = output.takeIf { it.isEmpty() } ?: output.subList(output.size, output.size) + sortedItems.filterTo(result) { stableOrder.getRank(it) != null } + val stableRankComparator = compareBy<T> { stableOrder.getRank(it)!! } + val isOrdered = result.isSorted(stableRankComparator) + if (!isOrdered) { + result.sortWith(stableRankComparator) + } + if (result.isEmpty()) { + sortedItems.filterTo(result) { stableOrder.getRank(it) == null } + return isOrdered + } + withAdditions<T> { additions -> + sortedItems.filterTo(additions) { stableOrder.getRank(it) == null } + if (additions.isNotEmpty()) { + withIndexOfComparator(sortedItems) { comparator -> + insertPreSortedElementsWithFewestMisOrderings(result, additions, comparator) + } + } + } + return isOrdered + } + + private inline fun <T : Any, R> withWorkspace(block: (ArrayList<T>) -> R): R { + preallocatedWorkspace.clear() + val result = block(preallocatedWorkspace as ArrayList<T>) + preallocatedWorkspace.clear() + return result + } + + private inline fun <T : Any> withAdditions(block: (ArrayList<T>) -> Unit) { + preallocatedAdditions.clear() + block(preallocatedAdditions as ArrayList<T>) + preallocatedAdditions.clear() + } + + private inline fun <T : Any> withIndexOfComparator( + sortedItems: Iterable<T>, + block: (Comparator<in T>) -> Unit + ) { + preallocatedMapToIndex.clear() + sortedItems.forEachIndexed { i, item -> preallocatedMapToIndex[item] = i } + block(preallocatedMapToIndexComparator as Comparator<in T>) + preallocatedMapToIndex.clear() + } + + companion object { + + /** + * This is the core of the algorithm. + * + * Insert [preSortedAdditions] (the elements to be inserted) into [existing] without + * changing the relative order of any elements already in [existing], even though those + * elements may be mis-ordered relative to the [comparator], such that the total number of + * elements which are ordered incorrectly according to the [comparator] is fewest. + */ + private fun <T> insertPreSortedElementsWithFewestMisOrderings( + existing: MutableList<T>, + preSortedAdditions: Iterable<T>, + comparator: Comparator<in T>, + ) { + if (DEBUG) println(" To $existing insert $preSortedAdditions with fewest misordering") + var iStart = 0 + preSortedAdditions.forEach { toAdd -> + if (DEBUG) println(" need to add $toAdd to $existing, starting at $iStart") + var cmpSum = 0 + var cmpSumMax = 0 + var iCmpSumMax = iStart + if (DEBUG) print(" ") + for (i in iCmpSumMax until existing.size) { + val cmp = comparator.compare(toAdd, existing[i]).sign + cmpSum += cmp + if (cmpSum > cmpSumMax) { + cmpSumMax = cmpSum + iCmpSumMax = i + 1 + } + if (DEBUG) print("sum[$i]=$cmpSum, ") + } + if (DEBUG) println("inserting $toAdd at $iCmpSumMax") + existing.add(iCmpSumMax, toAdd) + iStart = iCmpSumMax + 1 + } + } + + /** Determines if a list is correctly sorted according to the given comparator */ + @VisibleForTesting + fun <T> List<T>.isSorted(comparator: Comparator<T>): Boolean { + if (this.size <= 1) { + return true + } + val iterator = this.iterator() + var previous = iterator.next() + var current: T? + while (iterator.hasNext()) { + current = iterator.next() + if (comparator.compare(previous, current) > 0) { + return false + } + previous = current + } + return true + } + } + + fun interface StableOrder<T> { + fun getRank(item: T): Int? + } +} + +val DEBUG = false diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelper.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelper.kt new file mode 100644 index 000000000000..d8f75f61c05a --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelper.kt @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.notification.collection.listbuilder + +import com.android.systemui.statusbar.notification.collection.ListEntry + +object ShadeListBuilderHelper { + fun getSectionSubLists(entries: List<ListEntry>): Iterable<List<ListEntry>> = + getContiguousSubLists(entries, minLength = 1) { it.sectionIndex } + + inline fun <T : Any, K : Any> getContiguousSubLists( + itemList: List<T>, + minLength: Int = 1, + key: (T) -> K, + ): Iterable<List<T>> { + val subLists = mutableListOf<List<T>>() + val numEntries = itemList.size + var currentSectionStartIndex = 0 + var currentSectionKey: K? = null + for (i in 0 until numEntries) { + val sectionKey = key(itemList[i]) + if (currentSectionKey == null) { + currentSectionKey = sectionKey + } else if (currentSectionKey != sectionKey) { + val length = i - currentSectionStartIndex + if (length >= minLength) { + subLists.add(itemList.subList(currentSectionStartIndex, i)) + } + currentSectionStartIndex = i + currentSectionKey = sectionKey + } + } + val length = numEntries - currentSectionStartIndex + if (length >= minLength) { + subLists.add(itemList.subList(currentSectionStartIndex, numEntries)) + } + return subLists + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt index d8dae5d23f42..8e052c7dcc5d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt @@ -16,11 +16,11 @@ package com.android.systemui.statusbar.notification.collection.listbuilder -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.INFO -import com.android.systemui.log.LogLevel.WARNING import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogLevel.WARNING import com.android.systemui.statusbar.notification.NotifPipelineFlags import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.ListEntry diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt index aa27e1e407f0..911a2d0c2b36 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt @@ -20,13 +20,13 @@ import android.os.RemoteException import android.service.notification.NotificationListenerService import android.service.notification.NotificationListenerService.RankingMap import android.service.notification.StatusBarNotification -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.ERROR -import com.android.systemui.log.LogLevel.INFO -import com.android.systemui.log.LogLevel.WARNING -import com.android.systemui.log.LogLevel.WTF import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.ERROR +import com.android.systemui.plugins.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogLevel.WARNING +import com.android.systemui.plugins.log.LogLevel.WTF import com.android.systemui.statusbar.notification.collection.NotifCollection import com.android.systemui.statusbar.notification.collection.NotifCollection.CancellationReason import com.android.systemui.statusbar.notification.collection.NotifCollection.FutureDismissal diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderLogger.kt index 38e3d496a60c..9c71e5c1054c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/NodeSpecBuilderLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.collection.render -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.notification.NotifPipelineFlags import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection import com.android.systemui.util.Compile diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewDifferLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewDifferLogger.kt index 6d1071c283e3..b4b9438cd6be 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewDifferLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/ShadeViewDifferLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.collection.render -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import java.lang.RuntimeException import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt index 5dbec8dcba20..d4f11fc141f0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt @@ -1,8 +1,8 @@ package com.android.systemui.statusbar.notification.interruption -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.INFO import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt index 99d320d1c7ca..073b6b041b81 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt @@ -16,11 +16,11 @@ package com.android.systemui.statusbar.notification.interruption -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.INFO -import com.android.systemui.log.LogLevel.WARNING import com.android.systemui.log.dagger.NotificationInterruptLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogLevel.WARNING import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt index fe03b2ad6a32..10197a38527e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationRoundnessLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.logging -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationRenderLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.INFO import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow import com.android.systemui.statusbar.notification.row.ExpandableView import com.android.systemui.statusbar.notification.stack.NotificationSection diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java index 1b006485c83d..087dc71f6cf2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java @@ -1487,7 +1487,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView l.setAlpha(alpha); } if (mChildrenContainer != null) { - mChildrenContainer.setContentAlpha(alpha); + mChildrenContainer.setAlpha(alpha); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt index ab91926d466a..46fef3f973a7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.row -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.INFO import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt index f9923b2254d7..8a5d29a1ae2d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.notification.row -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.INFO import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject 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 2719dd88b7be..b2628e40e77e 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 @@ -142,6 +142,11 @@ public class AmbientState implements Dumpable { */ private boolean mIsFlingRequiredAfterLockScreenSwipeUp = false; + /** + * Whether the shade is currently closing. + */ + private boolean mIsClosing; + @VisibleForTesting public boolean isFlingRequiredAfterLockScreenSwipeUp() { return mIsFlingRequiredAfterLockScreenSwipeUp; @@ -717,6 +722,20 @@ public class AmbientState implements Dumpable { && mStatusBarKeyguardViewManager.isBouncerInTransit(); } + /** + * @param isClosing Whether the shade is currently closing. + */ + public void setIsClosing(boolean isClosing) { + mIsClosing = isClosing; + } + + /** + * @return Whether the shade is currently closing. + */ + public boolean isClosing() { + return mIsClosing; + } + @Override public void dump(PrintWriter pw, String[] args) { pw.println("mTopPadding=" + mTopPadding); @@ -761,5 +780,6 @@ public class AmbientState implements Dumpable { + mIsFlingRequiredAfterLockScreenSwipeUp); pw.println("mZDistanceBetweenElements=" + mZDistanceBetweenElements); pw.println("mBaseZHeight=" + mBaseZHeight); + pw.println("mIsClosing=" + mIsClosing); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java index 0dda2632db66..7b23a56af836 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainer.java @@ -461,20 +461,6 @@ public class NotificationChildrenContainer extends ViewGroup return mAttachedChildren; } - /** - * Sets the alpha on the content, while leaving the background of the container itself as is. - * - * @param alpha alpha value to apply to the content - */ - public void setContentAlpha(float alpha) { - for (int i = 0; i < mNotificationHeader.getChildCount(); i++) { - mNotificationHeader.getChildAt(i).setAlpha(alpha); - } - for (ExpandableNotificationRow child : getAttachedChildren()) { - child.setContentAlpha(alpha); - } - } - /** To be called any time the rows have been updated */ public void updateExpansionStates() { if (mChildrenExpanded || mUserLocked) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsLogger.kt index cb7dfe87f7fb..b61c55edadcd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsLogger.kt @@ -17,9 +17,9 @@ package com.android.systemui.statusbar.notification.stack import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationSectionLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import javax.inject.Inject private const val TAG = "NotifSections" 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 55c577f1ea39..2272411b4314 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 @@ -255,7 +255,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable private boolean mClearAllInProgress; private FooterClearAllListener mFooterClearAllListener; private boolean mFlingAfterUpEvent; - /** * Was the scroller scrolled to the top when the down motion was observed? */ @@ -4020,8 +4019,9 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable setOwnScrollY(0); } + @VisibleForTesting @ShadeViewRefactor(RefactorComponent.COORDINATOR) - private void setIsExpanded(boolean isExpanded) { + void setIsExpanded(boolean isExpanded) { boolean changed = isExpanded != mIsExpanded; mIsExpanded = isExpanded; mStackScrollAlgorithm.setIsExpanded(isExpanded); @@ -4842,13 +4842,21 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable } } + @VisibleForTesting @ShadeViewRefactor(RefactorComponent.COORDINATOR) - private void setOwnScrollY(int ownScrollY) { + void setOwnScrollY(int ownScrollY) { setOwnScrollY(ownScrollY, false /* animateScrollChangeListener */); } @ShadeViewRefactor(RefactorComponent.COORDINATOR) private void setOwnScrollY(int ownScrollY, boolean animateStackYChangeListener) { + // Avoid Flicking during clear all + // when the shade finishes closing, onExpansionStopped will call + // resetScrollPosition to setOwnScrollY to 0 + if (mAmbientState.isClosing()) { + return; + } + if (ownScrollY != mOwnScrollY) { // We still want to call the normal scrolled changed for accessibility reasons onScrollChanged(mScrollX, ownScrollY, mScrollX, mOwnScrollY); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt index 5f79c0e3913a..4c52db7f8732 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt @@ -1,8 +1,8 @@ package com.android.systemui.statusbar.notification.stack -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.INFO import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_ADD diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt index cb4a0884fea4..f5de678a8536 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt @@ -1,8 +1,8 @@ package com.android.systemui.statusbar.notification.stack -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java index 25fd483efa2d..3d5e37376fa9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java @@ -455,6 +455,9 @@ public interface CentralSurfaces extends Dumpable, ActivityStarter, LifecycleOwn void collapseShade(); + /** Collapse the shade, but conditional on a flag specific to the trigger of a bugreport. */ + void collapseShadeForBugreport(); + int getWakefulnessState(); boolean isScreenFullyOff(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 2c834cf781a6..709a434c08ac 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -868,6 +868,11 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces { mBubblesOptional.get().setExpandListener(mBubbleExpandListener); } + // Do not restart System UI when the bugreport flag changes. + mFeatureFlags.addListener(Flags.LEAVE_SHADE_OPEN_FOR_BUGREPORT, event -> { + event.requestNoRestart(); + }); + mStatusBarSignalPolicy.init(); mKeyguardIndicationController.init(); @@ -3561,6 +3566,13 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces { } } + @Override + public void collapseShadeForBugreport() { + if (!mFeatureFlags.isEnabled(Flags.LEAVE_SHADE_OPEN_FOR_BUGREPORT)) { + collapseShade(); + } + } + @VisibleForTesting final WakefulnessLifecycle.Observer mWakefulnessObserver = new WakefulnessLifecycle.Observer() { @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt index 02b235493715..4839fe6a7bef 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LSShadeTransitionLogger.kt @@ -19,9 +19,9 @@ package com.android.systemui.statusbar.phone import android.util.DisplayMetrics import android.view.View import com.android.internal.logging.nano.MetricsProto.MetricsEvent -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.LSShadeTransitionLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow import com.android.systemui.statusbar.notification.row.ExpandableView import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitchController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitchController.java index 00c3e8fac0b4..5e2a7c8ca540 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitchController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitchController.java @@ -26,6 +26,7 @@ import android.view.ViewGroup; import com.android.systemui.R; import com.android.systemui.animation.ActivityLaunchAnimator; +import com.android.systemui.animation.Expandable; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.plugins.ActivityStarter; @@ -67,7 +68,7 @@ public class MultiUserSwitchController extends ViewController<MultiUserSwitch> { ActivityLaunchAnimator.Controller.fromView(v, null), true /* showOverlockscreenwhenlocked */, UserHandle.SYSTEM); } else { - mUserSwitchDialogController.showDialog(v); + mUserSwitchDialogController.showDialog(v.getContext(), Expandable.fromView(v)); } } }; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index 9f932238007a..84907686835b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -249,6 +249,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private Callback mCallback; private boolean mWallpaperSupportsAmbientMode; private boolean mScreenOn; + private boolean mTransparentScrimBackground; // Scrim blanking callbacks private Runnable mPendingFrameCallback; @@ -341,6 +342,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mScrimBehind.setDefaultFocusHighlightEnabled(false); mNotificationsScrim.setDefaultFocusHighlightEnabled(false); mScrimInFront.setDefaultFocusHighlightEnabled(false); + mTransparentScrimBackground = notificationsScrim.getResources() + .getBoolean(R.bool.notification_scrim_transparent); updateScrims(); mKeyguardUpdateMonitor.registerCallback(mKeyguardVisibilityCallback); } @@ -777,13 +780,16 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump float behindFraction = getInterpolatedFraction(); behindFraction = (float) Math.pow(behindFraction, 0.8f); if (mClipsQsScrim) { - mBehindAlpha = 1; - mNotificationsAlpha = behindFraction * mDefaultScrimAlpha; + mBehindAlpha = mTransparentScrimBackground ? 0 : 1; + mNotificationsAlpha = + mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; } else { - mBehindAlpha = behindFraction * mDefaultScrimAlpha; + mBehindAlpha = + mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; // Delay fade-in of notification scrim a bit further, to coincide with the // view fade in. Otherwise the empty panel can be quite jarring. - mNotificationsAlpha = MathUtils.constrainedMap(0f, 1f, 0.3f, 0.75f, + mNotificationsAlpha = mTransparentScrimBackground + ? 0 : MathUtils.constrainedMap(0f, 1f, 0.3f, 0.75f, mPanelExpansionFraction); } mBehindTint = mState.getBehindTint(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 5f5ec68ba898..30591d08075a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -1094,7 +1094,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb mCentralSurfaces.endAffordanceLaunch(); // The second condition is for SIM card locked bouncer - if (bouncerIsScrimmed() && needsFullscreenBouncer()) { + if (bouncerIsScrimmed() && !needsFullscreenBouncer()) { hideBouncer(false); updateStates(); } else { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterLogger.kt index b9a1413ff791..81edff45c505 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterLogger.kt @@ -17,12 +17,12 @@ package com.android.systemui.statusbar.phone import android.app.PendingIntent -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogLevel.ERROR -import com.android.systemui.log.LogLevel.INFO -import com.android.systemui.log.LogLevel.WARNING import com.android.systemui.log.dagger.NotifInteractionLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogLevel.ERROR +import com.android.systemui.plugins.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogLevel.WARNING import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLogger.kt index 28ed0806a181..d64bc58a0c37 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLogger.kt @@ -16,9 +16,9 @@ package com.android.systemui.statusbar.phone.fragment -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.CollapsedSbFragmentLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.disableflags.DisableFlagsLogger import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt index 0d52f46e571f..e498ae451400 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherController.kt @@ -19,6 +19,7 @@ package com.android.systemui.statusbar.phone.userswitcher import android.content.Intent import android.os.UserHandle import android.view.View +import com.android.systemui.animation.Expandable import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.plugins.ActivityStarter @@ -75,7 +76,7 @@ class StatusBarUserSwitcherControllerImpl @Inject constructor( null /* ActivityLaunchAnimator.Controller */, true /* showOverlockscreenwhenlocked */, UserHandle.SYSTEM) } else { - userSwitcherDialogController.showDialog(view) + userSwitcherDialogController.showDialog(view.context, Expandable.fromView(view)) } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLogger.kt index dbb1aa54d8ee..d3cf32fb44ce 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLogger.kt @@ -18,10 +18,10 @@ package com.android.systemui.statusbar.pipeline.shared import android.net.Network import android.net.NetworkCapabilities -import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.StatusBarConnectivityLog +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger.Companion.toString import javax.inject.Inject import kotlinx.coroutines.flow.Flow diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapter.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapter.kt index 2f0ebf752a23..28a9b97b8ea6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseUserSwitcherAdapter.kt @@ -43,11 +43,7 @@ protected constructor( } override fun getCount(): Int { - return if (controller.isKeyguardShowing) { - users.count { !it.isRestricted } - } else { - users.size - } + return users.size } override fun getItem(position: Int): UserRecord { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt index d7c81af53d8b..df1e80b78c9b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt @@ -16,10 +16,10 @@ package com.android.systemui.statusbar.policy -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel.INFO -import com.android.systemui.log.LogLevel.VERBOSE import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel.INFO +import com.android.systemui.plugins.log.LogLevel.VERBOSE import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java index dc73d1f007c6..f63d65246d9b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardQsUserSwitchController.java @@ -36,6 +36,7 @@ import com.android.keyguard.KeyguardVisibilityHelper; import com.android.keyguard.dagger.KeyguardUserSwitcherScope; import com.android.settingslib.drawable.CircleFramedDrawable; import com.android.systemui.R; +import com.android.systemui.animation.Expandable; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; @@ -190,7 +191,8 @@ public class KeyguardQsUserSwitchController extends ViewController<FrameLayout> mUiEventLogger.log( LockscreenGestureLogger.LockscreenUiEvent.LOCKSCREEN_SWITCH_USER_TAP); - mUserSwitchDialogController.showDialog(mUserAvatarViewWithBackground); + mUserSwitchDialogController.showDialog(mUserAvatarViewWithBackground.getContext(), + Expandable.fromView(mUserAvatarViewWithBackground)); }); mUserAvatarView.setAccessibilityDelegate(new View.AccessibilityDelegate() { diff --git a/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayController.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayController.kt index 5cbdf7c43a12..d5d904c50f20 100644 --- a/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayController.kt +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayController.kt @@ -131,7 +131,7 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora ) cancelViewTimeout?.run() cancelViewTimeout = mainExecutor.executeDelayed( - { removeView(TemporaryDisplayRemovalReason.REASON_TIMEOUT) }, + { removeView(REMOVAL_REASON_TIMEOUT) }, timeout.toLong() ) } @@ -175,9 +175,6 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora */ fun removeView(removalReason: String) { val currentDisplayInfo = displayInfo ?: return - if (shouldIgnoreViewRemoval(currentDisplayInfo.info, removalReason)) { - return - } val currentView = currentDisplayInfo.view animateViewOut(currentView) { windowManager.removeView(currentView) } @@ -193,13 +190,6 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora } /** - * Returns true if a view removal request should be ignored and false otherwise. - * - * Allows subclasses to keep the view visible for longer in certain circumstances. - */ - open fun shouldIgnoreViewRemoval(info: T, removalReason: String): Boolean = false - - /** * A method implemented by subclasses to update [currentView] based on [newInfo]. */ abstract fun updateView(newInfo: T, currentView: ViewGroup) @@ -236,10 +226,7 @@ abstract class TemporaryViewDisplayController<T : TemporaryViewInfo, U : Tempora ) } -object TemporaryDisplayRemovalReason { - const val REASON_TIMEOUT = "TIMEOUT" - const val REASON_SCREEN_TAP = "SCREEN_TAP" -} +private const val REMOVAL_REASON_TIMEOUT = "TIMEOUT" private data class IconInfo( val iconName: String, diff --git a/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewLogger.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewLogger.kt index 606a11a84686..a7185cb18c40 100644 --- a/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/TemporaryViewLogger.kt @@ -16,8 +16,8 @@ package com.android.systemui.temporarydisplay -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel /** A logger for temporary view changes -- see [TemporaryViewDisplayController]. */ open class TemporaryViewLogger( diff --git a/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt index a2cd1420a41c..45ce687a1a4d 100644 --- a/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt @@ -18,7 +18,6 @@ package com.android.systemui.temporarydisplay.chipbar import android.content.Context import android.graphics.Rect -import android.media.MediaRoute2Info import android.os.PowerManager import android.view.Gravity import android.view.MotionEvent @@ -27,26 +26,24 @@ import android.view.ViewGroup import android.view.WindowManager import android.view.accessibility.AccessibilityManager import android.widget.TextView -import com.android.internal.statusbar.IUndoMediaTransferCallback import com.android.internal.widget.CachingIconView import com.android.systemui.Gefingerpoken import com.android.systemui.R import com.android.systemui.animation.Interpolators import com.android.systemui.animation.ViewHierarchyAnimator import com.android.systemui.classifier.FalsingCollector +import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription +import com.android.systemui.common.shared.model.Text.Companion.loadText +import com.android.systemui.common.ui.binder.IconViewBinder +import com.android.systemui.common.ui.binder.TextViewBinder import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.media.taptotransfer.common.MediaTttLogger import com.android.systemui.media.taptotransfer.common.MediaTttUtils -import com.android.systemui.media.taptotransfer.sender.ChipStateSender import com.android.systemui.media.taptotransfer.sender.MediaTttSenderLogger -import com.android.systemui.media.taptotransfer.sender.MediaTttSenderUiEventLogger -import com.android.systemui.media.taptotransfer.sender.TransferStatus import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.policy.ConfigurationController -import com.android.systemui.temporarydisplay.TemporaryDisplayRemovalReason import com.android.systemui.temporarydisplay.TemporaryViewDisplayController -import com.android.systemui.temporarydisplay.TemporaryViewInfo import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.view.ViewUtil import javax.inject.Inject @@ -79,11 +76,10 @@ open class ChipbarCoordinator @Inject constructor( accessibilityManager: AccessibilityManager, configurationController: ConfigurationController, powerManager: PowerManager, - private val uiEventLogger: MediaTttSenderUiEventLogger, private val falsingManager: FalsingManager, private val falsingCollector: FalsingCollector, private val viewUtil: ViewUtil, -) : TemporaryViewDisplayController<ChipSenderInfo, MediaTttLogger>( +) : TemporaryViewDisplayController<ChipbarInfo, MediaTttLogger>( context, logger, windowManager, @@ -105,15 +101,13 @@ open class ChipbarCoordinator @Inject constructor( override fun start() {} override fun updateView( - newInfo: ChipSenderInfo, + newInfo: ChipbarInfo, currentView: ViewGroup ) { // TODO(b/245610654): Adding logging here. - val chipState = newInfo.state - // Detect falsing touches on the chip. - parent = currentView.requireViewById(R.id.media_ttt_sender_chip) + parent = currentView.requireViewById(R.id.chipbar_root_view) parent.touchHandler = object : Gefingerpoken { override fun onTouchEvent(ev: MotionEvent?): Boolean { falsingCollector.onTouchEvent(ev) @@ -121,47 +115,49 @@ open class ChipbarCoordinator @Inject constructor( } } - // App icon - val iconInfo = MediaTttUtils.getIconInfoFromPackageName( - context, newInfo.routeInfo.clientPackageName, logger - ) - val iconView = currentView.requireViewById<CachingIconView>(R.id.app_icon) - iconView.setImageDrawable(iconInfo.drawable) - iconView.contentDescription = iconInfo.contentDescription + // ---- Start icon ---- + val iconView = currentView.requireViewById<CachingIconView>(R.id.start_icon) + IconViewBinder.bind(newInfo.startIcon, iconView) - // Text - val otherDeviceName = newInfo.routeInfo.name.toString() - val chipText = chipState.getChipTextString(context, otherDeviceName) - currentView.requireViewById<TextView>(R.id.text).text = chipText + // ---- Text ---- + val textView = currentView.requireViewById<TextView>(R.id.text) + TextViewBinder.bind(textView, newInfo.text) + // ---- End item ---- // Loading currentView.requireViewById<View>(R.id.loading).visibility = - (chipState.transferStatus == TransferStatus.IN_PROGRESS).visibleIfTrue() - - // Undo - val undoView = currentView.requireViewById<View>(R.id.undo) - val undoClickListener = chipState.undoClickListener( - this, - newInfo.routeInfo, - newInfo.undoCallback, - uiEventLogger, - falsingManager, - ) - undoView.setOnClickListener(undoClickListener) - undoView.visibility = (undoClickListener != null).visibleIfTrue() + (newInfo.endItem == ChipbarEndItem.Loading).visibleIfTrue() + + // Error + currentView.requireViewById<View>(R.id.error).visibility = + (newInfo.endItem == ChipbarEndItem.Error).visibleIfTrue() + + // Button + val buttonView = currentView.requireViewById<TextView>(R.id.end_button) + if (newInfo.endItem is ChipbarEndItem.Button) { + TextViewBinder.bind(buttonView, newInfo.endItem.text) + + val onClickListener = View.OnClickListener { clickedView -> + if (falsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) return@OnClickListener + newInfo.endItem.onClickListener.onClick(clickedView) + } - // Failure - currentView.requireViewById<View>(R.id.failure_icon).visibility = - (chipState.transferStatus == TransferStatus.FAILED).visibleIfTrue() + buttonView.setOnClickListener(onClickListener) + buttonView.visibility = View.VISIBLE + } else { + buttonView.visibility = View.GONE + } - // For accessibility + // ---- Overall accessibility ---- currentView.requireViewById<ViewGroup>( - R.id.media_ttt_sender_chip_inner - ).contentDescription = "${iconInfo.contentDescription} $chipText" + R.id.chipbar_inner + ).contentDescription = + "${newInfo.startIcon.contentDescription.loadContentDescription(context)} " + + "${newInfo.text.loadText(context)}" } override fun animateViewIn(view: ViewGroup) { - val chipInnerView = view.requireViewById<ViewGroup>(R.id.media_ttt_sender_chip_inner) + val chipInnerView = view.requireViewById<ViewGroup>(R.id.chipbar_inner) ViewHierarchyAnimator.animateAddition( chipInnerView, ViewHierarchyAnimator.Hotspot.TOP, @@ -176,7 +172,7 @@ open class ChipbarCoordinator @Inject constructor( override fun animateViewOut(view: ViewGroup, onAnimationEnd: Runnable) { ViewHierarchyAnimator.animateRemoval( - view.requireViewById<ViewGroup>(R.id.media_ttt_sender_chip_inner), + view.requireViewById<ViewGroup>(R.id.chipbar_inner), ViewHierarchyAnimator.Hotspot.TOP, Interpolators.EMPHASIZED_ACCELERATE, ANIMATION_DURATION, @@ -185,23 +181,6 @@ open class ChipbarCoordinator @Inject constructor( ) } - override fun shouldIgnoreViewRemoval(info: ChipSenderInfo, removalReason: String): Boolean { - // Don't remove the chip if we're in progress or succeeded, since the user should still be - // able to see the status of the transfer. (But do remove it if it's finally timed out.) - val transferStatus = info.state.transferStatus - if ( - (transferStatus == TransferStatus.IN_PROGRESS || - transferStatus == TransferStatus.SUCCEEDED) && - removalReason != TemporaryDisplayRemovalReason.REASON_TIMEOUT - ) { - logger.logRemovalBypass( - removalReason, bypassReason = "transferStatus=${transferStatus.name}" - ) - return true - } - return false - } - override fun getTouchableRegion(view: View, outRect: Rect) { viewUtil.setRectToViewWindowLocation(view, outRect) } @@ -215,13 +194,5 @@ open class ChipbarCoordinator @Inject constructor( } } -data class ChipSenderInfo( - val state: ChipStateSender, - val routeInfo: MediaRoute2Info, - val undoCallback: IUndoMediaTransferCallback? = null -) : TemporaryViewInfo { - override fun getTimeoutMs() = state.timeout -} - const val SENDER_TAG = "MediaTapToTransferSender" private const val ANIMATION_DURATION = 500L diff --git a/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt new file mode 100644 index 000000000000..211a66387966 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.temporarydisplay.chipbar + +import android.view.View +import com.android.systemui.common.shared.model.Icon +import com.android.systemui.common.shared.model.Text +import com.android.systemui.temporarydisplay.TemporaryViewInfo + +/** + * A container for all the state needed to display a chipbar via [ChipbarCoordinator]. + * + * @property startIcon the icon to display at the start of the chipbar (on the left in LTR locales; + * on the right in RTL locales). + * @property text the text to display. + * @property endItem an optional end item to display at the end of the chipbar (on the right in LTR + * locales; on the left in RTL locales). + */ +data class ChipbarInfo( + val startIcon: Icon, + val text: Text, + val endItem: ChipbarEndItem?, +) : TemporaryViewInfo + +/** The possible items to display at the end of the chipbar. */ +sealed class ChipbarEndItem { + /** A loading icon should be displayed. */ + object Loading : ChipbarEndItem() + + /** An error icon should be displayed. */ + object Error : ChipbarEndItem() + + /** + * A button with the provided [text] and [onClickListener] functionality should be displayed. + */ + data class Button(val text: Text, val onClickListener: View.OnClickListener) : ChipbarEndItem() + + // TODO(b/245610654): Add support for a generic icon. +} diff --git a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java index 3d56f2317660..3ecb15b9d79c 100644 --- a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java +++ b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java @@ -79,6 +79,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -114,6 +115,7 @@ public class ThemeOverlayController implements CoreStartable, Dumpable { private final SecureSettings mSecureSettings; private final Executor mMainExecutor; private final Handler mBgHandler; + private final boolean mIsMonochromaticEnabled; private final Context mContext; private final boolean mIsMonetEnabled; private final UserTracker mUserTracker; @@ -363,6 +365,7 @@ public class ThemeOverlayController implements CoreStartable, Dumpable { UserTracker userTracker, DumpManager dumpManager, FeatureFlags featureFlags, @Main Resources resources, WakefulnessLifecycle wakefulnessLifecycle) { mContext = context; + mIsMonochromaticEnabled = featureFlags.isEnabled(Flags.MONOCHROMATIC_THEMES); mIsMonetEnabled = featureFlags.isEnabled(Flags.MONET); mDeviceProvisionedController = deviceProvisionedController; mBroadcastDispatcher = broadcastDispatcher; @@ -665,8 +668,13 @@ public class ThemeOverlayController implements CoreStartable, Dumpable { // Allow-list of Style objects that can be created from a setting string, i.e. can be // used as a system-wide theme. // - Content intentionally excluded, intended for media player, not system-wide - List<Style> validStyles = Arrays.asList(Style.EXPRESSIVE, Style.SPRITZ, Style.TONAL_SPOT, - Style.FRUIT_SALAD, Style.RAINBOW, Style.VIBRANT); + List<Style> validStyles = new ArrayList<>(Arrays.asList(Style.EXPRESSIVE, Style.SPRITZ, + Style.TONAL_SPOT, Style.FRUIT_SALAD, Style.RAINBOW, Style.VIBRANT)); + + if (mIsMonochromaticEnabled) { + validStyles.add(Style.MONOCHROMATIC); + } + Style style = mThemeStyle; final String overlayPackageJson = mSecureSettings.getStringForUser( Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES, diff --git a/packages/SystemUI/src/com/android/systemui/toast/ToastLogger.kt b/packages/SystemUI/src/com/android/systemui/toast/ToastLogger.kt index 51541bd3032e..fda511433143 100644 --- a/packages/SystemUI/src/com/android/systemui/toast/ToastLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/toast/ToastLogger.kt @@ -16,11 +16,11 @@ package com.android.systemui.toast -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogLevel.DEBUG -import com.android.systemui.log.LogMessage import com.android.systemui.log.dagger.ToastLog +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogLevel.DEBUG +import com.android.systemui.plugins.log.LogMessage import javax.inject.Inject private const val TAG = "ToastLog" diff --git a/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt b/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt index 919e699652bc..d768b6dc195a 100644 --- a/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/user/data/repository/UserRepository.kt @@ -321,6 +321,7 @@ constructor( return when { isAddUser -> false isAddSupervisedUser -> false + isManageUsers -> false isGuest -> info != null else -> true } @@ -346,6 +347,7 @@ constructor( isAddUser -> UserActionModel.ADD_USER isAddSupervisedUser -> UserActionModel.ADD_SUPERVISED_USER isGuest -> UserActionModel.ENTER_GUEST_MODE + isManageUsers -> UserActionModel.NAVIGATE_TO_USER_MANAGEMENT else -> error("Don't know how to convert to UserActionModel: $this") } } diff --git a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt index ba5a82a42d94..0d5c64b83e6e 100644 --- a/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/user/domain/interactor/UserInteractor.kt @@ -236,18 +236,7 @@ constructor( } .flatMapLatest { isActionable -> if (isActionable) { - repository.actions.map { actions -> - actions + - if (actions.isNotEmpty()) { - // If we have actions, we add NAVIGATE_TO_USER_MANAGEMENT - // because that's a user switcher specific action that is - // not known to the our data source or other features. - listOf(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT) - } else { - // If no actions, don't add the navigate action. - emptyList() - } - } + repository.actions } else { // If not actionable it means that we're not allowed to show actions // when diff --git a/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt b/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt index 91c592177d19..f7e19c0ca810 100644 --- a/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/user/ui/dialog/UserSwitcherDialogCoordinator.kt @@ -30,6 +30,7 @@ import com.android.systemui.flags.Flags import com.android.systemui.plugins.FalsingManager import com.android.systemui.user.domain.interactor.UserInteractor import com.android.systemui.user.domain.model.ShowDialogRequestModel +import dagger.Lazy import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.collect @@ -41,19 +42,19 @@ import kotlinx.coroutines.launch class UserSwitcherDialogCoordinator @Inject constructor( - @Application private val context: Context, - @Application private val applicationScope: CoroutineScope, - private val falsingManager: FalsingManager, - private val broadcastSender: BroadcastSender, - private val dialogLaunchAnimator: DialogLaunchAnimator, - private val interactor: UserInteractor, - private val featureFlags: FeatureFlags, + @Application private val context: Lazy<Context>, + @Application private val applicationScope: Lazy<CoroutineScope>, + private val falsingManager: Lazy<FalsingManager>, + private val broadcastSender: Lazy<BroadcastSender>, + private val dialogLaunchAnimator: Lazy<DialogLaunchAnimator>, + private val interactor: Lazy<UserInteractor>, + private val featureFlags: Lazy<FeatureFlags>, ) : CoreStartable { private var currentDialog: Dialog? = null override fun start() { - if (featureFlags.isEnabled(Flags.USER_INTERACTOR_AND_REPO_USE_CONTROLLER)) { + if (featureFlags.get().isEnabled(Flags.USER_INTERACTOR_AND_REPO_USE_CONTROLLER)) { return } @@ -62,8 +63,8 @@ constructor( } private fun startHandlingDialogShowRequests() { - applicationScope.launch { - interactor.dialogShowRequests.filterNotNull().collect { request -> + applicationScope.get().launch { + interactor.get().dialogShowRequests.filterNotNull().collect { request -> currentDialog?.let { if (it.isShowing) { it.cancel() @@ -74,48 +75,48 @@ constructor( when (request) { is ShowDialogRequestModel.ShowAddUserDialog -> AddUserDialog( - context = context, + context = context.get(), userHandle = request.userHandle, isKeyguardShowing = request.isKeyguardShowing, showEphemeralMessage = request.showEphemeralMessage, - falsingManager = falsingManager, - broadcastSender = broadcastSender, - dialogLaunchAnimator = dialogLaunchAnimator, + falsingManager = falsingManager.get(), + broadcastSender = broadcastSender.get(), + dialogLaunchAnimator = dialogLaunchAnimator.get(), ) is ShowDialogRequestModel.ShowUserCreationDialog -> UserCreatingDialog( - context, + context.get(), request.isGuest, ) is ShowDialogRequestModel.ShowExitGuestDialog -> ExitGuestDialog( - context = context, + context = context.get(), guestUserId = request.guestUserId, isGuestEphemeral = request.isGuestEphemeral, targetUserId = request.targetUserId, isKeyguardShowing = request.isKeyguardShowing, - falsingManager = falsingManager, - dialogLaunchAnimator = dialogLaunchAnimator, + falsingManager = falsingManager.get(), + dialogLaunchAnimator = dialogLaunchAnimator.get(), onExitGuestUserListener = request.onExitGuestUser, ) } currentDialog?.show() - interactor.onDialogShown() + interactor.get().onDialogShown() } } } private fun startHandlingDialogDismissRequests() { - applicationScope.launch { - interactor.dialogDismissRequests.filterNotNull().collect { + applicationScope.get().launch { + interactor.get().dialogDismissRequests.filterNotNull().collect { currentDialog?.let { if (it.isShowing) { it.cancel() } } - interactor.onDialogDismissed() + interactor.get().onDialogDismissed() } } } diff --git a/packages/SystemUI/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModel.kt b/packages/SystemUI/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModel.kt index 219dae29117f..d857e85bac53 100644 --- a/packages/SystemUI/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModel.kt @@ -62,17 +62,7 @@ private constructor( val isMenuVisible: Flow<Boolean> = _isMenuVisible /** The user action menu. */ val menu: Flow<List<UserActionViewModel>> = - userInteractor.actions.map { actions -> - if (isNewImpl && actions.isNotEmpty()) { - // If we have actions, we add NAVIGATE_TO_USER_MANAGEMENT because that's a user - // switcher specific action that is not known to the our data source or other - // features. - actions + listOf(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT) - } else { - actions - } - .map { action -> toViewModel(action) } - } + userInteractor.actions.map { actions -> actions.map { action -> toViewModel(action) } } /** Whether the button to open the user action menu is visible. */ val isOpenMenuButtonVisible: Flow<Boolean> = menu.map { it.isNotEmpty() } diff --git a/packages/SystemUI/src/com/android/systemui/util/condition/Condition.java b/packages/SystemUI/src/com/android/systemui/util/condition/Condition.java index ecb365f43e3f..2c317dd391c0 100644 --- a/packages/SystemUI/src/com/android/systemui/util/condition/Condition.java +++ b/packages/SystemUI/src/com/android/systemui/util/condition/Condition.java @@ -172,10 +172,14 @@ public abstract class Condition implements CallbackController<Condition.Callback return Boolean.TRUE.equals(mIsConditionMet); } - private boolean shouldLog() { + protected final boolean shouldLog() { return Log.isLoggable(mTag, Log.DEBUG); } + protected final String getTag() { + return mTag; + } + /** * Callback that receives updates about whether the condition has been fulfilled. */ diff --git a/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java b/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java index 4824f6744c6e..cb430ba454f0 100644 --- a/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java +++ b/packages/SystemUI/src/com/android/systemui/util/condition/Monitor.java @@ -117,6 +117,7 @@ public class Monitor { final SubscriptionState state = new SubscriptionState(subscription); mExecutor.execute(() -> { + if (shouldLog()) Log.d(mTag, "adding subscription"); mSubscriptions.put(token, state); // Add and associate conditions. @@ -143,7 +144,7 @@ public class Monitor { */ public void removeSubscription(@NotNull Subscription.Token token) { mExecutor.execute(() -> { - if (shouldLog()) Log.d(mTag, "removing callback"); + if (shouldLog()) Log.d(mTag, "removing subscription"); if (!mSubscriptions.containsKey(token)) { Log.e(mTag, "subscription not present:" + token); return; diff --git a/packages/SystemUI/tests/src/com/android/keyguard/BouncerKeyguardMessageAreaTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/BouncerKeyguardMessageAreaTest.kt new file mode 100644 index 000000000000..9d6aff219148 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/keyguard/BouncerKeyguardMessageAreaTest.kt @@ -0,0 +1,69 @@ +/* + * 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.keyguard + +import android.content.Context +import android.testing.AndroidTestingRunner +import android.testing.TestableLooper.RunWithLooper +import android.util.AttributeSet +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.google.common.truth.Truth.assertThat +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.spy +import org.mockito.Mockito.times +import org.mockito.Mockito.verify + +@SmallTest +@RunWith(AndroidTestingRunner::class) +@RunWithLooper +class BouncerKeyguardMessageAreaTest : SysuiTestCase() { + class FakeBouncerKeyguardMessageArea(context: Context, attrs: AttributeSet?) : + BouncerKeyguardMessageArea(context, attrs) { + override val SHOW_DURATION_MILLIS = 0L + override val HIDE_DURATION_MILLIS = 0L + } + lateinit var underTest: BouncerKeyguardMessageArea + + @Before + fun setup() { + underTest = FakeBouncerKeyguardMessageArea(context, null) + } + + @Test + fun testSetSameMessage() { + val underTestSpy = spy(underTest) + underTestSpy.setMessage("abc") + underTestSpy.setMessage("abc") + verify(underTestSpy, times(1)).text = "abc" + } + + @Test + fun testSetDifferentMessage() { + underTest.setMessage("abc") + underTest.setMessage("def") + assertThat(underTest.text).isEqualTo("def") + } + + @Test + fun testSetNullMessage() { + underTest.setMessage(null) + assertThat(underTest.text).isEqualTo("") + } +} diff --git a/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt index 8a2c35410586..03efd06d0e5e 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/ClockEventControllerTest.kt @@ -17,17 +17,21 @@ package com.android.keyguard import android.content.BroadcastReceiver import android.testing.AndroidTestingRunner +import android.view.View import android.widget.TextView import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.flags.FeatureFlags +import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository +import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository +import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor +import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.plugins.ClockAnimations import com.android.systemui.plugins.ClockController import com.android.systemui.plugins.ClockEvents import com.android.systemui.plugins.ClockFaceController import com.android.systemui.plugins.ClockFaceEvents -import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.statusbar.policy.BatteryController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.mockito.any @@ -37,6 +41,9 @@ import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.mock import java.util.TimeZone import java.util.concurrent.Executor +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.yield import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Rule @@ -57,7 +64,7 @@ import org.mockito.junit.MockitoJUnit class ClockEventControllerTest : SysuiTestCase() { @JvmField @Rule val mockito = MockitoJUnit.rule() - @Mock private lateinit var statusBarStateController: StatusBarStateController + @Mock private lateinit var keyguardInteractor: KeyguardInteractor @Mock private lateinit var broadcastDispatcher: BroadcastDispatcher @Mock private lateinit var batteryController: BatteryController @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @@ -72,8 +79,11 @@ class ClockEventControllerTest : SysuiTestCase() { @Mock private lateinit var largeClockController: ClockFaceController @Mock private lateinit var smallClockEvents: ClockFaceEvents @Mock private lateinit var largeClockEvents: ClockFaceEvents + @Mock private lateinit var parentView: View + @Mock private lateinit var transitionRepository: KeyguardTransitionRepository + private lateinit var repository: FakeKeyguardRepository - private lateinit var clockEventController: ClockEventController + private lateinit var underTest: ClockEventController @Before fun setUp() { @@ -86,8 +96,11 @@ class ClockEventControllerTest : SysuiTestCase() { whenever(clock.events).thenReturn(events) whenever(clock.animations).thenReturn(animations) - clockEventController = ClockEventController( - statusBarStateController, + repository = FakeKeyguardRepository() + + underTest = ClockEventController( + KeyguardInteractor(repository = repository), + KeyguardTransitionInteractor(repository = transitionRepository), broadcastDispatcher, batteryController, keyguardUpdateMonitor, @@ -98,31 +111,33 @@ class ClockEventControllerTest : SysuiTestCase() { bgExecutor, featureFlags ) + underTest.clock = clock + + runBlocking(IMMEDIATE) { + underTest.registerListeners(parentView) + + repository.setDozing(true) + repository.setDozeAmount(1f) + } } @Test fun clockSet_validateInitialization() { - clockEventController.clock = clock - verify(clock).initialize(any(), anyFloat(), anyFloat()) } @Test fun clockUnset_validateState() { - clockEventController.clock = clock - clockEventController.clock = null + underTest.clock = null - assertEquals(clockEventController.clock, null) + assertEquals(underTest.clock, null) } @Test - fun themeChanged_verifyClockPaletteUpdated() { - clockEventController.clock = clock + fun themeChanged_verifyClockPaletteUpdated() = runBlocking(IMMEDIATE) { verify(smallClockEvents).onRegionDarknessChanged(anyBoolean()) verify(largeClockEvents).onRegionDarknessChanged(anyBoolean()) - clockEventController.registerListeners() - val captor = argumentCaptor<ConfigurationController.ConfigurationListener>() verify(configurationController).addCallback(capture(captor)) captor.value.onThemeChanged() @@ -131,13 +146,10 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun fontChanged_verifyFontSizeUpdated() { - clockEventController.clock = clock + fun fontChanged_verifyFontSizeUpdated() = runBlocking(IMMEDIATE) { verify(smallClockEvents).onRegionDarknessChanged(anyBoolean()) verify(largeClockEvents).onRegionDarknessChanged(anyBoolean()) - clockEventController.registerListeners() - val captor = argumentCaptor<ConfigurationController.ConfigurationListener>() verify(configurationController).addCallback(capture(captor)) captor.value.onDensityOrFontScaleChanged() @@ -146,10 +158,7 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun batteryCallback_keyguardShowingCharging_verifyChargeAnimation() { - clockEventController.clock = clock - clockEventController.registerListeners() - + fun batteryCallback_keyguardShowingCharging_verifyChargeAnimation() = runBlocking(IMMEDIATE) { val batteryCaptor = argumentCaptor<BatteryController.BatteryStateChangeCallback>() verify(batteryController).addCallback(capture(batteryCaptor)) val keyguardCaptor = argumentCaptor<KeyguardUpdateMonitorCallback>() @@ -161,26 +170,21 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun batteryCallback_keyguardShowingCharging_Duplicate_verifyChargeAnimation() { - clockEventController.clock = clock - clockEventController.registerListeners() - - val batteryCaptor = argumentCaptor<BatteryController.BatteryStateChangeCallback>() - verify(batteryController).addCallback(capture(batteryCaptor)) - val keyguardCaptor = argumentCaptor<KeyguardUpdateMonitorCallback>() - verify(keyguardUpdateMonitor).registerCallback(capture(keyguardCaptor)) - keyguardCaptor.value.onKeyguardVisibilityChanged(true) - batteryCaptor.value.onBatteryLevelChanged(10, false, true) - batteryCaptor.value.onBatteryLevelChanged(10, false, true) - - verify(animations, times(1)).charge() - } + fun batteryCallback_keyguardShowingCharging_Duplicate_verifyChargeAnimation() = + runBlocking(IMMEDIATE) { + val batteryCaptor = argumentCaptor<BatteryController.BatteryStateChangeCallback>() + verify(batteryController).addCallback(capture(batteryCaptor)) + val keyguardCaptor = argumentCaptor<KeyguardUpdateMonitorCallback>() + verify(keyguardUpdateMonitor).registerCallback(capture(keyguardCaptor)) + keyguardCaptor.value.onKeyguardVisibilityChanged(true) + batteryCaptor.value.onBatteryLevelChanged(10, false, true) + batteryCaptor.value.onBatteryLevelChanged(10, false, true) + + verify(animations, times(1)).charge() + } @Test - fun batteryCallback_keyguardHiddenCharging_verifyChargeAnimation() { - clockEventController.clock = clock - clockEventController.registerListeners() - + fun batteryCallback_keyguardHiddenCharging_verifyChargeAnimation() = runBlocking(IMMEDIATE) { val batteryCaptor = argumentCaptor<BatteryController.BatteryStateChangeCallback>() verify(batteryController).addCallback(capture(batteryCaptor)) val keyguardCaptor = argumentCaptor<KeyguardUpdateMonitorCallback>() @@ -192,25 +196,20 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun batteryCallback_keyguardShowingNotCharging_verifyChargeAnimation() { - clockEventController.clock = clock - clockEventController.registerListeners() - - val batteryCaptor = argumentCaptor<BatteryController.BatteryStateChangeCallback>() - verify(batteryController).addCallback(capture(batteryCaptor)) - val keyguardCaptor = argumentCaptor<KeyguardUpdateMonitorCallback>() - verify(keyguardUpdateMonitor).registerCallback(capture(keyguardCaptor)) - keyguardCaptor.value.onKeyguardVisibilityChanged(true) - batteryCaptor.value.onBatteryLevelChanged(10, false, false) - - verify(animations, never()).charge() - } + fun batteryCallback_keyguardShowingNotCharging_verifyChargeAnimation() = + runBlocking(IMMEDIATE) { + val batteryCaptor = argumentCaptor<BatteryController.BatteryStateChangeCallback>() + verify(batteryController).addCallback(capture(batteryCaptor)) + val keyguardCaptor = argumentCaptor<KeyguardUpdateMonitorCallback>() + verify(keyguardUpdateMonitor).registerCallback(capture(keyguardCaptor)) + keyguardCaptor.value.onKeyguardVisibilityChanged(true) + batteryCaptor.value.onBatteryLevelChanged(10, false, false) + + verify(animations, never()).charge() + } @Test - fun localeCallback_verifyClockNotified() { - clockEventController.clock = clock - clockEventController.registerListeners() - + fun localeCallback_verifyClockNotified() = runBlocking(IMMEDIATE) { val captor = argumentCaptor<BroadcastReceiver>() verify(broadcastDispatcher).registerReceiver( capture(captor), any(), eq(null), eq(null), anyInt(), eq(null) @@ -221,10 +220,7 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun keyguardCallback_visibilityChanged_clockDozeCalled() { - clockEventController.clock = clock - clockEventController.registerListeners() - + fun keyguardCallback_visibilityChanged_clockDozeCalled() = runBlocking(IMMEDIATE) { val captor = argumentCaptor<KeyguardUpdateMonitorCallback>() verify(keyguardUpdateMonitor).registerCallback(capture(captor)) @@ -236,10 +232,7 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun keyguardCallback_timeFormat_clockNotified() { - clockEventController.clock = clock - clockEventController.registerListeners() - + fun keyguardCallback_timeFormat_clockNotified() = runBlocking(IMMEDIATE) { val captor = argumentCaptor<KeyguardUpdateMonitorCallback>() verify(keyguardUpdateMonitor).registerCallback(capture(captor)) captor.value.onTimeFormatChanged("12h") @@ -248,11 +241,8 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun keyguardCallback_timezoneChanged_clockNotified() { + fun keyguardCallback_timezoneChanged_clockNotified() = runBlocking(IMMEDIATE) { val mockTimeZone = mock<TimeZone>() - clockEventController.clock = clock - clockEventController.registerListeners() - val captor = argumentCaptor<KeyguardUpdateMonitorCallback>() verify(keyguardUpdateMonitor).registerCallback(capture(captor)) captor.value.onTimeZoneChanged(mockTimeZone) @@ -261,10 +251,7 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun keyguardCallback_userSwitched_clockNotified() { - clockEventController.clock = clock - clockEventController.registerListeners() - + fun keyguardCallback_userSwitched_clockNotified() = runBlocking(IMMEDIATE) { val captor = argumentCaptor<KeyguardUpdateMonitorCallback>() verify(keyguardUpdateMonitor).registerCallback(capture(captor)) captor.value.onUserSwitchComplete(10) @@ -273,25 +260,27 @@ class ClockEventControllerTest : SysuiTestCase() { } @Test - fun keyguardCallback_verifyKeyguardChanged() { - clockEventController.clock = clock - clockEventController.registerListeners() + fun keyguardCallback_verifyKeyguardChanged() = runBlocking(IMMEDIATE) { + val job = underTest.listenForDozeAmount(this) + repository.setDozeAmount(0.4f) - val captor = argumentCaptor<StatusBarStateController.StateListener>() - verify(statusBarStateController).addCallback(capture(captor)) - captor.value.onDozeAmountChanged(0.4f, 0.6f) + yield() verify(animations).doze(0.4f) + + job.cancel() } @Test - fun unregisterListeners_validate() { - clockEventController.clock = clock - clockEventController.unregisterListeners() + fun unregisterListeners_validate() = runBlocking(IMMEDIATE) { + underTest.unregisterListeners() verify(broadcastDispatcher).unregisterReceiver(any()) verify(configurationController).removeCallback(any()) verify(batteryController).removeCallback(any()) verify(keyguardUpdateMonitor).removeCallback(any()) - verify(statusBarStateController).removeCallback(any()) + } + + companion object { + private val IMMEDIATE = Dispatchers.Main.immediate } } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java index 400caa3a352a..627d738a895f 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java @@ -29,6 +29,7 @@ import static org.mockito.Mockito.when; import android.content.res.Resources; import android.database.ContentObserver; +import android.graphics.Rect; import android.net.Uri; import android.os.UserHandle; import android.provider.Settings; @@ -45,6 +46,7 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.keyguard.KeyguardUnlockAnimationController; +import com.android.systemui.plugins.ClockAnimations; import com.android.systemui.plugins.ClockController; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shared.clocks.AnimatableClockView; @@ -262,9 +264,22 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase { verify(mView).switchToClock(KeyguardClockSwitch.SMALL, /* animate */ true); } + @Test + public void testGetClockAnimationsForwardsToClock() { + ClockController mockClockController = mock(ClockController.class); + ClockAnimations mockClockAnimations = mock(ClockAnimations.class); + when(mClockEventController.getClock()).thenReturn(mockClockController); + when(mockClockController.getAnimations()).thenReturn(mockClockAnimations); + + Rect r1 = new Rect(1, 2, 3, 4); + Rect r2 = new Rect(5, 6, 7, 8); + mController.getClockAnimations().onPositionUpdated(r1, r2, 0.2f); + verify(mockClockAnimations).onPositionUpdated(r1, r2, 0.2f); + } + private void verifyAttachment(VerificationMode times) { verify(mClockRegistry, times).registerClockChangeListener( any(ClockRegistry.ClockChangeListener.class)); - verify(mClockEventController, times).registerListeners(); + verify(mClockEventController, times).registerListeners(mView); } } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java index 69524e5a4537..5d2b0ca4e7ea 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMessageAreaControllerTest.java @@ -17,13 +17,11 @@ package com.android.keyguard; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; -import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener; @@ -92,19 +90,4 @@ public class KeyguardMessageAreaControllerTest extends SysuiTestCase { mMessageAreaController.setIsVisible(true); verify(mKeyguardMessageArea).setIsVisible(true); } - - @Test - public void testSetMessageIfEmpty_empty() { - mMessageAreaController.setMessage(""); - mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pin); - verify(mKeyguardMessageArea).setMessage(R.string.keyguard_enter_your_pin); - } - - @Test - public void testSetMessageIfEmpty_notEmpty() { - mMessageAreaController.setMessage("abc"); - mMessageAreaController.setMessageIfEmpty(R.string.keyguard_enter_your_pin); - verify(mKeyguardMessageArea, never()).setMessage(getContext() - .getResources().getText(R.string.keyguard_enter_your_pin)); - } } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPasswordViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPasswordViewControllerTest.kt index b89dbd98968a..b369098cafc0 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPasswordViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPasswordViewControllerTest.kt @@ -114,9 +114,8 @@ class KeyguardPasswordViewControllerTest : SysuiTestCase() { } @Test - fun onResume_testSetInitialText() { - keyguardPasswordViewController.onResume(KeyguardSecurityView.SCREEN_ON) - verify(mKeyguardMessageAreaController) - .setMessageIfEmpty(R.string.keyguard_enter_your_password) + fun startAppearAnimation() { + keyguardPasswordViewController.startAppearAnimation() + verify(mKeyguardMessageAreaController).setMessage(R.string.keyguard_enter_your_password) } } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewControllerTest.kt index 3262a77b7711..9eff70487c74 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPatternViewControllerTest.kt @@ -100,16 +100,16 @@ class KeyguardPatternViewControllerTest : SysuiTestCase() { } @Test - fun onPause_clearsTextField() { + fun onPause_resetsText() { mKeyguardPatternViewController.init() mKeyguardPatternViewController.onPause() - verify(mKeyguardMessageAreaController).setMessage("") + verify(mKeyguardMessageAreaController).setMessage(R.string.keyguard_enter_your_pattern) } + @Test - fun onResume_setInitialText() { - mKeyguardPatternViewController.onResume(KeyguardSecurityView.SCREEN_ON) - verify(mKeyguardMessageAreaController) - .setMessageIfEmpty(R.string.keyguard_enter_your_pattern) + fun startAppearAnimation() { + mKeyguardPatternViewController.startAppearAnimation() + verify(mKeyguardMessageAreaController).setMessage(R.string.keyguard_enter_your_pattern) } } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewControllerTest.java index 97d556b04aa4..ce1101f389c0 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinBasedInputViewControllerTest.java @@ -113,11 +113,4 @@ public class KeyguardPinBasedInputViewControllerTest extends SysuiTestCase { mKeyguardPinViewController.onResume(KeyguardSecurityView.SCREEN_ON); verify(mPasswordEntry).requestFocus(); } - - @Test - public void onResume_setInitialText() { - mKeyguardPinViewController.onResume(KeyguardSecurityView.SCREEN_ON); - verify(mKeyguardMessageAreaController).setMessageIfEmpty(R.string.keyguard_enter_your_pin); - } } - diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinViewControllerTest.kt index 9e5bfe53ea05..d9efdeaea04c 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardPinViewControllerTest.kt @@ -98,6 +98,6 @@ class KeyguardPinViewControllerTest : SysuiTestCase() { @Test fun startAppearAnimation() { pinViewController.startAppearAnimation() - verify(keyguardMessageAreaController).setMessageIfEmpty(R.string.keyguard_enter_your_pin) + verify(keyguardMessageAreaController).setMessage(R.string.keyguard_enter_your_pin) } } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewControllerTest.java index 4dcaa7cf8c09..c94c97c9b638 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewControllerTest.java @@ -16,12 +16,16 @@ package com.android.keyguard; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import android.graphics.Rect; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import com.android.systemui.SysuiTestCase; +import com.android.systemui.plugins.ClockAnimations; import com.android.systemui.statusbar.phone.DozeParameters; import com.android.systemui.statusbar.phone.ScreenOffAnimationController; import com.android.systemui.statusbar.policy.ConfigurationController; @@ -108,4 +112,16 @@ public class KeyguardStatusViewControllerTest extends SysuiTestCase { configurationListenerArgumentCaptor.getValue().onLocaleListChanged(); verify(mKeyguardClockSwitchController).onLocaleListChanged(); } + + @Test + public void getClockAnimations_forwardsToClockSwitch() { + ClockAnimations mockClockAnimations = mock(ClockAnimations.class); + when(mKeyguardClockSwitchController.getClockAnimations()).thenReturn(mockClockAnimations); + + Rect r1 = new Rect(1, 2, 3, 4); + Rect r2 = new Rect(5, 6, 7, 8); + mController.getClockAnimations().onPositionUpdated(r1, r2, 0.3f); + + verify(mockClockAnimations).onPositionUpdated(r1, r2, 0.3f); + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java index 2319f4386798..181839ab512f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java @@ -36,6 +36,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -255,6 +256,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { }); mScreenDecorations.mDisplayInfo = mDisplayInfo; doReturn(1f).when(mScreenDecorations).getPhysicalPixelDisplaySizeRatio(); + doNothing().when(mScreenDecorations).updateOverlayProviderViews(any()); reset(mTunerService); try { @@ -1005,18 +1007,13 @@ public class ScreenDecorationsTest extends SysuiTestCase { assertEquals(new Size(3, 3), resDelegate.getTopRoundedSize()); assertEquals(new Size(4, 4), resDelegate.getBottomRoundedSize()); - setupResources(20 /* radius */, 0 /* radiusTop */, 0 /* radiusBottom */, - getTestsDrawable(com.android.systemui.tests.R.drawable.rounded4px) - /* roundedTopDrawable */, - getTestsDrawable(com.android.systemui.tests.R.drawable.rounded5px) - /* roundedBottomDrawable */, - 0 /* roundedPadding */, true /* privacyDot */, false /* faceScanning*/); + doReturn(2f).when(mScreenDecorations).getPhysicalPixelDisplaySizeRatio(); mDisplayInfo.rotation = Surface.ROTATION_270; mScreenDecorations.onConfigurationChanged(null); - assertEquals(new Size(4, 4), resDelegate.getTopRoundedSize()); - assertEquals(new Size(5, 5), resDelegate.getBottomRoundedSize()); + assertEquals(new Size(6, 6), resDelegate.getTopRoundedSize()); + assertEquals(new Size(8, 8), resDelegate.getBottomRoundedSize()); } @Test @@ -1293,51 +1290,6 @@ public class ScreenDecorationsTest extends SysuiTestCase { } @Test - public void testOnDisplayChanged_hwcLayer() { - setupResources(0 /* radius */, 0 /* radiusTop */, 0 /* radiusBottom */, - null /* roundedTopDrawable */, null /* roundedBottomDrawable */, - 0 /* roundedPadding */, false /* privacyDot */, false /* faceScanning */); - final DisplayDecorationSupport decorationSupport = new DisplayDecorationSupport(); - decorationSupport.format = PixelFormat.R_8; - doReturn(decorationSupport).when(mDisplay).getDisplayDecorationSupport(); - - // top cutout - mMockCutoutList.add(new CutoutDecorProviderImpl(BOUNDS_POSITION_TOP)); - - mScreenDecorations.start(); - - final ScreenDecorHwcLayer hwcLayer = mScreenDecorations.mScreenDecorHwcLayer; - spyOn(hwcLayer); - doReturn(mDisplay).when(hwcLayer).getDisplay(); - - mScreenDecorations.mDisplayListener.onDisplayChanged(1); - - verify(hwcLayer, times(1)).onDisplayChanged(any()); - } - - @Test - public void testOnDisplayChanged_nonHwcLayer() { - setupResources(0 /* radius */, 0 /* radiusTop */, 0 /* radiusBottom */, - null /* roundedTopDrawable */, null /* roundedBottomDrawable */, - 0 /* roundedPadding */, false /* privacyDot */, false /* faceScanning */); - - // top cutout - mMockCutoutList.add(new CutoutDecorProviderImpl(BOUNDS_POSITION_TOP)); - - mScreenDecorations.start(); - - final ScreenDecorations.DisplayCutoutView cutoutView = (ScreenDecorations.DisplayCutoutView) - mScreenDecorations.getOverlayView(R.id.display_cutout); - assertNotNull(cutoutView); - spyOn(cutoutView); - doReturn(mDisplay).when(cutoutView).getDisplay(); - - mScreenDecorations.mDisplayListener.onDisplayChanged(1); - - verify(cutoutView, times(1)).onDisplayChanged(any()); - } - - @Test public void testHasSameProvidersWithNullOverlays() { setupResources(0 /* radius */, 0 /* radiusTop */, 0 /* radiusBottom */, null /* roundedTopDrawable */, null /* roundedBottomDrawable */, diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt index baeabc577fb7..cd50144bf2e8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt @@ -163,6 +163,7 @@ class UdfpsControllerOverlayTest : SysuiTestCase() { val sensorBounds = Rect(0, 0, SENSOR_WIDTH, SENSOR_HEIGHT) overlayParams = UdfpsOverlayParams( sensorBounds, + sensorBounds, DISPLAY_WIDTH, DISPLAY_HEIGHT, scaleFactor = 1f, diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java index f210708806ab..eff47bd2ee98 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsControllerTest.java @@ -414,7 +414,7 @@ public class UdfpsControllerTest extends SysuiTestCase { final float[] scaleFactor = new float[]{1f, displayHeight[1] / (float) displayHeight[0]}; final int[] rotation = new int[]{Surface.ROTATION_0, Surface.ROTATION_90}; final UdfpsOverlayParams oldParams = new UdfpsOverlayParams(sensorBounds[0], - displayWidth[0], displayHeight[0], scaleFactor[0], rotation[0]); + sensorBounds[0], displayWidth[0], displayHeight[0], scaleFactor[0], rotation[0]); for (int i1 = 0; i1 <= 1; ++i1) { for (int i2 = 0; i2 <= 1; ++i2) { @@ -422,8 +422,8 @@ public class UdfpsControllerTest extends SysuiTestCase { for (int i4 = 0; i4 <= 1; ++i4) { for (int i5 = 0; i5 <= 1; ++i5) { final UdfpsOverlayParams newParams = new UdfpsOverlayParams( - sensorBounds[i1], displayWidth[i2], displayHeight[i3], - scaleFactor[i4], rotation[i5]); + sensorBounds[i1], sensorBounds[i1], displayWidth[i2], + displayHeight[i3], scaleFactor[i4], rotation[i5]); if (newParams.equals(oldParams)) { continue; @@ -466,8 +466,8 @@ public class UdfpsControllerTest extends SysuiTestCase { // Initialize the overlay. mUdfpsController.updateOverlayParams(TEST_UDFPS_SENSOR_ID, - new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, - rotation)); + new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight, + scaleFactor, rotation)); // Show the overlay. mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, TEST_UDFPS_SENSOR_ID, @@ -477,8 +477,8 @@ public class UdfpsControllerTest extends SysuiTestCase { // Update overlay with the same parameters. mUdfpsController.updateOverlayParams(TEST_UDFPS_SENSOR_ID, - new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, - rotation)); + new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight, + scaleFactor, rotation)); mFgExecutor.runAllReady(); // Ensure the overlay was not recreated. @@ -525,8 +525,8 @@ public class UdfpsControllerTest extends SysuiTestCase { // Test ROTATION_0 mUdfpsController.updateOverlayParams(TEST_UDFPS_SENSOR_ID, - new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, - Surface.ROTATION_0)); + new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight, + scaleFactor, Surface.ROTATION_0)); MotionEvent event = obtainMotionEvent(ACTION_DOWN, displayWidth, displayHeight, touchMinor, touchMajor); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); @@ -542,8 +542,8 @@ public class UdfpsControllerTest extends SysuiTestCase { // Test ROTATION_90 reset(mAlternateTouchProvider); mUdfpsController.updateOverlayParams(TEST_UDFPS_SENSOR_ID, - new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, - Surface.ROTATION_90)); + new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight, + scaleFactor, Surface.ROTATION_90)); event = obtainMotionEvent(ACTION_DOWN, displayHeight, 0, touchMinor, touchMajor); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); mBiometricsExecutor.runAllReady(); @@ -558,8 +558,8 @@ public class UdfpsControllerTest extends SysuiTestCase { // Test ROTATION_270 reset(mAlternateTouchProvider); mUdfpsController.updateOverlayParams(TEST_UDFPS_SENSOR_ID, - new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, - Surface.ROTATION_270)); + new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight, + scaleFactor, Surface.ROTATION_270)); event = obtainMotionEvent(ACTION_DOWN, 0, displayWidth, touchMinor, touchMajor); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); mBiometricsExecutor.runAllReady(); @@ -574,8 +574,8 @@ public class UdfpsControllerTest extends SysuiTestCase { // Test ROTATION_180 reset(mAlternateTouchProvider); mUdfpsController.updateOverlayParams(TEST_UDFPS_SENSOR_ID, - new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, - Surface.ROTATION_180)); + new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight, + scaleFactor, Surface.ROTATION_180)); // ROTATION_180 is not supported. It should be treated like ROTATION_0. event = obtainMotionEvent(ACTION_DOWN, displayWidth, displayHeight, touchMinor, touchMajor); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsViewTest.kt index b78c06391057..ac936e1a77c5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsViewTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsViewTest.kt @@ -68,7 +68,8 @@ class UdfpsViewTest : SysuiTestCase() { view = LayoutInflater.from(context).inflate(R.layout.udfps_view, null) as UdfpsView view.animationViewController = animationViewController val sensorBounds = SensorLocationInternal("", SENSOR_X, SENSOR_Y, SENSOR_RADIUS).rect - view.overlayParams = UdfpsOverlayParams(sensorBounds, 1920, 1080, 1f, Surface.ROTATION_0) + view.overlayParams = UdfpsOverlayParams(sensorBounds, sensorBounds, 1920, + 1080, 1f, Surface.ROTATION_0) view.setUdfpsDisplayModeProvider(hbmProvider) ViewUtils.attachView(view) } @@ -133,7 +134,8 @@ class UdfpsViewTest : SysuiTestCase() { @Test fun isNotWithinSensorArea() { whenever(animationViewController.touchTranslation).thenReturn(PointF(0f, 0f)) - assertThat(view.isWithinSensorArea(SENSOR_RADIUS * 2.5f, SENSOR_RADIUS.toFloat())).isFalse() + assertThat(view.isWithinSensorArea(SENSOR_RADIUS * 2.5f, SENSOR_RADIUS.toFloat())) + .isFalse() assertThat(view.isWithinSensorArea(SENSOR_RADIUS.toFloat(), SENSOR_RADIUS * 2.5f)).isFalse() } diff --git a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java index d96ca91e36bd..677c7bdcffe1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java @@ -40,6 +40,7 @@ import com.android.systemui.broadcast.BroadcastSender; import com.android.systemui.screenshot.TimeoutHandler; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -47,6 +48,7 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +@Ignore("b/254635291") @SmallTest @RunWith(AndroidJUnit4.class) public class ClipboardOverlayControllerTest extends SysuiTestCase { diff --git a/packages/SystemUI/tests/src/com/android/systemui/decor/RoundedCornerResDelegateTest.kt b/packages/SystemUI/tests/src/com/android/systemui/decor/RoundedCornerResDelegateTest.kt index f93336134900..93a1868b72f5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/decor/RoundedCornerResDelegateTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/decor/RoundedCornerResDelegateTest.kt @@ -24,12 +24,11 @@ import androidx.annotation.DrawableRes import androidx.test.filters.SmallTest import com.android.internal.R as InternalR import com.android.systemui.R as SystemUIR -import com.android.systemui.tests.R import com.android.systemui.SysuiTestCase +import com.android.systemui.tests.R import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test - import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.MockitoAnnotations @@ -102,14 +101,11 @@ class RoundedCornerResDelegateTest : SysuiTestCase() { assertEquals(Size(3, 3), roundedCornerResDelegate.topRoundedSize) assertEquals(Size(4, 4), roundedCornerResDelegate.bottomRoundedSize) - setupResources(radius = 100, - roundedTopDrawable = getTestsDrawable(R.drawable.rounded4px), - roundedBottomDrawable = getTestsDrawable(R.drawable.rounded5px)) - + roundedCornerResDelegate.physicalPixelDisplaySizeRatio = 2f roundedCornerResDelegate.updateDisplayUniqueId(null, 1) - assertEquals(Size(4, 4), roundedCornerResDelegate.topRoundedSize) - assertEquals(Size(5, 5), roundedCornerResDelegate.bottomRoundedSize) + assertEquals(Size(6, 6), roundedCornerResDelegate.topRoundedSize) + assertEquals(Size(8, 8), roundedCornerResDelegate.bottomRoundedSize) } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java index 6a55a60c2fda..5bbd8109d8f9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java @@ -16,6 +16,9 @@ package com.android.systemui.doze; +import static android.content.res.Configuration.UI_MODE_NIGHT_YES; +import static android.content.res.Configuration.UI_MODE_TYPE_CAR; + import static com.android.systemui.doze.DozeMachine.State.DOZE; import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD; import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_DOCKED; @@ -38,16 +41,17 @@ import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.app.UiModeManager; import android.content.res.Configuration; import android.hardware.display.AmbientDisplayConfiguration; import android.testing.AndroidTestingRunner; import android.testing.UiThreadTest; import android.view.Display; +import androidx.annotation.NonNull; import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; @@ -78,25 +82,30 @@ public class DozeMachineTest extends SysuiTestCase { @Mock private DozeHost mHost; @Mock - private UiModeManager mUiModeManager; + private DozeMachine.Part mPartMock; + @Mock + private DozeMachine.Part mAnotherPartMock; private DozeServiceFake mServiceFake; private WakeLockFake mWakeLockFake; - private AmbientDisplayConfiguration mConfigMock; - private DozeMachine.Part mPartMock; + private AmbientDisplayConfiguration mAmbientDisplayConfigMock; @Before public void setUp() { MockitoAnnotations.initMocks(this); mServiceFake = new DozeServiceFake(); mWakeLockFake = new WakeLockFake(); - mConfigMock = mock(AmbientDisplayConfiguration.class); - mPartMock = mock(DozeMachine.Part.class); + mAmbientDisplayConfigMock = mock(AmbientDisplayConfiguration.class); when(mDockManager.isDocked()).thenReturn(false); when(mDockManager.isHidden()).thenReturn(false); - mMachine = new DozeMachine(mServiceFake, mConfigMock, mWakeLockFake, - mWakefulnessLifecycle, mUiModeManager, mDozeLog, mDockManager, - mHost, new DozeMachine.Part[]{mPartMock}); + mMachine = new DozeMachine(mServiceFake, + mAmbientDisplayConfigMock, + mWakeLockFake, + mWakefulnessLifecycle, + mDozeLog, + mDockManager, + mHost, + new DozeMachine.Part[]{mPartMock, mAnotherPartMock}); } @Test @@ -108,7 +117,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testInitialize_goesToDoze() { - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); mMachine.requestState(INITIALIZED); @@ -118,7 +127,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testInitialize_goesToAod() { - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); mMachine.requestState(INITIALIZED); @@ -138,7 +147,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testInitialize_afterDockPaused_goesToDoze() { - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); when(mDockManager.isDocked()).thenReturn(true); when(mDockManager.isHidden()).thenReturn(true); @@ -151,7 +160,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testInitialize_alwaysOnSuppressed_alwaysOnDisabled_goesToDoze() { when(mHost.isAlwaysOnSuppressed()).thenReturn(true); - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); mMachine.requestState(INITIALIZED); @@ -162,7 +171,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testInitialize_alwaysOnSuppressed_alwaysOnEnabled_goesToDoze() { when(mHost.isAlwaysOnSuppressed()).thenReturn(true); - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); mMachine.requestState(INITIALIZED); @@ -184,7 +193,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testInitialize_alwaysOnSuppressed_alwaysOnDisabled_afterDockPaused_goesToDoze() { when(mHost.isAlwaysOnSuppressed()).thenReturn(true); - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); when(mDockManager.isDocked()).thenReturn(true); when(mDockManager.isHidden()).thenReturn(true); @@ -197,7 +206,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testInitialize_alwaysOnSuppressed_alwaysOnEnabled_afterDockPaused_goesToDoze() { when(mHost.isAlwaysOnSuppressed()).thenReturn(true); - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); when(mDockManager.isDocked()).thenReturn(true); when(mDockManager.isHidden()).thenReturn(true); @@ -209,7 +218,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testPulseDone_goesToDoze() { - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false); mMachine.requestState(INITIALIZED); mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION); mMachine.requestState(DOZE_PULSING); @@ -222,7 +231,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testPulseDone_goesToAoD() { - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); mMachine.requestState(INITIALIZED); mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION); mMachine.requestState(DOZE_PULSING); @@ -236,7 +245,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testPulseDone_alwaysOnSuppressed_goesToSuppressed() { when(mHost.isAlwaysOnSuppressed()).thenReturn(true); - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); mMachine.requestState(INITIALIZED); mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION); mMachine.requestState(DOZE_PULSING); @@ -287,7 +296,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testPulseDone_afterDockPaused_goesToDoze() { - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); when(mDockManager.isDocked()).thenReturn(true); when(mDockManager.isHidden()).thenReturn(true); mMachine.requestState(INITIALIZED); @@ -303,7 +312,7 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testPulseDone_alwaysOnSuppressed_afterDockPaused_goesToDoze() { when(mHost.isAlwaysOnSuppressed()).thenReturn(true); - when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); + when(mAmbientDisplayConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true); when(mDockManager.isDocked()).thenReturn(true); when(mDockManager.isHidden()).thenReturn(true); mMachine.requestState(INITIALIZED); @@ -471,7 +480,9 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testTransitionToInitialized_carModeIsEnabled() { - when(mUiModeManager.getCurrentModeType()).thenReturn(Configuration.UI_MODE_TYPE_CAR); + Configuration configuration = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(configuration); mMachine.requestState(INITIALIZED); verify(mPartMock).transitionTo(UNINITIALIZED, INITIALIZED); @@ -481,7 +492,9 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testTransitionToFinish_carModeIsEnabled() { - when(mUiModeManager.getCurrentModeType()).thenReturn(Configuration.UI_MODE_TYPE_CAR); + Configuration configuration = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(configuration); mMachine.requestState(INITIALIZED); mMachine.requestState(FINISH); @@ -490,7 +503,9 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testDozeToDozeSuspendTriggers_carModeIsEnabled() { - when(mUiModeManager.getCurrentModeType()).thenReturn(Configuration.UI_MODE_TYPE_CAR); + Configuration configuration = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(configuration); mMachine.requestState(INITIALIZED); mMachine.requestState(DOZE); @@ -499,7 +514,9 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testDozeAoDToDozeSuspendTriggers_carModeIsEnabled() { - when(mUiModeManager.getCurrentModeType()).thenReturn(Configuration.UI_MODE_TYPE_CAR); + Configuration configuration = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(configuration); mMachine.requestState(INITIALIZED); mMachine.requestState(DOZE_AOD); @@ -508,7 +525,9 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testDozePulsingBrightDozeSuspendTriggers_carModeIsEnabled() { - when(mUiModeManager.getCurrentModeType()).thenReturn(Configuration.UI_MODE_TYPE_CAR); + Configuration configuration = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(configuration); mMachine.requestState(INITIALIZED); mMachine.requestState(DOZE_PULSING_BRIGHT); @@ -517,7 +536,9 @@ public class DozeMachineTest extends SysuiTestCase { @Test public void testDozeAodDockedDozeSuspendTriggers_carModeIsEnabled() { - when(mUiModeManager.getCurrentModeType()).thenReturn(Configuration.UI_MODE_TYPE_CAR); + Configuration configuration = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(configuration); mMachine.requestState(INITIALIZED); mMachine.requestState(DOZE_AOD_DOCKED); @@ -525,7 +546,35 @@ public class DozeMachineTest extends SysuiTestCase { } @Test + public void testOnConfigurationChanged_propagatesUiModeTypeToParts() { + Configuration newConfig = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(newConfig); + + verify(mPartMock).onUiModeTypeChanged(UI_MODE_TYPE_CAR); + verify(mAnotherPartMock).onUiModeTypeChanged(UI_MODE_TYPE_CAR); + } + + @Test + public void testOnConfigurationChanged_propagatesOnlyUiModeChangesToParts() { + Configuration newConfig = configWithCarNightUiMode(); + + mMachine.onConfigurationChanged(newConfig); + mMachine.onConfigurationChanged(newConfig); + + verify(mPartMock, times(1)).onUiModeTypeChanged(UI_MODE_TYPE_CAR); + verify(mAnotherPartMock, times(1)).onUiModeTypeChanged(UI_MODE_TYPE_CAR); + } + + @Test public void testDozeSuppressTriggers_screenState() { assertEquals(Display.STATE_OFF, DOZE_SUSPEND_TRIGGERS.screenState(null)); } + + @NonNull + private Configuration configWithCarNightUiMode() { + Configuration configuration = Configuration.EMPTY; + configuration.uiMode = UI_MODE_TYPE_CAR | UI_MODE_NIGHT_YES; + return configuration; + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressorTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressorTest.java index 0f29dcd5a939..32b994538e12 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressorTest.java @@ -10,14 +10,14 @@ * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions andatest + * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.doze; -import static android.app.UiModeManager.ACTION_ENTER_CAR_MODE; -import static android.app.UiModeManager.ACTION_EXIT_CAR_MODE; +import static android.content.res.Configuration.UI_MODE_TYPE_CAR; +import static android.content.res.Configuration.UI_MODE_TYPE_NORMAL; import static com.android.systemui.doze.DozeMachine.State.DOZE; import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD; @@ -26,17 +26,16 @@ import static com.android.systemui.doze.DozeMachine.State.FINISH; import static com.android.systemui.doze.DozeMachine.State.INITIALIZED; import static com.android.systemui.doze.DozeMachine.State.UNINITIALIZED; -import static org.hamcrest.Matchers.containsInAnyOrder; -import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyInt; +import static org.mockito.Mockito.atLeastOnce; +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.app.UiModeManager; -import android.content.BroadcastReceiver; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.res.Configuration; import android.hardware.display.AmbientDisplayConfiguration; import android.testing.AndroidTestingRunner; import android.testing.UiThreadTest; @@ -44,13 +43,13 @@ import android.testing.UiThreadTest; import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; -import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.statusbar.phone.BiometricUnlockController; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.AdditionalMatchers; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; @@ -71,10 +70,6 @@ public class DozeSuppressorTest extends SysuiTestCase { @Mock private AmbientDisplayConfiguration mConfig; @Mock - private BroadcastDispatcher mBroadcastDispatcher; - @Mock - private UiModeManager mUiModeManager; - @Mock private Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy; @Mock private BiometricUnlockController mBiometricUnlockController; @@ -83,13 +78,6 @@ public class DozeSuppressorTest extends SysuiTestCase { private DozeMachine mDozeMachine; @Captor - private ArgumentCaptor<BroadcastReceiver> mBroadcastReceiverCaptor; - @Captor - private ArgumentCaptor<IntentFilter> mIntentFilterCaptor; - private BroadcastReceiver mBroadcastReceiver; - private IntentFilter mIntentFilter; - - @Captor private ArgumentCaptor<DozeHost.Callback> mDozeHostCaptor; private DozeHost.Callback mDozeHostCallback; @@ -106,8 +94,6 @@ public class DozeSuppressorTest extends SysuiTestCase { mDozeHost, mConfig, mDozeLog, - mBroadcastDispatcher, - mUiModeManager, mBiometricUnlockControllerLazy); mDozeSuppressor.setDozeMachine(mDozeMachine); @@ -122,36 +108,35 @@ public class DozeSuppressorTest extends SysuiTestCase { public void testRegistersListenersOnInitialized_unregisteredOnFinish() { // check that receivers and callbacks registered mDozeSuppressor.transitionTo(UNINITIALIZED, INITIALIZED); - captureBroadcastReceiver(); captureDozeHostCallback(); // check that receivers and callbacks are unregistered mDozeSuppressor.transitionTo(INITIALIZED, FINISH); - verify(mBroadcastDispatcher).unregisterReceiver(mBroadcastReceiver); verify(mDozeHost).removeCallback(mDozeHostCallback); } @Test public void testSuspendTriggersDoze_carMode() { // GIVEN car mode - when(mUiModeManager.getCurrentModeType()).thenReturn(Configuration.UI_MODE_TYPE_CAR); + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); // WHEN dozing begins mDozeSuppressor.transitionTo(UNINITIALIZED, INITIALIZED); // THEN doze continues with all doze triggers disabled. - verify(mDozeMachine).requestState(DOZE_SUSPEND_TRIGGERS); + verify(mDozeMachine, atLeastOnce()).requestState(DOZE_SUSPEND_TRIGGERS); + verify(mDozeMachine, never()) + .requestState(AdditionalMatchers.not(eq(DOZE_SUSPEND_TRIGGERS))); } @Test public void testSuspendTriggersDoze_enterCarMode() { // GIVEN currently dozing mDozeSuppressor.transitionTo(UNINITIALIZED, INITIALIZED); - captureBroadcastReceiver(); mDozeSuppressor.transitionTo(INITIALIZED, DOZE); // WHEN car mode entered - mBroadcastReceiver.onReceive(null, new Intent(ACTION_ENTER_CAR_MODE)); + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); // THEN doze continues with all doze triggers disabled. verify(mDozeMachine).requestState(DOZE_SUSPEND_TRIGGERS); @@ -160,13 +145,13 @@ public class DozeSuppressorTest extends SysuiTestCase { @Test public void testDozeResume_exitCarMode() { // GIVEN currently suspended, with AOD not enabled + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); when(mConfig.alwaysOnEnabled(anyInt())).thenReturn(false); mDozeSuppressor.transitionTo(UNINITIALIZED, INITIALIZED); - captureBroadcastReceiver(); mDozeSuppressor.transitionTo(INITIALIZED, DOZE_SUSPEND_TRIGGERS); // WHEN exiting car mode - mBroadcastReceiver.onReceive(null, new Intent(ACTION_EXIT_CAR_MODE)); + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_NORMAL); // THEN doze is resumed verify(mDozeMachine).requestState(DOZE); @@ -175,19 +160,53 @@ public class DozeSuppressorTest extends SysuiTestCase { @Test public void testDozeAoDResume_exitCarMode() { // GIVEN currently suspended, with AOD not enabled + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); when(mConfig.alwaysOnEnabled(anyInt())).thenReturn(true); mDozeSuppressor.transitionTo(UNINITIALIZED, INITIALIZED); - captureBroadcastReceiver(); mDozeSuppressor.transitionTo(INITIALIZED, DOZE_SUSPEND_TRIGGERS); // WHEN exiting car mode - mBroadcastReceiver.onReceive(null, new Intent(ACTION_EXIT_CAR_MODE)); + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_NORMAL); // THEN doze AOD is resumed verify(mDozeMachine).requestState(DOZE_AOD); } @Test + public void testUiModeDoesNotChange_noStateTransition() { + mDozeSuppressor.transitionTo(UNINITIALIZED, INITIALIZED); + clearInvocations(mDozeMachine); + + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); + + verify(mDozeMachine, times(1)).requestState(DOZE_SUSPEND_TRIGGERS); + verify(mDozeMachine, never()) + .requestState(AdditionalMatchers.not(eq(DOZE_SUSPEND_TRIGGERS))); + } + + @Test + public void testUiModeTypeChange_whenDozeMachineIsNotReady_doesNotDoAnything() { + when(mDozeMachine.isUninitializedOrFinished()).thenReturn(true); + + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); + + verify(mDozeMachine, never()).requestState(any()); + } + + @Test + public void testUiModeTypeChange_CarModeEnabledAndDozeMachineNotReady_suspendsTriggersAfter() { + when(mDozeMachine.isUninitializedOrFinished()).thenReturn(true); + mDozeSuppressor.onUiModeTypeChanged(UI_MODE_TYPE_CAR); + verify(mDozeMachine, never()).requestState(any()); + + mDozeSuppressor.transitionTo(UNINITIALIZED, INITIALIZED); + + verify(mDozeMachine, times(1)).requestState(DOZE_SUSPEND_TRIGGERS); + } + + @Test public void testEndDoze_unprovisioned() { // GIVEN device unprovisioned when(mDozeHost.isProvisioned()).thenReturn(false); @@ -276,14 +295,4 @@ public class DozeSuppressorTest extends SysuiTestCase { verify(mDozeHost).addCallback(mDozeHostCaptor.capture()); mDozeHostCallback = mDozeHostCaptor.getValue(); } - - private void captureBroadcastReceiver() { - verify(mBroadcastDispatcher).registerReceiver(mBroadcastReceiverCaptor.capture(), - mIntentFilterCaptor.capture()); - mBroadcastReceiver = mBroadcastReceiverCaptor.getValue(); - mIntentFilter = mIntentFilterCaptor.getValue(); - assertEquals(2, mIntentFilter.countActions()); - org.hamcrest.MatcherAssert.assertThat(() -> mIntentFilter.actionsIterator(), - containsInAnyOrder(ACTION_ENTER_CAR_MODE, ACTION_EXIT_CAR_MODE)); - } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/dump/DumpHandlerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/dump/DumpHandlerTest.kt index fc672016a886..65b44a14d2ad 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/dump/DumpHandlerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/dump/DumpHandlerTest.kt @@ -17,11 +17,13 @@ package com.android.systemui.dump import androidx.test.filters.SmallTest +import com.android.systemui.CoreStartable import com.android.systemui.Dumpable import com.android.systemui.SysuiTestCase -import com.android.systemui.log.LogBuffer +import com.android.systemui.plugins.log.LogBuffer import com.android.systemui.shared.system.UncaughtExceptionPreHandlerManager import com.android.systemui.util.mockito.any +import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test import org.mockito.Mock @@ -30,6 +32,8 @@ import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import java.io.PrintWriter +import java.io.StringWriter +import javax.inject.Provider @SmallTest class DumpHandlerTest : SysuiTestCase() { @@ -66,7 +70,9 @@ class DumpHandlerTest : SysuiTestCase() { mContext, dumpManager, logBufferEulogizer, - mutableMapOf(), + mutableMapOf( + EmptyCoreStartable::class.java to Provider { EmptyCoreStartable() } + ), exceptionHandlerManager ) } @@ -154,4 +160,20 @@ class DumpHandlerTest : SysuiTestCase() { verify(buffer1).dump(pw, 0) verify(buffer2).dump(pw, 0) } -}
\ No newline at end of file + + @Test + fun testConfigDump() { + // GIVEN a StringPrintWriter + val stringWriter = StringWriter() + val spw = PrintWriter(stringWriter) + + // When a config dump is requested + dumpHandler.dump(spw, arrayOf("config")) + + assertThat(stringWriter.toString()).contains(EmptyCoreStartable::class.java.simpleName) + } + + private class EmptyCoreStartable : CoreStartable { + override fun start() {} + } +} 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 bd029a727ee3..64547f4463d1 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/dump/LogBufferHelper.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/dump/LogBufferHelper.kt @@ -16,9 +16,9 @@ package com.android.systemui.dump -import com.android.systemui.log.LogBuffer -import com.android.systemui.log.LogLevel -import com.android.systemui.log.LogcatEchoTracker +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogLevel +import com.android.systemui.plugins.log.LogcatEchoTracker /** * Creates a LogBuffer that will echo everything to logcat, which is useful for debugging tests. diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepositoryTest.kt new file mode 100644 index 000000000000..1b34100b1cef --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardTransitionRepositoryTest.kt @@ -0,0 +1,259 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.keyguard.data.repository + +import android.animation.AnimationHandler.AnimationFrameCallbackProvider +import android.animation.ValueAnimator +import android.util.Log +import android.util.Log.TerribleFailure +import android.util.Log.TerribleFailureHandler +import android.view.Choreographer.FrameCallback +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.animation.Interpolators +import com.android.systemui.keyguard.shared.model.KeyguardState.AOD +import com.android.systemui.keyguard.shared.model.KeyguardState.BOUNCER +import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN +import com.android.systemui.keyguard.shared.model.TransitionInfo +import com.android.systemui.keyguard.shared.model.TransitionState +import com.android.systemui.keyguard.shared.model.TransitionStep +import com.google.common.truth.Truth.assertThat +import java.math.BigDecimal +import java.math.RoundingMode +import java.util.UUID +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.yield +import org.junit.After +import org.junit.Assert.fail +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@SmallTest +@RunWith(JUnit4::class) +class KeyguardTransitionRepositoryTest : SysuiTestCase() { + + private lateinit var underTest: KeyguardTransitionRepository + private lateinit var oldWtfHandler: TerribleFailureHandler + private lateinit var wtfHandler: WtfHandler + + @Before + fun setUp() { + underTest = KeyguardTransitionRepository() + wtfHandler = WtfHandler() + oldWtfHandler = Log.setWtfHandler(wtfHandler) + } + + @After + fun tearDown() { + oldWtfHandler?.let { Log.setWtfHandler(it) } + } + + @Test + fun `startTransition runs animator to completion`() = + runBlocking(IMMEDIATE) { + val (animator, provider) = setupAnimator(this) + + val steps = mutableListOf<TransitionStep>() + val job = underTest.transition(AOD, LOCKSCREEN).onEach { steps.add(it) }.launchIn(this) + + underTest.startTransition(TransitionInfo(OWNER_NAME, AOD, LOCKSCREEN, animator)) + + val startTime = System.currentTimeMillis() + while (animator.isRunning()) { + yield() + if (System.currentTimeMillis() - startTime > MAX_TEST_DURATION) { + fail("Failed test due to excessive runtime of: $MAX_TEST_DURATION") + } + } + + assertSteps(steps, listWithStep(BigDecimal(.1))) + + job.cancel() + provider.stop() + } + + @Test + fun `startTransition called during another transition fails`() { + underTest.startTransition(TransitionInfo(OWNER_NAME, AOD, LOCKSCREEN, null)) + underTest.startTransition(TransitionInfo(OWNER_NAME, LOCKSCREEN, BOUNCER, null)) + + assertThat(wtfHandler.failed).isTrue() + } + + @Test + fun `Null animator enables manual control with updateTransition`() = + runBlocking(IMMEDIATE) { + val steps = mutableListOf<TransitionStep>() + val job = underTest.transition(AOD, LOCKSCREEN).onEach { steps.add(it) }.launchIn(this) + + val uuid = + underTest.startTransition( + TransitionInfo( + ownerName = OWNER_NAME, + from = AOD, + to = LOCKSCREEN, + animator = null, + ) + ) + + checkNotNull(uuid).let { + underTest.updateTransition(it, 0.5f, TransitionState.RUNNING) + underTest.updateTransition(it, 1f, TransitionState.FINISHED) + } + + assertThat(steps.size).isEqualTo(3) + assertThat(steps[0]) + .isEqualTo(TransitionStep(AOD, LOCKSCREEN, 0f, TransitionState.STARTED)) + assertThat(steps[1]) + .isEqualTo(TransitionStep(AOD, LOCKSCREEN, 0.5f, TransitionState.RUNNING)) + assertThat(steps[2]) + .isEqualTo(TransitionStep(AOD, LOCKSCREEN, 1f, TransitionState.FINISHED)) + job.cancel() + } + + @Test + fun `Attempt to manually update transition with invalid UUID throws exception`() { + underTest.updateTransition(UUID.randomUUID(), 0f, TransitionState.RUNNING) + assertThat(wtfHandler.failed).isTrue() + } + + @Test + fun `Attempt to manually update transition after FINISHED state throws exception`() { + val uuid = + underTest.startTransition( + TransitionInfo( + ownerName = OWNER_NAME, + from = AOD, + to = LOCKSCREEN, + animator = null, + ) + ) + + checkNotNull(uuid).let { + underTest.updateTransition(it, 1f, TransitionState.FINISHED) + underTest.updateTransition(it, 0.5f, TransitionState.RUNNING) + } + assertThat(wtfHandler.failed).isTrue() + } + + private fun listWithStep(step: BigDecimal): List<BigDecimal> { + val steps = mutableListOf<BigDecimal>() + + var i = BigDecimal.ZERO + while (i.compareTo(BigDecimal.ONE) <= 0) { + steps.add(i) + i = (i + step).setScale(2, RoundingMode.HALF_UP) + } + + return steps + } + + private fun assertSteps(steps: List<TransitionStep>, fractions: List<BigDecimal>) { + // + 2 accounts for start and finish of automated transition + assertThat(steps.size).isEqualTo(fractions.size + 2) + + assertThat(steps[0]).isEqualTo(TransitionStep(AOD, LOCKSCREEN, 0f, TransitionState.STARTED)) + fractions.forEachIndexed { index, fraction -> + assertThat(steps[index + 1]) + .isEqualTo( + TransitionStep(AOD, LOCKSCREEN, fraction.toFloat(), TransitionState.RUNNING) + ) + } + assertThat(steps[steps.size - 1]) + .isEqualTo(TransitionStep(AOD, LOCKSCREEN, 1f, TransitionState.FINISHED)) + + assertThat(wtfHandler.failed).isFalse() + } + + private fun setupAnimator( + scope: CoroutineScope + ): Pair<ValueAnimator, TestFrameCallbackProvider> { + val animator = + ValueAnimator().apply { + setInterpolator(Interpolators.LINEAR) + setDuration(ANIMATION_DURATION) + } + + val provider = TestFrameCallbackProvider(animator, scope) + provider.start() + + return Pair(animator, provider) + } + + /** Gives direct control over ValueAnimator. See [AnimationHandler] */ + private class TestFrameCallbackProvider( + private val animator: ValueAnimator, + private val scope: CoroutineScope, + ) : AnimationFrameCallbackProvider { + + private var frameCount = 1L + private var frames = MutableStateFlow(Pair<Long, FrameCallback?>(0L, null)) + private var job: Job? = null + + fun start() { + animator.getAnimationHandler().setProvider(this) + + job = + scope.launch { + frames.collect { + // Delay is required for AnimationHandler to properly register a callback + delay(1) + val (frameNumber, callback) = it + callback?.doFrame(frameNumber) + } + } + } + + fun stop() { + job?.cancel() + animator.getAnimationHandler().setProvider(null) + } + + override fun postFrameCallback(cb: FrameCallback) { + frames.value = Pair(++frameCount, cb) + } + override fun postCommitCallback(runnable: Runnable) {} + override fun getFrameTime() = frameCount + override fun getFrameDelay() = 1L + override fun setFrameDelay(delay: Long) {} + } + + private class WtfHandler : TerribleFailureHandler { + var failed = false + override fun onTerribleFailure(tag: String, what: TerribleFailure, system: Boolean) { + failed = true + } + } + + companion object { + private const val MAX_TEST_DURATION = 100L + private const val ANIMATION_DURATION = 10L + private const val OWNER_NAME = "Test" + private val IMMEDIATE = Dispatchers.Main.immediate + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaCarouselControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaCarouselControllerTest.kt index cc6874ba3ba7..7e0be6dd1815 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaCarouselControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaCarouselControllerTest.kt @@ -76,7 +76,6 @@ class MediaCarouselControllerTest : SysuiTestCase() { @Mock lateinit var dumpManager: DumpManager @Mock lateinit var logger: MediaUiEventLogger @Mock lateinit var debugLogger: MediaCarouselControllerLogger - @Mock lateinit var mediaPlayer: MediaControlPanel @Mock lateinit var mediaViewController: MediaViewController @Mock lateinit var smartspaceMediaData: SmartspaceMediaData @Captor lateinit var listener: ArgumentCaptor<MediaDataManager.Listener> @@ -107,8 +106,8 @@ class MediaCarouselControllerTest : SysuiTestCase() { verify(mediaDataManager).addListener(capture(listener)) verify(visualStabilityProvider) .addPersistentReorderingAllowedListener(capture(visualStabilityCallback)) - whenever(mediaControlPanelFactory.get()).thenReturn(mediaPlayer) - whenever(mediaPlayer.mediaViewController).thenReturn(mediaViewController) + whenever(mediaControlPanelFactory.get()).thenReturn(panel) + whenever(panel.mediaViewController).thenReturn(mediaViewController) whenever(mediaDataManager.smartspaceMediaData).thenReturn(smartspaceMediaData) MediaPlayerData.clear() } @@ -189,6 +188,10 @@ class MediaCarouselControllerTest : SysuiTestCase() { for ((index, key) in MediaPlayerData.playerKeys().withIndex()) { assertEquals(expected.get(index).first, key.data.notificationKey) } + + for ((index, key) in MediaPlayerData.visiblePlayerKeys().withIndex()) { + assertEquals(expected.get(index).first, key.data.notificationKey) + } } @Test @@ -204,6 +207,22 @@ class MediaCarouselControllerTest : SysuiTestCase() { } @Test + fun testOrderWithSmartspace_prioritized_updatingVisibleMediaPlayers() { + testPlayerOrdering() + + // If smartspace is prioritized + listener.value.onSmartspaceMediaDataLoaded( + SMARTSPACE_KEY, + EMPTY_SMARTSPACE_MEDIA_DATA.copy(isActive = true), + true + ) + + // Then it should be shown immediately after any actively playing controls + assertTrue(MediaPlayerData.playerKeys().elementAt(2).isSsMediaRec) + assertTrue(MediaPlayerData.visiblePlayerKeys().elementAt(2).isSsMediaRec) + } + + @Test fun testOrderWithSmartspace_notPrioritized() { testPlayerOrdering() @@ -217,6 +236,31 @@ class MediaCarouselControllerTest : SysuiTestCase() { } @Test + fun testPlayingExistingMediaPlayerFromCarousel_visibleMediaPlayersNotUpdated() { + testPlayerOrdering() + // playing paused player + listener.value.onMediaDataLoaded("paused local", + "paused local", + DATA.copy(active = true, isPlaying = true, + playbackLocation = MediaData.PLAYBACK_LOCAL, resumption = false)) + listener.value.onMediaDataLoaded("playing local", + "playing local", + DATA.copy(active = true, isPlaying = false, + playbackLocation = MediaData.PLAYBACK_LOCAL, resumption = true) + ) + + assertEquals( + MediaPlayerData.getMediaPlayerIndex("paused local"), + mediaCarouselController.mediaCarouselScrollHandler.visibleMediaIndex + ) + // paused player order should stays the same in visibleMediaPLayer map. + // paused player order should be first in mediaPlayer map. + assertEquals( + MediaPlayerData.visiblePlayerKeys().elementAt(3), + MediaPlayerData.playerKeys().elementAt(0) + ) + } + @Test fun testSwipeDismiss_logged() { mediaCarouselController.mediaCarouselScrollHandler.dismissCallback.invoke() @@ -295,7 +339,7 @@ class MediaCarouselControllerTest : SysuiTestCase() { // adding a media recommendation card. listener.value.onSmartspaceMediaDataLoaded(SMARTSPACE_KEY, EMPTY_SMARTSPACE_MEDIA_DATA, false) - mediaCarouselController.shouldScrollToActivePlayer = true + mediaCarouselController.shouldScrollToKey = true // switching between media players. listener.value.onMediaDataLoaded("playing local", "playing local", @@ -315,8 +359,11 @@ class MediaCarouselControllerTest : SysuiTestCase() { @Test fun testMediaLoadedFromRecommendationCard_ScrollToActivePlayer() { - MediaPlayerData.addMediaRecommendation(SMARTSPACE_KEY, EMPTY_SMARTSPACE_MEDIA_DATA, panel, - false, clock) + listener.value.onSmartspaceMediaDataLoaded( + SMARTSPACE_KEY, + EMPTY_SMARTSPACE_MEDIA_DATA.copy(packageName = "PACKAGE_NAME", isActive = true), + false + ) listener.value.onMediaDataLoaded("playing local", null, DATA.copy(active = true, isPlaying = true, @@ -332,10 +379,12 @@ class MediaCarouselControllerTest : SysuiTestCase() { // Replaying the same media player one more time. // And check that the card stays in its position. + mediaCarouselController.shouldScrollToKey = true listener.value.onMediaDataLoaded("playing local", null, DATA.copy(active = true, isPlaying = true, - playbackLocation = MediaData.PLAYBACK_LOCAL, resumption = false) + playbackLocation = MediaData.PLAYBACK_LOCAL, resumption = false, + packageName = "PACKAGE_NAME") ) playerIndex = MediaPlayerData.getMediaPlayerIndex("playing local") assertEquals(playerIndex, 0) diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttLoggerTest.kt index 1078cdaa57c4..e009e8651f2a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttLoggerTest.kt @@ -19,9 +19,9 @@ package com.android.systemui.media.taptotransfer.common import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager -import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory -import com.android.systemui.log.LogcatEchoTracker +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogcatEchoTracker import com.google.common.truth.Truth.assertThat import java.io.PrintWriter import java.io.StringWriter diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttUtilsTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttUtilsTest.kt index 7c83cb74bb77..6a4c0f60466d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttUtilsTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttUtilsTest.kt @@ -22,6 +22,9 @@ import android.graphics.drawable.Drawable import androidx.test.filters.SmallTest import com.android.systemui.R import com.android.systemui.SysuiTestCase +import com.android.systemui.common.shared.model.ContentDescription +import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription +import com.android.systemui.common.shared.model.Icon import com.android.systemui.util.mockito.any import com.google.common.truth.Truth.assertThat import org.junit.Before @@ -62,6 +65,34 @@ class MediaTttUtilsTest : SysuiTestCase() { } @Test + fun getIconFromPackageName_nullPackageName_returnsDefault() { + val icon = MediaTttUtils.getIconFromPackageName(context, appPackageName = null, logger) + + val expectedDesc = + ContentDescription.Resource(R.string.media_output_dialog_unknown_launch_app_name) + .loadContentDescription(context) + assertThat(icon.contentDescription.loadContentDescription(context)).isEqualTo(expectedDesc) + } + + @Test + fun getIconFromPackageName_invalidPackageName_returnsDefault() { + val icon = MediaTttUtils.getIconFromPackageName(context, "fakePackageName", logger) + + val expectedDesc = + ContentDescription.Resource(R.string.media_output_dialog_unknown_launch_app_name) + .loadContentDescription(context) + assertThat(icon.contentDescription.loadContentDescription(context)).isEqualTo(expectedDesc) + } + + @Test + fun getIconFromPackageName_validPackageName_returnsAppInfo() { + val icon = MediaTttUtils.getIconFromPackageName(context, PACKAGE_NAME, logger) + + assertThat(icon) + .isEqualTo(Icon.Loaded(appIconFromPackageName, ContentDescription.Loaded(APP_NAME))) + } + + @Test fun getIconInfoFromPackageName_nullPackageName_returnsDefault() { val iconInfo = MediaTttUtils.getIconInfoFromPackageName(context, appPackageName = null, logger) diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt index 616a349520ee..f977f55db483 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt @@ -17,6 +17,9 @@ package com.android.systemui.media.taptotransfer.sender import android.app.StatusBarManager +import android.content.pm.ApplicationInfo +import android.content.pm.PackageManager +import android.graphics.drawable.Drawable import android.media.MediaRoute2Info import android.os.PowerManager import android.testing.AndroidTestingRunner @@ -25,6 +28,7 @@ import android.view.View import android.view.ViewGroup import android.view.WindowManager import android.view.accessibility.AccessibilityManager +import android.widget.ImageView import android.widget.TextView import androidx.test.filters.SmallTest import com.android.internal.logging.testing.UiEventLoggerFake @@ -32,16 +36,17 @@ import com.android.internal.statusbar.IUndoMediaTransferCallback import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingCollector +import com.android.systemui.common.shared.model.Text.Companion.loadText import com.android.systemui.media.taptotransfer.MediaTttFlags import com.android.systemui.media.taptotransfer.common.MediaTttLogger import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.CommandQueue import com.android.systemui.statusbar.policy.ConfigurationController -import com.android.systemui.temporarydisplay.chipbar.ChipSenderInfo import com.android.systemui.temporarydisplay.chipbar.ChipbarCoordinator import com.android.systemui.temporarydisplay.chipbar.FakeChipbarCoordinator import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.mockito.any +import com.android.systemui.util.mockito.eq import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.util.view.ViewUtil import com.google.common.truth.Truth.assertThat @@ -60,20 +65,29 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper class MediaTttSenderCoordinatorTest : SysuiTestCase() { + + // Note: This tests are a bit like integration tests because they use a real instance of + // [ChipbarCoordinator] and verify that the coordinator displays the correct view, based on + // the inputs from [MediaTttSenderCoordinator]. + private lateinit var underTest: MediaTttSenderCoordinator @Mock private lateinit var accessibilityManager: AccessibilityManager + @Mock private lateinit var applicationInfo: ApplicationInfo @Mock private lateinit var commandQueue: CommandQueue @Mock private lateinit var configurationController: ConfigurationController @Mock private lateinit var falsingManager: FalsingManager @Mock private lateinit var falsingCollector: FalsingCollector @Mock private lateinit var logger: MediaTttLogger @Mock private lateinit var mediaTttFlags: MediaTttFlags + @Mock private lateinit var packageManager: PackageManager + @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var viewUtil: ViewUtil @Mock private lateinit var windowManager: WindowManager private lateinit var chipbarCoordinator: ChipbarCoordinator private lateinit var commandQueueCallback: CommandQueue.Callbacks + private lateinit var fakeAppIconDrawable: Drawable private lateinit var fakeClock: FakeSystemClock private lateinit var fakeExecutor: FakeExecutor private lateinit var uiEventLoggerFake: UiEventLoggerFake @@ -83,7 +97,19 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { fun setUp() { MockitoAnnotations.initMocks(this) whenever(mediaTttFlags.isMediaTttEnabled()).thenReturn(true) - whenever(accessibilityManager.getRecommendedTimeoutMillis(any(), any())).thenReturn(1000) + whenever(accessibilityManager.getRecommendedTimeoutMillis(any(), any())).thenReturn(TIMEOUT) + + fakeAppIconDrawable = context.getDrawable(R.drawable.ic_cake)!! + whenever(applicationInfo.loadLabel(packageManager)).thenReturn(APP_NAME) + whenever(packageManager.getApplicationIcon(PACKAGE_NAME)).thenReturn(fakeAppIconDrawable) + whenever( + packageManager.getApplicationInfo( + eq(PACKAGE_NAME), + any<PackageManager.ApplicationInfoFlags>() + ) + ) + .thenReturn(applicationInfo) + context.setMockPackageManager(packageManager) fakeClock = FakeSystemClock() fakeExecutor = FakeExecutor(fakeClock) @@ -100,7 +126,6 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { accessibilityManager, configurationController, powerManager, - uiEventLogger, falsingManager, falsingCollector, viewUtil, @@ -149,8 +174,15 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo(almostCloseToStartCast().state.getChipTextString(context, OTHER_DEVICE_NAME)) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.ALMOST_CLOSE_TO_START_CAST.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_ALMOST_CLOSE_TO_START_CAST.id) } @@ -163,8 +195,15 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo(almostCloseToEndCast().state.getChipTextString(context, OTHER_DEVICE_NAME)) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.ALMOST_CLOSE_TO_END_CAST.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_ALMOST_CLOSE_TO_END_CAST.id) } @@ -177,10 +216,15 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo( - transferToReceiverTriggered().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_RECEIVER_TRIGGERED.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_TRIGGERED.id) } @@ -193,10 +237,15 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo( - transferToThisDeviceTriggered().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_TRIGGERED.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_TRIGGERED.id) } @@ -209,15 +258,69 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo( - transferToReceiverSucceeded().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_RECEIVER_SUCCEEDED.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_SUCCEEDED.id) } @Test + fun transferToReceiverSucceeded_nullUndoCallback_noUndo() { + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_SUCCEEDED, + routeInfo, + /* undoCallback= */ null + ) + + val chipbarView = getChipbarView() + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + } + + @Test + fun transferToReceiverSucceeded_withUndoRunnable_undoVisible() { + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_SUCCEEDED, + routeInfo, + /* undoCallback= */ object : IUndoMediaTransferCallback.Stub() { + override fun onUndoTriggered() {} + }, + ) + + val chipbarView = getChipbarView() + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getUndoButton().hasOnClickListeners()).isTrue() + } + + @Test + fun transferToReceiverSucceeded_undoButtonClick_switchesToTransferToThisDeviceTriggered() { + var undoCallbackCalled = false + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_SUCCEEDED, + routeInfo, + /* undoCallback= */ object : IUndoMediaTransferCallback.Stub() { + override fun onUndoTriggered() { + undoCallbackCalled = true + } + }, + ) + + getChipbarView().getUndoButton().performClick() + + // Event index 1 since initially displaying the succeeded chip would also log an event + assertThat(uiEventLoggerFake.eventId(1)) + .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_RECEIVER_CLICKED.id) + assertThat(undoCallbackCalled).isTrue() + assertThat(getChipbarView().getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_TRIGGERED.getExpectedStateText()) + } + + @Test fun commandQueueCallback_transferToThisDeviceSucceeded_triggersCorrectChip() { commandQueueCallback.updateMediaTapToTransferSenderDisplay( StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED, @@ -225,15 +328,71 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo( - transferToThisDeviceSucceeded().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_SUCCEEDED.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_SUCCEEDED.id) } @Test + fun transferToThisDeviceSucceeded_nullUndoCallback_noUndo() { + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED, + routeInfo, + /* undoCallback= */ null + ) + + val chipbarView = getChipbarView() + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + } + + @Test + fun transferToThisDeviceSucceeded_withUndoRunnable_undoVisible() { + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED, + routeInfo, + /* undoCallback= */ object : IUndoMediaTransferCallback.Stub() { + override fun onUndoTriggered() {} + }, + ) + + val chipbarView = getChipbarView() + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getUndoButton().hasOnClickListeners()).isTrue() + } + + @Test + fun transferToThisDeviceSucceeded_undoButtonClick_switchesToTransferToThisDeviceTriggered() { + var undoCallbackCalled = false + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED, + routeInfo, + /* undoCallback= */ object : IUndoMediaTransferCallback.Stub() { + override fun onUndoTriggered() { + undoCallbackCalled = true + } + }, + ) + + getChipbarView().getUndoButton().performClick() + + // Event index 1 since initially displaying the succeeded chip would also log an event + assertThat(uiEventLoggerFake.eventId(1)) + .isEqualTo( + MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_THIS_DEVICE_CLICKED.id + ) + assertThat(undoCallbackCalled).isTrue() + assertThat(getChipbarView().getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_RECEIVER_TRIGGERED.getExpectedStateText()) + } + + @Test fun commandQueueCallback_transferToReceiverFailed_triggersCorrectChip() { commandQueueCallback.updateMediaTapToTransferSenderDisplay( StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_FAILED, @@ -241,10 +400,15 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo( - transferToReceiverFailed().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_RECEIVER_FAILED.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_RECEIVER_FAILED.id) } @@ -257,10 +421,15 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { null ) - assertThat(getChipView().getChipText()) - .isEqualTo( - transferToThisDeviceFailed().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) + assertThat(chipbarView.getAppIconView().contentDescription).isEqualTo(APP_NAME) + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_RECEIVER_FAILED.getExpectedStateText()) + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getUndoButton().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(uiEventLoggerFake.eventId(0)) .isEqualTo(MediaTttSenderUiEvents.MEDIA_TTT_SENDER_TRANSFER_TO_THIS_DEVICE_FAILED.id) } @@ -316,7 +485,7 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { } @Test - fun transferToReceiverTriggeredThenFarFromReceiver_viewStillDisplayed() { + fun transferToReceiverTriggeredThenFarFromReceiver_viewStillDisplayedButStillTimesOut() { commandQueueCallback.updateMediaTapToTransferSenderDisplay( StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_TRIGGERED, routeInfo, @@ -332,10 +501,14 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { verify(windowManager, never()).removeView(any()) verify(logger).logRemovalBypass(any(), any()) + + fakeClock.advanceTime(TIMEOUT + 1L) + + verify(windowManager).removeView(any()) } @Test - fun transferToThisDeviceTriggeredThenFarFromReceiver_viewStillDisplayed() { + fun transferToThisDeviceTriggeredThenFarFromReceiver_viewStillDisplayedButDoesTimeOut() { commandQueueCallback.updateMediaTapToTransferSenderDisplay( StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_TRIGGERED, routeInfo, @@ -351,10 +524,14 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { verify(windowManager, never()).removeView(any()) verify(logger).logRemovalBypass(any(), any()) + + fakeClock.advanceTime(TIMEOUT + 1L) + + verify(windowManager).removeView(any()) } @Test - fun transferToReceiverSucceededThenFarFromReceiver_viewStillDisplayed() { + fun transferToReceiverSucceededThenFarFromReceiver_viewStillDisplayedButDoesTimeOut() { commandQueueCallback.updateMediaTapToTransferSenderDisplay( StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_SUCCEEDED, routeInfo, @@ -370,10 +547,14 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { verify(windowManager, never()).removeView(any()) verify(logger).logRemovalBypass(any(), any()) + + fakeClock.advanceTime(TIMEOUT + 1L) + + verify(windowManager).removeView(any()) } @Test - fun transferToThisDeviceSucceededThenFarFromReceiver_viewStillDisplayed() { + fun transferToThisDeviceSucceededThenFarFromReceiver_viewStillDisplayedButDoesTimeOut() { commandQueueCallback.updateMediaTapToTransferSenderDisplay( StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED, routeInfo, @@ -389,54 +570,119 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { verify(windowManager, never()).removeView(any()) verify(logger).logRemovalBypass(any(), any()) + + fakeClock.advanceTime(TIMEOUT + 1L) + + verify(windowManager).removeView(any()) } - private fun getChipView(): ViewGroup { + @Test + fun transferToReceiverSucceeded_thenUndo_thenFar_viewStillDisplayedButDoesTimeOut() { + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_RECEIVER_SUCCEEDED, + routeInfo, + object : IUndoMediaTransferCallback.Stub() { + override fun onUndoTriggered() {} + }, + ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_RECEIVER_SUCCEEDED.getExpectedStateText()) + + // Because [MediaTttSenderCoordinator] internally creates the undo callback, we should + // verify that the new state it triggers operates just like any other state. + getChipbarView().getUndoButton().performClick() + fakeExecutor.runAllReady() + + // Verify that the click updated us to the triggered state + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_TRIGGERED.getExpectedStateText()) + + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_FAR_FROM_RECEIVER, + routeInfo, + null + ) + fakeExecutor.runAllReady() + + // Verify that we didn't remove the chipbar because it's in the triggered state + verify(windowManager, never()).removeView(any()) + verify(logger).logRemovalBypass(any(), any()) + + fakeClock.advanceTime(TIMEOUT + 1L) + + // Verify we eventually remove the chipbar + verify(windowManager).removeView(any()) + } + + @Test + fun transferToThisDeviceSucceeded_thenUndo_thenFar_viewStillDisplayedButDoesTimeOut() { + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_TRANSFER_TO_THIS_DEVICE_SUCCEEDED, + routeInfo, + object : IUndoMediaTransferCallback.Stub() { + override fun onUndoTriggered() {} + }, + ) + val chipbarView = getChipbarView() + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_SUCCEEDED.getExpectedStateText()) + + // Because [MediaTttSenderCoordinator] internally creates the undo callback, we should + // verify that the new state it triggers operates just like any other state. + getChipbarView().getUndoButton().performClick() + fakeExecutor.runAllReady() + + // Verify that the click updated us to the triggered state + assertThat(chipbarView.getChipText()) + .isEqualTo(ChipStateSender.TRANSFER_TO_RECEIVER_TRIGGERED.getExpectedStateText()) + + commandQueueCallback.updateMediaTapToTransferSenderDisplay( + StatusBarManager.MEDIA_TRANSFER_SENDER_STATE_FAR_FROM_RECEIVER, + routeInfo, + null + ) + fakeExecutor.runAllReady() + + // Verify that we didn't remove the chipbar because it's in the triggered state + verify(windowManager, never()).removeView(any()) + verify(logger).logRemovalBypass(any(), any()) + + fakeClock.advanceTime(TIMEOUT + 1L) + + // Verify we eventually remove the chipbar + verify(windowManager).removeView(any()) + } + + private fun getChipbarView(): ViewGroup { val viewCaptor = ArgumentCaptor.forClass(View::class.java) verify(windowManager).addView(viewCaptor.capture(), any()) return viewCaptor.value as ViewGroup } + private fun ViewGroup.getAppIconView() = this.requireViewById<ImageView>(R.id.start_icon) + private fun ViewGroup.getChipText(): String = (this.requireViewById<TextView>(R.id.text)).text as String - /** Helper method providing default parameters to not clutter up the tests. */ - private fun almostCloseToStartCast() = - ChipSenderInfo(ChipStateSender.ALMOST_CLOSE_TO_START_CAST, routeInfo) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun almostCloseToEndCast() = - ChipSenderInfo(ChipStateSender.ALMOST_CLOSE_TO_END_CAST, routeInfo) + private fun ViewGroup.getLoadingIcon(): View = this.requireViewById(R.id.loading) - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToReceiverTriggered() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_TRIGGERED, routeInfo) + private fun ViewGroup.getErrorIcon(): View = this.requireViewById(R.id.error) - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToThisDeviceTriggered() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_TRIGGERED, routeInfo) + private fun ViewGroup.getUndoButton(): View = this.requireViewById(R.id.end_button) - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToReceiverSucceeded(undoCallback: IUndoMediaTransferCallback? = null) = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_SUCCEEDED, routeInfo, undoCallback) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToThisDeviceSucceeded(undoCallback: IUndoMediaTransferCallback? = null) = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_SUCCEEDED, routeInfo, undoCallback) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToReceiverFailed() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_FAILED, routeInfo) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToThisDeviceFailed() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_FAILED, routeInfo) + private fun ChipStateSender.getExpectedStateText(): String? { + return this.getChipTextString(context, OTHER_DEVICE_NAME).loadText(context) + } } +private const val APP_NAME = "Fake app name" private const val OTHER_DEVICE_NAME = "My Tablet" +private const val PACKAGE_NAME = "com.android.systemui" +private const val TIMEOUT = 10000 private val routeInfo = MediaRoute2Info.Builder("id", OTHER_DEVICE_NAME) .addFeature("feature") - .setClientPackageName("com.android.systemui") + .setClientPackageName(PACKAGE_NAME) .build() diff --git a/packages/SystemUI/tests/src/com/android/systemui/monet/ColorSchemeTest.java b/packages/SystemUI/tests/src/com/android/systemui/monet/ColorSchemeTest.java index 0badd861787d..1bc4719c70b7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/monet/ColorSchemeTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/monet/ColorSchemeTest.java @@ -147,6 +147,18 @@ public class ColorSchemeTest extends SysuiTestCase { } @Test + public void testMonochromatic() { + int colorInt = 0xffB3588A; // H350 C50 T50 + ColorScheme colorScheme = new ColorScheme(colorInt, false /* darkTheme */, + Style.MONOCHROMATIC /* style */); + int neutralMid = colorScheme.getNeutral1().get(colorScheme.getNeutral1().size() / 2); + Assert.assertTrue( + Color.red(neutralMid) == Color.green(neutralMid) + && Color.green(neutralMid) == Color.blue(neutralMid) + ); + } + + @Test @SuppressWarnings("ResultOfMethodCallIgnored") public void testToString() { new ColorScheme(Color.TRANSPARENT, false /* darkTheme */).toString(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentDisableFlagsLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentDisableFlagsLoggerTest.kt index aacc695ef301..68c10f20f6f7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentDisableFlagsLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentDisableFlagsLoggerTest.kt @@ -20,7 +20,7 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.log.LogBufferFactory -import com.android.systemui.log.LogcatEchoTracker +import com.android.systemui.plugins.log.LogcatEchoTracker import com.android.systemui.statusbar.disableflags.DisableFlagsLogger import com.google.common.truth.Truth.assertThat import java.io.PrintWriter diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java index 1c686c66e31e..5e9c1aaad309 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java @@ -22,7 +22,6 @@ import static junit.framework.Assert.assertNotNull; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -52,6 +51,7 @@ import android.text.SpannableStringBuilder; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.FrameLayout; import android.widget.TextView; import com.android.systemui.R; @@ -97,6 +97,7 @@ public class QSSecurityFooterTest extends SysuiTestCase { private static final int DEFAULT_ICON_ID = R.drawable.ic_info_outline; private ViewGroup mRootView; + private ViewGroup mSecurityFooterView; private TextView mFooterText; private TestableImageView mPrimaryFooterIcon; private QSSecurityFooter mFooter; @@ -121,21 +122,26 @@ public class QSSecurityFooterTest extends SysuiTestCase { Looper looper = mTestableLooper.getLooper(); Handler mainHandler = new Handler(looper); when(mUserTracker.getUserInfo()).thenReturn(mock(UserInfo.class)); - mRootView = (ViewGroup) new LayoutInflaterBuilder(mContext) + mSecurityFooterView = (ViewGroup) new LayoutInflaterBuilder(mContext) .replace("ImageView", TestableImageView.class) .build().inflate(R.layout.quick_settings_security_footer, null, false); mFooterUtils = new QSSecurityFooterUtils(getContext(), getContext().getSystemService(DevicePolicyManager.class), mUserTracker, mainHandler, mActivityStarter, mSecurityController, looper, mDialogLaunchAnimator); - mFooter = new QSSecurityFooter(mRootView, mainHandler, mSecurityController, looper, - mBroadcastDispatcher, mFooterUtils); - mFooterText = mRootView.findViewById(R.id.footer_text); - mPrimaryFooterIcon = mRootView.findViewById(R.id.primary_footer_icon); + mFooter = new QSSecurityFooter(mSecurityFooterView, mainHandler, mSecurityController, + looper, mBroadcastDispatcher, mFooterUtils); + mFooterText = mSecurityFooterView.findViewById(R.id.footer_text); + mPrimaryFooterIcon = mSecurityFooterView.findViewById(R.id.primary_footer_icon); when(mSecurityController.getDeviceOwnerComponentOnAnyUser()) .thenReturn(DEVICE_OWNER_COMPONENT); when(mSecurityController.getDeviceOwnerType(DEVICE_OWNER_COMPONENT)) .thenReturn(DEVICE_OWNER_TYPE_DEFAULT); + + // mSecurityFooterView must have a ViewGroup parent so that + // DialogLaunchAnimator.Controller.fromView() does not return null. + mRootView = new FrameLayout(mContext); + mRootView.addView(mSecurityFooterView); ViewUtils.attachView(mRootView); mFooter.init(); @@ -153,7 +159,7 @@ public class QSSecurityFooterTest extends SysuiTestCase { mFooter.refreshState(); TestableLooper.get(this).processAllMessages(); - assertEquals(View.GONE, mRootView.getVisibility()); + assertEquals(View.GONE, mSecurityFooterView.getVisibility()); } @Test @@ -165,7 +171,7 @@ public class QSSecurityFooterTest extends SysuiTestCase { TestableLooper.get(this).processAllMessages(); assertEquals(mContext.getString(R.string.quick_settings_disclosure_management), mFooterText.getText()); - assertEquals(View.VISIBLE, mRootView.getVisibility()); + assertEquals(View.VISIBLE, mSecurityFooterView.getVisibility()); assertEquals(View.VISIBLE, mPrimaryFooterIcon.getVisibility()); assertEquals(DEFAULT_ICON_ID, mPrimaryFooterIcon.getLastImageResource()); } @@ -181,7 +187,7 @@ public class QSSecurityFooterTest extends SysuiTestCase { assertEquals(mContext.getString(R.string.quick_settings_disclosure_named_management, MANAGING_ORGANIZATION), mFooterText.getText()); - assertEquals(View.VISIBLE, mRootView.getVisibility()); + assertEquals(View.VISIBLE, mSecurityFooterView.getVisibility()); assertEquals(View.VISIBLE, mPrimaryFooterIcon.getVisibility()); assertEquals(DEFAULT_ICON_ID, mPrimaryFooterIcon.getLastImageResource()); } @@ -200,7 +206,7 @@ public class QSSecurityFooterTest extends SysuiTestCase { assertEquals(mContext.getString( R.string.quick_settings_financed_disclosure_named_management, MANAGING_ORGANIZATION), mFooterText.getText()); - assertEquals(View.VISIBLE, mRootView.getVisibility()); + assertEquals(View.VISIBLE, mSecurityFooterView.getVisibility()); assertEquals(View.VISIBLE, mPrimaryFooterIcon.getVisibility()); assertEquals(DEFAULT_ICON_ID, mPrimaryFooterIcon.getLastImageResource()); } @@ -217,7 +223,7 @@ public class QSSecurityFooterTest extends SysuiTestCase { mFooter.refreshState(); TestableLooper.get(this).processAllMessages(); - assertEquals(View.GONE, mRootView.getVisibility()); + assertEquals(View.GONE, mSecurityFooterView.getVisibility()); } @Test @@ -227,8 +233,8 @@ public class QSSecurityFooterTest extends SysuiTestCase { mFooter.refreshState(); TestableLooper.get(this).processAllMessages(); - assertFalse(mRootView.isClickable()); - assertEquals(View.GONE, mRootView.findViewById(R.id.footer_icon).getVisibility()); + assertFalse(mSecurityFooterView.isClickable()); + assertEquals(View.GONE, mSecurityFooterView.findViewById(R.id.footer_icon).getVisibility()); } @Test @@ -241,8 +247,9 @@ public class QSSecurityFooterTest extends SysuiTestCase { mFooter.refreshState(); TestableLooper.get(this).processAllMessages(); - assertTrue(mRootView.isClickable()); - assertEquals(View.VISIBLE, mRootView.findViewById(R.id.footer_icon).getVisibility()); + assertTrue(mSecurityFooterView.isClickable()); + assertEquals(View.VISIBLE, + mSecurityFooterView.findViewById(R.id.footer_icon).getVisibility()); } @Test @@ -254,8 +261,8 @@ public class QSSecurityFooterTest extends SysuiTestCase { mFooter.refreshState(); TestableLooper.get(this).processAllMessages(); - assertFalse(mRootView.isClickable()); - assertEquals(View.GONE, mRootView.findViewById(R.id.footer_icon).getVisibility()); + assertFalse(mSecurityFooterView.isClickable()); + assertEquals(View.GONE, mSecurityFooterView.findViewById(R.id.footer_icon).getVisibility()); } @Test @@ -734,11 +741,11 @@ public class QSSecurityFooterTest extends SysuiTestCase { @Test public void testDialogUsesDialogLauncher() { when(mSecurityController.isDeviceManaged()).thenReturn(true); - mFooter.onClick(mRootView); + mFooter.onClick(mSecurityFooterView); mTestableLooper.processAllMessages(); - verify(mDialogLaunchAnimator).showFromView(any(), eq(mRootView), any()); + verify(mDialogLaunchAnimator).show(any(), any()); } @Test @@ -775,7 +782,7 @@ public class QSSecurityFooterTest extends SysuiTestCase { ArgumentCaptor<AlertDialog> dialogCaptor = ArgumentCaptor.forClass(AlertDialog.class); mTestableLooper.processAllMessages(); - verify(mDialogLaunchAnimator).showFromView(dialogCaptor.capture(), any(), any()); + verify(mDialogLaunchAnimator).show(dialogCaptor.capture(), any()); AlertDialog dialog = dialogCaptor.getValue(); dialog.create(); @@ -817,8 +824,8 @@ public class QSSecurityFooterTest extends SysuiTestCase { verify(mBroadcastDispatcher).registerReceiverWithHandler(captor.capture(), any(), any(), any()); - // Pretend view is not visible temporarily - mRootView.onVisibilityAggregated(false); + // Pretend view is not attached anymore. + mRootView.removeView(mSecurityFooterView); captor.getValue().onReceive(mContext, new Intent(DevicePolicyManager.ACTION_SHOW_DEVICE_MONITORING_DIALOG)); mTestableLooper.processAllMessages(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractorTest.kt index 3c258077c29d..2c2ddbb9b8c5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/footer/domain/interactor/FooterActionsInteractorTest.kt @@ -23,13 +23,13 @@ import android.os.UserHandle import android.provider.Settings import android.testing.AndroidTestingRunner import android.testing.TestableLooper -import android.view.View import androidx.test.filters.SmallTest import com.android.internal.logging.nano.MetricsProto import com.android.internal.logging.testing.FakeMetricsLogger import com.android.internal.logging.testing.UiEventLoggerFake import com.android.systemui.SysuiTestCase import com.android.systemui.animation.ActivityLaunchAnimator +import com.android.systemui.animation.Expandable import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.globalactions.GlobalActionsDialogLite @@ -70,13 +70,13 @@ class FooterActionsInteractorTest : SysuiTestCase() { val underTest = utils.footerActionsInteractor(qsSecurityFooterUtils = qsSecurityFooterUtils) val quickSettingsContext = mock<Context>() - underTest.showDeviceMonitoringDialog(quickSettingsContext) - verify(qsSecurityFooterUtils).showDeviceMonitoringDialog(quickSettingsContext, null) - val view = mock<View>() - whenever(view.context).thenReturn(quickSettingsContext) - underTest.showDeviceMonitoringDialog(view) + underTest.showDeviceMonitoringDialog(quickSettingsContext, null) verify(qsSecurityFooterUtils).showDeviceMonitoringDialog(quickSettingsContext, null) + + val expandable = mock<Expandable>() + underTest.showDeviceMonitoringDialog(quickSettingsContext, expandable) + verify(qsSecurityFooterUtils).showDeviceMonitoringDialog(quickSettingsContext, expandable) } @Test @@ -85,8 +85,8 @@ class FooterActionsInteractorTest : SysuiTestCase() { val underTest = utils.footerActionsInteractor(uiEventLogger = uiEventLogger) val globalActionsDialogLite = mock<GlobalActionsDialogLite>() - val view = mock<View>() - underTest.showPowerMenuDialog(globalActionsDialogLite, view) + val expandable = mock<Expandable>() + underTest.showPowerMenuDialog(globalActionsDialogLite, expandable) // Event is logged. val logs = uiEventLogger.logs @@ -99,7 +99,7 @@ class FooterActionsInteractorTest : SysuiTestCase() { .showOrHideDialog( /* keyguardShowing= */ false, /* isDeviceProvisioned= */ true, - view, + expandable, ) } @@ -167,11 +167,11 @@ class FooterActionsInteractorTest : SysuiTestCase() { userSwitchDialogController = userSwitchDialogController, ) - val view = mock<View>() - underTest.showUserSwitcher(view) + val expandable = mock<Expandable>() + underTest.showUserSwitcher(context, expandable) // Dialog is shown. - verify(userSwitchDialogController).showDialog(view) + verify(userSwitchDialogController).showDialog(context, expandable) } @Test @@ -184,12 +184,9 @@ class FooterActionsInteractorTest : SysuiTestCase() { activityStarter = activityStarter, ) - // The clicked view. The context is necessary because it's used to build the intent, that - // we check below. - val view = mock<View>() - whenever(view.context).thenReturn(context) - - underTest.showUserSwitcher(view) + // The clicked expandable. + val expandable = mock<Expandable>() + underTest.showUserSwitcher(context, expandable) // Dialog is shown. val intentCaptor = argumentCaptor<Intent>() diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/UserDetailViewAdapterTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/UserDetailViewAdapterTest.kt index da52a9b1a3c2..bc27bbc13f81 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/UserDetailViewAdapterTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/UserDetailViewAdapterTest.kt @@ -33,6 +33,7 @@ import com.android.systemui.qs.QSUserSwitcherEvent import com.android.systemui.statusbar.policy.UserSwitcherController import com.android.systemui.user.data.source.UserRecord import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @@ -139,6 +140,11 @@ class UserDetailViewAdapterTest : SysuiTestCase() { clickableTest(false, false, mUserDetailItemView, true) } + @Test + fun testManageUsersIsNotAvailable() { + assertNull(adapter.users.find { it.isManageUsers }) + } + private fun createUserRecord(current: Boolean, guest: Boolean) = UserRecord( UserInfo(0 /* id */, "name", 0 /* flags */), diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt index 9d908fdfb976..0a34810f4d3f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/user/UserSwitchDialogControllerTest.kt @@ -20,12 +20,12 @@ import android.content.DialogInterface import android.content.Intent import android.provider.Settings import android.testing.AndroidTestingRunner -import android.view.View import android.widget.Button import androidx.test.filters.SmallTest import com.android.internal.logging.UiEventLogger import com.android.systemui.SysuiTestCase import com.android.systemui.animation.DialogLaunchAnimator +import com.android.systemui.animation.Expandable import com.android.systemui.plugins.ActivityStarter import com.android.systemui.plugins.FalsingManager import com.android.systemui.qs.PseudoGridView @@ -35,6 +35,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.capture import com.android.systemui.util.mockito.eq +import com.android.systemui.util.mockito.mock import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @@ -63,7 +64,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { @Mock private lateinit var userDetailViewAdapter: UserDetailView.Adapter @Mock - private lateinit var launchView: View + private lateinit var launchExpandable: Expandable @Mock private lateinit var neutralButton: Button @Mock @@ -79,7 +80,6 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { fun setUp() { MockitoAnnotations.initMocks(this) - `when`(launchView.context).thenReturn(mContext) `when`(dialog.context).thenReturn(mContext) controller = UserSwitchDialogController( @@ -94,32 +94,34 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { @Test fun showDialog_callsDialogShow() { - controller.showDialog(launchView) - verify(dialogLaunchAnimator).showFromView(eq(dialog), eq(launchView), any(), anyBoolean()) + val launchController = mock<DialogLaunchAnimator.Controller>() + `when`(launchExpandable.dialogLaunchController(any())).thenReturn(launchController) + controller.showDialog(context, launchExpandable) + verify(dialogLaunchAnimator).show(eq(dialog), eq(launchController), anyBoolean()) verify(uiEventLogger).log(QSUserSwitcherEvent.QS_USER_DETAIL_OPEN) } @Test fun dialog_showForAllUsers() { - controller.showDialog(launchView) + controller.showDialog(context, launchExpandable) verify(dialog).setShowForAllUsers(true) } @Test fun dialog_cancelOnTouchOutside() { - controller.showDialog(launchView) + controller.showDialog(context, launchExpandable) verify(dialog).setCanceledOnTouchOutside(true) } @Test fun adapterAndGridLinked() { - controller.showDialog(launchView) + controller.showDialog(context, launchExpandable) verify(userDetailViewAdapter).linkToViewGroup(any<PseudoGridView>()) } @Test fun doneButtonLogsCorrectly() { - controller.showDialog(launchView) + controller.showDialog(context, launchExpandable) verify(dialog).setPositiveButton(anyInt(), capture(clickCaptor)) @@ -132,7 +134,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { fun clickSettingsButton_noFalsing_opensSettings() { `when`(falsingManager.isFalseTap(anyInt())).thenReturn(false) - controller.showDialog(launchView) + controller.showDialog(context, launchExpandable) verify(dialog) .setNeutralButton(anyInt(), capture(clickCaptor), eq(false) /* dismissOnClick */) @@ -153,7 +155,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() { fun clickSettingsButton_Falsing_notOpensSettings() { `when`(falsingManager.isFalseTap(anyInt())).thenReturn(true) - controller.showDialog(launchView) + controller.showDialog(context, launchExpandable) verify(dialog) .setNeutralButton(anyInt(), capture(clickCaptor), eq(false) /* dismissOnClick */) diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt index 0151822f871c..14a3bc147808 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/LargeScreenShadeHeaderControllerCombinedTest.kt @@ -659,6 +659,51 @@ class LargeScreenShadeHeaderControllerCombinedTest : SysuiTestCase() { verify(privacyIconsController, never()).onParentInvisible() } + @Test + fun clockPivotYInCenter() { + val captor = ArgumentCaptor.forClass(View.OnLayoutChangeListener::class.java) + verify(clock).addOnLayoutChangeListener(capture(captor)) + var height = 100 + val width = 50 + + clock.executeLayoutChange(0, 0, width, height, captor.value) + verify(clock).pivotY = height.toFloat() / 2 + + height = 150 + clock.executeLayoutChange(0, 0, width, height, captor.value) + verify(clock).pivotY = height.toFloat() / 2 + } + + private fun View.executeLayoutChange( + left: Int, + top: Int, + right: Int, + bottom: Int, + listener: View.OnLayoutChangeListener + ) { + val oldLeft = this.left + val oldTop = this.top + val oldRight = this.right + val oldBottom = this.bottom + whenever(this.left).thenReturn(left) + whenever(this.top).thenReturn(top) + whenever(this.right).thenReturn(right) + whenever(this.bottom).thenReturn(bottom) + whenever(this.height).thenReturn(bottom - top) + whenever(this.width).thenReturn(right - left) + listener.onLayoutChange( + this, + oldLeft, + oldTop, + oldRight, + oldBottom, + left, + top, + right, + bottom + ) + } + private fun createWindowInsets( topCutout: Rect? = Rect() ): WindowInsets { 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 c0dae03023c5..d095add1c660 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java @@ -33,11 +33,13 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyFloat; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; @@ -76,6 +78,7 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.testing.UiEventLoggerFake; import com.android.internal.util.CollectionUtils; import com.android.internal.util.LatencyTracker; +import com.android.keyguard.FaceAuthApiRequestReason; import com.android.keyguard.KeyguardClockSwitch; import com.android.keyguard.KeyguardClockSwitchController; import com.android.keyguard.KeyguardStatusView; @@ -93,7 +96,6 @@ import com.android.systemui.biometrics.AuthController; import com.android.systemui.camera.CameraGestureHelper; import com.android.systemui.classifier.FalsingCollectorFake; import com.android.systemui.classifier.FalsingManagerFake; -import com.android.systemui.controls.dagger.ControlsComponent; import com.android.systemui.doze.DozeLog; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; @@ -109,7 +111,7 @@ import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.QS; -import com.android.systemui.qrcodescanner.controller.QRCodeScannerController; +import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.QSFragment; import com.android.systemui.screenrecord.RecordingController; import com.android.systemui.shade.transition.ShadeTransitionController; @@ -165,7 +167,6 @@ import com.android.systemui.statusbar.window.StatusBarWindowStateController; import com.android.systemui.unfold.SysUIUnfoldComponent; import com.android.systemui.util.time.FakeSystemClock; import com.android.systemui.util.time.SystemClock; -import com.android.systemui.wallet.controller.QuickAccessWalletController; import com.android.wm.shell.animation.FlingAnimationUtils; import org.junit.After; @@ -173,6 +174,8 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.InOrder; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.stubbing.Answer; @@ -257,11 +260,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { @Mock private KeyguardIndicationController mKeyguardIndicationController; @Mock private FragmentService mFragmentService; @Mock private FragmentHostManager mFragmentHostManager; - @Mock private QuickAccessWalletController mQuickAccessWalletController; - @Mock private QRCodeScannerController mQrCodeScannerController; @Mock private NotificationRemoteInputManager mNotificationRemoteInputManager; @Mock private RecordingController mRecordingController; - @Mock private ControlsComponent mControlsComponent; @Mock private LockscreenGestureLogger mLockscreenGestureLogger; @Mock private DumpManager mDumpManager; @Mock private InteractionJankMonitor mInteractionJankMonitor; @@ -282,6 +282,10 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { @Mock private ViewTreeObserver mViewTreeObserver; @Mock private KeyguardBottomAreaViewModel mKeyguardBottomAreaViewModel; @Mock private KeyguardBottomAreaInteractor mKeyguardBottomAreaInteractor; + @Mock private MotionEvent mDownMotionEvent; + @Captor + private ArgumentCaptor<NotificationStackScrollLayout.OnEmptySpaceClickListener> + mEmptySpaceClickListenerCaptor; private NotificationPanelViewController.TouchHandler mTouchHandler; private ConfigurationController mConfigurationController; @@ -425,6 +429,7 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { when(mView.getViewTreeObserver()).thenReturn(mViewTreeObserver); when(mView.getParent()).thenReturn(mViewParent); when(mQs.getHeader()).thenReturn(mQsHeader); + when(mDownMotionEvent.getAction()).thenReturn(MotionEvent.ACTION_DOWN); mMainHandler = new Handler(Looper.getMainLooper()); NotificationPanelViewController.PanelEventsEmitter panelEventsEmitter = @@ -512,6 +517,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { .addCallback(mNotificationPanelViewController.mStatusBarStateListener); mNotificationPanelViewController .setHeadsUpAppearanceController(mock(HeadsUpAppearanceController.class)); + verify(mNotificationStackScrollLayoutController) + .setOnEmptySpaceClickListener(mEmptySpaceClickListenerCaptor.capture()); } @After @@ -1540,6 +1547,103 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { ); } + @Test + public void onEmptySpaceClicked_notDozingAndOnKeyguard_requestsFaceAuth() { + StatusBarStateController.StateListener statusBarStateListener = + mNotificationPanelViewController.mStatusBarStateListener; + statusBarStateListener.onStateChanged(KEYGUARD); + mNotificationPanelViewController.setDozing(false, false); + + // This sets the dozing state that is read when onMiddleClicked is eventually invoked. + mTouchHandler.onTouch(mock(View.class), mDownMotionEvent); + mEmptySpaceClickListenerCaptor.getValue().onEmptySpaceClicked(0, 0); + + verify(mUpdateMonitor).requestFaceAuth(true, + FaceAuthApiRequestReason.NOTIFICATION_PANEL_CLICKED); + } + + @Test + public void onEmptySpaceClicked_notDozingAndFaceDetectionIsNotRunning_startsUnlockAnimation() { + StatusBarStateController.StateListener statusBarStateListener = + mNotificationPanelViewController.mStatusBarStateListener; + statusBarStateListener.onStateChanged(KEYGUARD); + mNotificationPanelViewController.setDozing(false, false); + when(mUpdateMonitor.isFaceDetectionRunning()).thenReturn(false); + + // This sets the dozing state that is read when onMiddleClicked is eventually invoked. + mTouchHandler.onTouch(mock(View.class), mDownMotionEvent); + mEmptySpaceClickListenerCaptor.getValue().onEmptySpaceClicked(0, 0); + + verify(mNotificationStackScrollLayoutController).setUnlockHintRunning(true); + } + + @Test + public void onEmptySpaceClicked_notDozingAndFaceDetectionIsRunning_doesNotStartUnlockHint() { + StatusBarStateController.StateListener statusBarStateListener = + mNotificationPanelViewController.mStatusBarStateListener; + statusBarStateListener.onStateChanged(KEYGUARD); + mNotificationPanelViewController.setDozing(false, false); + when(mUpdateMonitor.isFaceDetectionRunning()).thenReturn(true); + + // This sets the dozing state that is read when onMiddleClicked is eventually invoked. + mTouchHandler.onTouch(mock(View.class), mDownMotionEvent); + mEmptySpaceClickListenerCaptor.getValue().onEmptySpaceClicked(0, 0); + + verify(mNotificationStackScrollLayoutController, never()).setUnlockHintRunning(true); + } + + @Test + public void onEmptySpaceClicked_whenDozingAndOnKeyguard_doesNotRequestFaceAuth() { + StatusBarStateController.StateListener statusBarStateListener = + mNotificationPanelViewController.mStatusBarStateListener; + statusBarStateListener.onStateChanged(KEYGUARD); + mNotificationPanelViewController.setDozing(true, false); + + // This sets the dozing state that is read when onMiddleClicked is eventually invoked. + mTouchHandler.onTouch(mock(View.class), mDownMotionEvent); + mEmptySpaceClickListenerCaptor.getValue().onEmptySpaceClicked(0, 0); + + verify(mUpdateMonitor, never()).requestFaceAuth(anyBoolean(), anyString()); + } + + @Test + public void onEmptySpaceClicked_whenStatusBarShadeLocked_doesNotRequestFaceAuth() { + StatusBarStateController.StateListener statusBarStateListener = + mNotificationPanelViewController.mStatusBarStateListener; + statusBarStateListener.onStateChanged(SHADE_LOCKED); + + mEmptySpaceClickListenerCaptor.getValue().onEmptySpaceClicked(0, 0); + + verify(mUpdateMonitor, never()).requestFaceAuth(anyBoolean(), anyString()); + + } + + /** + * When shade is flinging to close and this fling is not intercepted, + * {@link AmbientState#setIsClosing(boolean)} should be called before + * {@link NotificationStackScrollLayoutController#onExpansionStopped()} + * to ensure scrollY can be correctly set to be 0 + */ + @Test + public void onShadeFlingClosingEnd_mAmbientStateSetClose_thenOnExpansionStopped() { + // Given: Shade is expanded + mNotificationPanelViewController.notifyExpandingFinished(); + mNotificationPanelViewController.setIsClosing(false); + + // When: Shade flings to close not canceled + mNotificationPanelViewController.notifyExpandingStarted(); + mNotificationPanelViewController.setIsClosing(true); + mNotificationPanelViewController.onFlingEnd(false); + + // Then: AmbientState's mIsClosing should be set to false + // before mNotificationStackScrollLayoutController.onExpansionStopped() is called + // to ensure NotificationStackScrollLayout.resetScrollPosition() -> resetScrollPosition + // -> setOwnScrollY(0) can set scrollY to 0 when shade is closed + InOrder inOrder = inOrder(mAmbientState, mNotificationStackScrollLayoutController); + inOrder.verify(mAmbientState).setIsClosing(false); + inOrder.verify(mNotificationStackScrollLayoutController).onExpansionStopped(); + } + private static MotionEvent createMotionEvent(int x, int y, int action) { return MotionEvent.obtain( /* downTime= */ 0, /* eventTime= */ 0, action, x, y, /* metaState= */ 0); diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/AnimatableClockViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/AnimatableClockViewTest.kt index eb34561d15a0..cc45cf88fa18 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/AnimatableClockViewTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shared/clocks/AnimatableClockViewTest.kt @@ -22,6 +22,7 @@ import androidx.test.filters.SmallTest import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.animation.TextAnimator +import com.android.systemui.util.mockito.any import org.junit.Before import org.junit.Rule import org.junit.Test @@ -55,7 +56,7 @@ class AnimatableClockViewTest : SysuiTestCase() { clockView.animateAppearOnLockscreen() clockView.measure(50, 50) - verify(mockTextAnimator).glyphFilter = null + verify(mockTextAnimator).glyphFilter = any() verify(mockTextAnimator).setTextStyle(300, -1.0f, 200, false, 350L, null, 0L, null) verifyNoMoreInteractions(mockTextAnimator) } @@ -66,7 +67,7 @@ class AnimatableClockViewTest : SysuiTestCase() { clockView.measure(50, 50) clockView.animateAppearOnLockscreen() - verify(mockTextAnimator, times(2)).glyphFilter = null + verify(mockTextAnimator, times(2)).glyphFilter = any() verify(mockTextAnimator).setTextStyle(100, -1.0f, 200, false, 0L, null, 0L, null) verify(mockTextAnimator).setTextStyle(300, -1.0f, 200, true, 350L, null, 0L, null) verifyNoMoreInteractions(mockTextAnimator) diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/system/UncaughtExceptionPreHandlerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shared/system/UncaughtExceptionPreHandlerTest.kt index 5b34a95d4fb0..b761647e24e3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shared/system/UncaughtExceptionPreHandlerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shared/system/UncaughtExceptionPreHandlerTest.kt @@ -17,58 +17,58 @@ import org.mockito.MockitoAnnotations @SmallTest class UncaughtExceptionPreHandlerTest : SysuiTestCase() { - private lateinit var preHandlerManager: UncaughtExceptionPreHandlerManager + private lateinit var preHandlerManager: UncaughtExceptionPreHandlerManager - @Mock private lateinit var mockHandler: UncaughtExceptionHandler + @Mock private lateinit var mockHandler: UncaughtExceptionHandler - @Mock private lateinit var mockHandler2: UncaughtExceptionHandler + @Mock private lateinit var mockHandler2: UncaughtExceptionHandler - @Before - fun setUp() { - MockitoAnnotations.initMocks(this) - Thread.setUncaughtExceptionPreHandler(null) - preHandlerManager = UncaughtExceptionPreHandlerManager() - } + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + Thread.setUncaughtExceptionPreHandler(null) + preHandlerManager = UncaughtExceptionPreHandlerManager() + } - @Test - fun registerHandler_registersOnceOnly() { - preHandlerManager.registerHandler(mockHandler) - preHandlerManager.registerHandler(mockHandler) - preHandlerManager.handleUncaughtException(Thread.currentThread(), Exception()) - verify(mockHandler, only()).uncaughtException(any(), any()) - } + @Test + fun registerHandler_registersOnceOnly() { + preHandlerManager.registerHandler(mockHandler) + preHandlerManager.registerHandler(mockHandler) + preHandlerManager.handleUncaughtException(Thread.currentThread(), Exception()) + verify(mockHandler, only()).uncaughtException(any(), any()) + } - @Test - fun registerHandler_setsUncaughtExceptionPreHandler() { - Thread.setUncaughtExceptionPreHandler(null) - preHandlerManager.registerHandler(mockHandler) - assertThat(Thread.getUncaughtExceptionPreHandler()).isNotNull() - } + @Test + fun registerHandler_setsUncaughtExceptionPreHandler() { + Thread.setUncaughtExceptionPreHandler(null) + preHandlerManager.registerHandler(mockHandler) + assertThat(Thread.getUncaughtExceptionPreHandler()).isNotNull() + } - @Test - fun registerHandler_preservesOriginalHandler() { - Thread.setUncaughtExceptionPreHandler(mockHandler) - preHandlerManager.registerHandler(mockHandler2) - preHandlerManager.handleUncaughtException(Thread.currentThread(), Exception()) - verify(mockHandler, only()).uncaughtException(any(), any()) - } + @Test + fun registerHandler_preservesOriginalHandler() { + Thread.setUncaughtExceptionPreHandler(mockHandler) + preHandlerManager.registerHandler(mockHandler2) + preHandlerManager.handleUncaughtException(Thread.currentThread(), Exception()) + verify(mockHandler, only()).uncaughtException(any(), any()) + } - @Test - @Ignore - fun registerHandler_toleratesHandlersThatThrow() { - `when`(mockHandler2.uncaughtException(any(), any())).thenThrow(RuntimeException()) - preHandlerManager.registerHandler(mockHandler2) - preHandlerManager.registerHandler(mockHandler) - preHandlerManager.handleUncaughtException(Thread.currentThread(), Exception()) - verify(mockHandler2, only()).uncaughtException(any(), any()) - verify(mockHandler, only()).uncaughtException(any(), any()) - } + @Test + @Ignore + fun registerHandler_toleratesHandlersThatThrow() { + `when`(mockHandler2.uncaughtException(any(), any())).thenThrow(RuntimeException()) + preHandlerManager.registerHandler(mockHandler2) + preHandlerManager.registerHandler(mockHandler) + preHandlerManager.handleUncaughtException(Thread.currentThread(), Exception()) + verify(mockHandler2, only()).uncaughtException(any(), any()) + verify(mockHandler, only()).uncaughtException(any(), any()) + } - @Test - fun registerHandler_doesNotSetUpTwice() { - UncaughtExceptionPreHandlerManager().registerHandler(mockHandler2) - assertThrows(IllegalStateException::class.java) { - preHandlerManager.registerHandler(mockHandler) + @Test + fun registerHandler_doesNotSetUpTwice() { + UncaughtExceptionPreHandlerManager().registerHandler(mockHandler2) + assertThrows(IllegalStateException::class.java) { + preHandlerManager.registerHandler(mockHandler) + } } - } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LSShadeTransitionLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LSShadeTransitionLoggerTest.kt index 8cb530c355bd..5fc0ffe42f55 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/LSShadeTransitionLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/LSShadeTransitionLoggerTest.kt @@ -4,7 +4,7 @@ import android.testing.AndroidTestingRunner import android.util.DisplayMetrics import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase -import com.android.systemui.log.LogBuffer +import com.android.systemui.plugins.log.LogBuffer import com.android.systemui.statusbar.notification.row.ExpandableView import com.android.systemui.statusbar.phone.LSShadeTransitionLogger import com.android.systemui.statusbar.phone.LockscreenGestureLogger diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerBaseTest.java index f8a0d2fc415c..9c65fac1af45 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerBaseTest.java @@ -70,7 +70,7 @@ import com.android.systemui.SysuiTestCase; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dump.DumpManager; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; import com.android.systemui.telephony.TelephonyListenerManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerDataTest.java index ed8a3e16cdd1..4bed4a19b3d9 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerDataTest.java @@ -38,7 +38,7 @@ import android.testing.TestableLooper.RunWithLooper; import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.net.DataUsageController; import com.android.systemui.dump.DumpManager; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.util.CarrierConfigTracker; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerSignalTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerSignalTest.java index a76676e01c15..d5f5105036d3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerSignalTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/NetworkControllerSignalTest.java @@ -43,7 +43,7 @@ import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.net.DataUsageController; import com.android.systemui.R; import com.android.systemui.dump.DumpManager; -import com.android.systemui.log.LogBuffer; +import com.android.systemui.plugins.log.LogBuffer; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.util.CarrierConfigTracker; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java index 82e32b2fdc64..09f8a10f88c7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilderTest.java @@ -34,10 +34,12 @@ import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.inOrder; +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; +import static org.mockito.Mockito.when; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; @@ -135,6 +137,7 @@ public class ShadeListBuilderTest extends SysuiTestCase { public void setUp() { MockitoAnnotations.initMocks(this); allowTestableLooperAsMainThread(); + when(mNotifPipelineFlags.isStabilityIndexFixEnabled()).thenReturn(true); mListBuilder = new ShadeListBuilder( mDumpManager, @@ -1995,22 +1998,89 @@ public class ShadeListBuilderTest extends SysuiTestCase { } @Test + public void testActiveOrdering_withLegacyStability() { + when(mNotifPipelineFlags.isSemiStableSortEnabled()).thenReturn(false); + assertOrder("ABCDEFG", "ABCDEFG", "ABCDEFG", true); // no change + assertOrder("ABCDEFG", "ACDEFXBG", "ACDEFXBG", true); // X + assertOrder("ABCDEFG", "ACDEFBG", "ACDEFBG", true); // no change + assertOrder("ABCDEFG", "ACDEFBXZG", "ACDEFBXZG", true); // Z and X + assertOrder("ABCDEFG", "AXCDEZFBG", "AXCDEZFBG", true); // Z and X + gap + } + + @Test + public void testStableOrdering_withLegacyStability() { + when(mNotifPipelineFlags.isSemiStableSortEnabled()).thenReturn(false); + mStabilityManager.setAllowEntryReordering(false); + assertOrder("ABCDEFG", "ABCDEFG", "ABCDEFG", true); // no change + assertOrder("ABCDEFG", "ACDEFXBG", "XABCDEFG", false); // X + assertOrder("ABCDEFG", "ACDEFBG", "ABCDEFG", false); // no change + assertOrder("ABCDEFG", "ACDEFBXZG", "XZABCDEFG", false); // Z and X + assertOrder("ABCDEFG", "AXCDEZFBG", "XZABCDEFG", false); // Z and X + gap + } + + @Test public void testStableOrdering() { + when(mNotifPipelineFlags.isSemiStableSortEnabled()).thenReturn(true); mStabilityManager.setAllowEntryReordering(false); - assertOrder("ABCDEFG", "ACDEFXBG", "XABCDEFG"); // X - assertOrder("ABCDEFG", "ACDEFBG", "ABCDEFG"); // no change - assertOrder("ABCDEFG", "ACDEFBXZG", "XZABCDEFG"); // Z and X - assertOrder("ABCDEFG", "AXCDEZFBG", "XZABCDEFG"); // Z and X + gap - verify(mStabilityManager, times(4)).onEntryReorderSuppressed(); + // No input or output + assertOrder("", "", "", true); + // Remove everything + assertOrder("ABCDEFG", "", "", true); + // Literally no changes + assertOrder("ABCDEFG", "ABCDEFG", "ABCDEFG", true); + + // No stable order + assertOrder("", "ABCDEFG", "ABCDEFG", true); + + // F moved after A, and... + assertOrder("ABCDEFG", "AFBCDEG", "ABCDEFG", false); // No other changes + assertOrder("ABCDEFG", "AXFBCDEG", "AXBCDEFG", false); // Insert X before F + assertOrder("ABCDEFG", "AFXBCDEG", "AXBCDEFG", false); // Insert X after F + assertOrder("ABCDEFG", "AFBCDEXG", "ABCDEFXG", false); // Insert X where F was + + // B moved after F, and... + assertOrder("ABCDEFG", "ACDEFBG", "ABCDEFG", false); // No other changes + assertOrder("ABCDEFG", "ACDEFXBG", "ABCDEFXG", false); // Insert X before B + assertOrder("ABCDEFG", "ACDEFBXG", "ABCDEFXG", false); // Insert X after B + assertOrder("ABCDEFG", "AXCDEFBG", "AXBCDEFG", false); // Insert X where B was + + // Swap F and B, and... + assertOrder("ABCDEFG", "AFCDEBG", "ABCDEFG", false); // No other changes + assertOrder("ABCDEFG", "AXFCDEBG", "AXBCDEFG", false); // Insert X before F + assertOrder("ABCDEFG", "AFXCDEBG", "AXBCDEFG", false); // Insert X after F + assertOrder("ABCDEFG", "AFCXDEBG", "AXBCDEFG", false); // Insert X between CD (or: ABCXDEFG) + assertOrder("ABCDEFG", "AFCDXEBG", "ABCDXEFG", false); // Insert X between DE (or: ABCDEFXG) + assertOrder("ABCDEFG", "AFCDEXBG", "ABCDEFXG", false); // Insert X before B + assertOrder("ABCDEFG", "AFCDEBXG", "ABCDEFXG", false); // Insert X after B + + // Remove a bunch of entries at once + assertOrder("ABCDEFGHIJKL", "ACEGHI", "ACEGHI", true); + + // Remove a bunch of entries and scramble + assertOrder("ABCDEFGHIJKL", "GCEHAI", "ACEGHI", false); + + // Add a bunch of entries at once + assertOrder("ABCDEFG", "AVBWCXDYZEFG", "AVBWCXDYZEFG", true); + + // Add a bunch of entries and reverse originals + // NOTE: Some of these don't have obviously correct answers + assertOrder("ABCDEFG", "GFEBCDAVWXYZ", "ABCDEFGVWXYZ", false); // appended + assertOrder("ABCDEFG", "VWXYZGFEBCDA", "VWXYZABCDEFG", false); // prepended + assertOrder("ABCDEFG", "GFEBVWXYZCDA", "ABCDEFGVWXYZ", false); // closer to back: append + assertOrder("ABCDEFG", "GFEVWXYZBCDA", "VWXYZABCDEFG", false); // closer to front: prepend + assertOrder("ABCDEFG", "GFEVWBXYZCDA", "VWABCDEFGXYZ", false); // split new entries + + // Swap 2 pairs ("*BC*NO*"->"*NO*CB*"), remove EG, add UVWXYZ throughout + assertOrder("ABCDEFGHIJKLMNOP", "AUNOVDFHWXIJKLMYCBZP", "AUVBCDFHWXIJKLMNOYZP", false); } @Test public void testActiveOrdering() { - assertOrder("ABCDEFG", "ACDEFXBG", "ACDEFXBG"); // X - assertOrder("ABCDEFG", "ACDEFBG", "ACDEFBG"); // no change - assertOrder("ABCDEFG", "ACDEFBXZG", "ACDEFBXZG"); // Z and X - assertOrder("ABCDEFG", "AXCDEZFBG", "AXCDEZFBG"); // Z and X + gap - verify(mStabilityManager, never()).onEntryReorderSuppressed(); + when(mNotifPipelineFlags.isSemiStableSortEnabled()).thenReturn(true); + assertOrder("ABCDEFG", "ACDEFXBG", "ACDEFXBG", true); // X + assertOrder("ABCDEFG", "ACDEFBG", "ACDEFBG", true); // no change + assertOrder("ABCDEFG", "ACDEFBXZG", "ACDEFBXZG", true); // Z and X + assertOrder("ABCDEFG", "AXCDEZFBG", "AXCDEZFBG", true); // Z and X + gap } @Test @@ -2062,6 +2132,52 @@ public class ShadeListBuilderTest extends SysuiTestCase { } @Test + public void stableOrderingDisregardedWithSectionChange() { + when(mNotifPipelineFlags.isSemiStableSortEnabled()).thenReturn(true); + // GIVEN the first sectioner's packages can be changed from run-to-run + List<String> mutableSectionerPackages = new ArrayList<>(); + mutableSectionerPackages.add(PACKAGE_1); + mListBuilder.setSectioners(asList( + new PackageSectioner(mutableSectionerPackages, null), + new PackageSectioner(List.of(PACKAGE_1, PACKAGE_2, PACKAGE_3), null))); + mStabilityManager.setAllowEntryReordering(false); + + // WHEN the list is originally built with reordering disabled (and section changes allowed) + addNotif(0, PACKAGE_1).setRank(4); + addNotif(1, PACKAGE_1).setRank(5); + addNotif(2, PACKAGE_2).setRank(1); + addNotif(3, PACKAGE_2).setRank(2); + addNotif(4, PACKAGE_3).setRank(3); + dispatchBuild(); + + // VERIFY the order and that entry reordering has not been suppressed + verifyBuiltList( + notif(0), + notif(1), + notif(2), + notif(3), + notif(4) + ); + verify(mStabilityManager, never()).onEntryReorderSuppressed(); + + // WHEN the first section now claims PACKAGE_3 notifications + mutableSectionerPackages.add(PACKAGE_3); + dispatchBuild(); + + // VERIFY the re-sectioned notification is inserted at #1 of the first section, which + // is the correct position based on its rank, rather than #3 in the new section simply + // because it was #3 in its previous section. + verifyBuiltList( + notif(4), + notif(0), + notif(1), + notif(2), + notif(3) + ); + verify(mStabilityManager, never()).onEntryReorderSuppressed(); + } + + @Test public void testStableChildOrdering() { // WHEN the list is originally built with reordering disabled mStabilityManager.setAllowEntryReordering(false); @@ -2112,6 +2228,85 @@ public class ShadeListBuilderTest extends SysuiTestCase { ); } + @Test + public void groupRevertingToSummaryDoesNotRetainStablePositionWithLegacyIndexLogic() { + when(mNotifPipelineFlags.isStabilityIndexFixEnabled()).thenReturn(false); + + // GIVEN a notification group is on screen + mStabilityManager.setAllowEntryReordering(false); + + // WHEN the list is originally built with reordering disabled (and section changes allowed) + addNotif(0, PACKAGE_1).setRank(2); + addNotif(1, PACKAGE_1).setRank(3); + addGroupSummary(2, PACKAGE_1, "group").setRank(4); + addGroupChild(3, PACKAGE_1, "group").setRank(5); + addGroupChild(4, PACKAGE_1, "group").setRank(6); + dispatchBuild(); + + verifyBuiltList( + notif(0), + notif(1), + group( + summary(2), + child(3), + child(4) + ) + ); + + // WHEN the notification summary rank increases and children removed + setNewRank(notif(2).entry, 1); + mEntrySet.remove(4); + mEntrySet.remove(3); + dispatchBuild(); + + // VERIFY the summary (incorrectly) moves to the top of the section where it is ranked, + // despite visual stability being active + verifyBuiltList( + notif(2), + notif(0), + notif(1) + ); + } + + @Test + public void groupRevertingToSummaryRetainsStablePosition() { + when(mNotifPipelineFlags.isStabilityIndexFixEnabled()).thenReturn(true); + + // GIVEN a notification group is on screen + mStabilityManager.setAllowEntryReordering(false); + + // WHEN the list is originally built with reordering disabled (and section changes allowed) + addNotif(0, PACKAGE_1).setRank(2); + addNotif(1, PACKAGE_1).setRank(3); + addGroupSummary(2, PACKAGE_1, "group").setRank(4); + addGroupChild(3, PACKAGE_1, "group").setRank(5); + addGroupChild(4, PACKAGE_1, "group").setRank(6); + dispatchBuild(); + + verifyBuiltList( + notif(0), + notif(1), + group( + summary(2), + child(3), + child(4) + ) + ); + + // WHEN the notification summary rank increases and children removed + setNewRank(notif(2).entry, 1); + mEntrySet.remove(4); + mEntrySet.remove(3); + dispatchBuild(); + + // VERIFY the summary stays in the same location on rebuild + verifyBuiltList( + notif(0), + notif(1), + notif(2) + ); + } + private static void setNewRank(NotificationEntry entry, int rank) { entry.setRanking(new RankingBuilder(entry.getRanking()).setRank(rank).build()); } @@ -2255,26 +2450,35 @@ public class ShadeListBuilderTest extends SysuiTestCase { return addGroupChildWithTag(index, packageId, groupId, null); } - private void assertOrder(String visible, String active, String expected) { + private void assertOrder(String visible, String active, String expected, + boolean isOrderedCorrectly) { StringBuilder differenceSb = new StringBuilder(); + NotifSection section = new NotifSection(mock(NotifSectioner.class), 0); for (char c : active.toCharArray()) { if (visible.indexOf(c) < 0) differenceSb.append(c); } String difference = differenceSb.toString(); + int globalIndex = 0; for (int i = 0; i < visible.length(); i++) { - addNotif(i, String.valueOf(visible.charAt(i))) - .setRank(active.indexOf(visible.charAt(i))) + final char c = visible.charAt(i); + // Skip notifications which aren't active anymore + if (!active.contains(String.valueOf(c))) continue; + addNotif(globalIndex++, String.valueOf(c)) + .setRank(active.indexOf(c)) + .setSection(section) .setStableIndex(i); - } - for (int i = 0; i < difference.length(); i++) { - addNotif(i + visible.length(), String.valueOf(difference.charAt(i))) - .setRank(active.indexOf(difference.charAt(i))) + for (char c : difference.toCharArray()) { + addNotif(globalIndex++, String.valueOf(c)) + .setRank(active.indexOf(c)) + .setSection(section) .setStableIndex(-1); } + clearInvocations(mStabilityManager); + dispatchBuild(); StringBuilder resultSb = new StringBuilder(); for (int i = 0; i < expected.length(); i++) { @@ -2284,6 +2488,9 @@ public class ShadeListBuilderTest extends SysuiTestCase { assertEquals("visible [" + visible + "] active [" + active + "]", expected, resultSb.toString()); mEntrySet.clear(); + + verify(mStabilityManager, isOrderedCorrectly ? never() : times(1)) + .onEntryReorderSuppressed(); } private int nextId(String packageName) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorTest.kt index 340bc96f80c2..3ff7639e9262 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/HeadsUpCoordinatorTest.kt @@ -674,7 +674,9 @@ class HeadsUpCoordinatorTest : SysuiTestCase() { @Test fun testOnRankingApplied_newEntryShouldAlert() { // GIVEN that mEntry has never interrupted in the past, and now should + // and is new enough to do so assertFalse(mEntry.hasInterrupted()) + mCoordinator.setUpdateTime(mEntry, mSystemClock.currentTimeMillis()) setShouldHeadsUp(mEntry) whenever(mNotifPipeline.allNotifs).thenReturn(listOf(mEntry)) @@ -690,8 +692,9 @@ class HeadsUpCoordinatorTest : SysuiTestCase() { @Test fun testOnRankingApplied_alreadyAlertedEntryShouldNotAlertAgain() { - // GIVEN that mEntry has alerted in the past + // GIVEN that mEntry has alerted in the past, even if it's new mEntry.setInterruption() + mCoordinator.setUpdateTime(mEntry, mSystemClock.currentTimeMillis()) setShouldHeadsUp(mEntry) whenever(mNotifPipeline.allNotifs).thenReturn(listOf(mEntry)) @@ -725,6 +728,27 @@ class HeadsUpCoordinatorTest : SysuiTestCase() { verify(mHeadsUpManager).showNotification(mEntry) } + @Test + fun testOnRankingApplied_entryUpdatedButTooOld() { + // GIVEN that mEntry is added in a state where it should not HUN + setShouldHeadsUp(mEntry, false) + mCollectionListener.onEntryAdded(mEntry) + + // and it was actually added 10s ago + mCoordinator.setUpdateTime(mEntry, mSystemClock.currentTimeMillis() - 10000) + + // WHEN it is updated to HUN and then a ranking update occurs + setShouldHeadsUp(mEntry) + whenever(mNotifPipeline.allNotifs).thenReturn(listOf(mEntry)) + mCollectionListener.onRankingApplied() + mBeforeTransformGroupsListener.onBeforeTransformGroups(listOf(mEntry)) + mBeforeFinalizeFilterListener.onBeforeFinalizeFilter(listOf(mEntry)) + + // THEN the notification is never bound or shown + verify(mHeadsUpViewBinder, never()).bindHeadsUpView(any(), any()) + verify(mHeadsUpManager, never()).showNotification(any()) + } + private fun setShouldHeadsUp(entry: NotificationEntry, should: Boolean = true) { whenever(mNotificationInterruptStateProvider.shouldHeadsUp(entry)).thenReturn(should) whenever(mNotificationInterruptStateProvider.checkHeadsUp(eq(entry), any())) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java index dcf245525f10..f4adf6927e31 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java @@ -181,7 +181,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase { @Test public void testInflatesNewNotification() { // WHEN there is a new notification - mCollectionListener.onEntryInit(mEntry); + mCollectionListener.onEntryAdded(mEntry); mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); // THEN we inflate it @@ -194,7 +194,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase { @Test public void testRebindsInflatedNotificationsOnUpdate() { // GIVEN an inflated notification - mCollectionListener.onEntryInit(mEntry); + mCollectionListener.onEntryAdded(mEntry); mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); verify(mNotifInflater).inflateViews(eq(mEntry), any(), any()); mNotifInflater.invokeInflateCallbackForEntry(mEntry); @@ -213,7 +213,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase { @Test public void testEntrySmartReplyAdditionWillRebindViews() { // GIVEN an inflated notification - mCollectionListener.onEntryInit(mEntry); + mCollectionListener.onEntryAdded(mEntry); mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); verify(mNotifInflater).inflateViews(eq(mEntry), any(), any()); mNotifInflater.invokeInflateCallbackForEntry(mEntry); @@ -232,7 +232,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase { @Test public void testEntryChangedToMinimizedSectionWillRebindViews() { // GIVEN an inflated notification - mCollectionListener.onEntryInit(mEntry); + mCollectionListener.onEntryAdded(mEntry); mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); verify(mNotifInflater).inflateViews(eq(mEntry), mParamsCaptor.capture(), any()); assertFalse(mParamsCaptor.getValue().isLowPriority()); @@ -254,36 +254,28 @@ public class PreparationCoordinatorTest extends SysuiTestCase { public void testMinimizedEntryMovedIntoGroupWillRebindViews() { // GIVEN an inflated, minimized notification setSectionIsLowPriority(true); - mCollectionListener.onEntryInit(mEntry); + mCollectionListener.onEntryAdded(mEntry); mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); verify(mNotifInflater).inflateViews(eq(mEntry), mParamsCaptor.capture(), any()); assertTrue(mParamsCaptor.getValue().isLowPriority()); mNotifInflater.invokeInflateCallbackForEntry(mEntry); // WHEN notification is moved under a parent - NotificationEntry groupSummary = getNotificationEntryBuilder() - .setParent(ROOT_ENTRY) - .setGroupSummary(mContext, true) - .setGroup(mContext, TEST_GROUP_KEY) - .build(); - GroupEntry parent = mock(GroupEntry.class); - when(parent.getSummary()).thenReturn(groupSummary); - NotificationEntryBuilder.setNewParent(mEntry, parent); - mCollectionListener.onEntryInit(groupSummary); - mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry, groupSummary)); + NotificationEntryBuilder.setNewParent(mEntry, mock(GroupEntry.class)); + mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); // THEN we rebind it as not-minimized verify(mNotifInflater).rebindViews(eq(mEntry), mParamsCaptor.capture(), any()); assertFalse(mParamsCaptor.getValue().isLowPriority()); - // THEN we filter it because the parent summary is not yet inflated. - assertTrue(mUninflatedFilter.shouldFilterOut(mEntry, 0)); + // THEN we do not filter it because it's not the first inflation. + assertFalse(mUninflatedFilter.shouldFilterOut(mEntry, 0)); } @Test public void testEntryRankChangeWillNotRebindViews() { // GIVEN an inflated notification - mCollectionListener.onEntryInit(mEntry); + mCollectionListener.onEntryAdded(mEntry); mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); verify(mNotifInflater).inflateViews(eq(mEntry), any(), any()); mNotifInflater.invokeInflateCallbackForEntry(mEntry); @@ -302,7 +294,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase { @Test public void testDoesntFilterInflatedNotifs() { // GIVEN an inflated notification - mCollectionListener.onEntryInit(mEntry); + mCollectionListener.onEntryAdded(mEntry); mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry)); verify(mNotifInflater).inflateViews(eq(mEntry), any(), any()); mNotifInflater.invokeInflateCallbackForEntry(mEntry); @@ -338,9 +330,9 @@ public class PreparationCoordinatorTest extends SysuiTestCase { mCollectionListener.onEntryInit(entry); } - mCollectionListener.onEntryInit(summary); + mCollectionListener.onEntryAdded(summary); for (NotificationEntry entry : children) { - mCollectionListener.onEntryInit(entry); + mCollectionListener.onEntryAdded(entry); } mBeforeFilterListener.onBeforeFinalizeFilter(List.of(groupEntry)); @@ -401,40 +393,6 @@ public class PreparationCoordinatorTest extends SysuiTestCase { } @Test - public void testPartiallyInflatedGroupsAreNotFilteredOutIfSummaryReinflate() { - // GIVEN a newly-posted group with a summary and two children - final String groupKey = "test_reinflate_group"; - final int summaryId = 1; - final GroupEntry group = new GroupEntryBuilder() - .setKey(groupKey) - .setCreationTime(400) - .setSummary(getNotificationEntryBuilder().setId(summaryId).setImportance(1).build()) - .addChild(getNotificationEntryBuilder().setId(2).build()) - .addChild(getNotificationEntryBuilder().setId(3).build()) - .build(); - fireAddEvents(List.of(group)); - final NotificationEntry summary = group.getSummary(); - final NotificationEntry child0 = group.getChildren().get(0); - final NotificationEntry child1 = group.getChildren().get(1); - mBeforeFilterListener.onBeforeFinalizeFilter(List.of(group)); - - // WHEN all of the children (but not the summary) finish inflating - mNotifInflater.invokeInflateCallbackForEntry(child0); - mNotifInflater.invokeInflateCallbackForEntry(child1); - mNotifInflater.invokeInflateCallbackForEntry(summary); - - // WHEN the summary is updated and starts re-inflating - summary.setRanking(new RankingBuilder(summary.getRanking()).setImportance(4).build()); - fireUpdateEvents(summary); - mBeforeFilterListener.onBeforeFinalizeFilter(List.of(group)); - - // THEN the entire group is still not filtered out - assertFalse(mUninflatedFilter.shouldFilterOut(summary, 401)); - assertFalse(mUninflatedFilter.shouldFilterOut(child0, 401)); - assertFalse(mUninflatedFilter.shouldFilterOut(child1, 401)); - } - - @Test public void testCompletedInflatedGroupsAreReleased() { // GIVEN a newly-posted group with a summary and two children final GroupEntry group = new GroupEntryBuilder() @@ -454,7 +412,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase { mNotifInflater.invokeInflateCallbackForEntry(child1); mNotifInflater.invokeInflateCallbackForEntry(summary); - // THEN the entire group is no longer filtered out + // THEN the entire group is still filtered out assertFalse(mUninflatedFilter.shouldFilterOut(summary, 401)); assertFalse(mUninflatedFilter.shouldFilterOut(child0, 401)); assertFalse(mUninflatedFilter.shouldFilterOut(child1, 401)); @@ -536,11 +494,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase { private void fireAddEvents(NotificationEntry entry) { mCollectionListener.onEntryInit(entry); - mCollectionListener.onEntryInit(entry); - } - - private void fireUpdateEvents(NotificationEntry entry) { - mCollectionListener.onEntryUpdated(entry); + mCollectionListener.onEntryAdded(entry); } private static final String TEST_MESSAGE = "TEST_MESSAGE"; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/listbuilder/SemiStableSortTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/listbuilder/SemiStableSortTest.kt new file mode 100644 index 000000000000..1cdd023dd01c --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/listbuilder/SemiStableSortTest.kt @@ -0,0 +1,210 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.systemui.statusbar.notification.collection.listbuilder + +import android.testing.AndroidTestingRunner +import android.testing.TestableLooper.RunWithLooper +import android.util.Log +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +@SmallTest +@RunWith(AndroidTestingRunner::class) +@RunWithLooper +class SemiStableSortTest : SysuiTestCase() { + + var shuffleInput: Boolean = false + var testStabilizeTo: Boolean = false + var sorter: SemiStableSort? = null + + @Before + fun setUp() { + shuffleInput = false + sorter = null + } + + private fun stringStabilizeTo( + stableOrder: String, + activeOrder: String, + ): Pair<String, Boolean> { + val actives = activeOrder.toMutableList() + val result = mutableListOf<Char>() + return (sorter ?: SemiStableSort()) + .stabilizeTo( + actives, + { ch -> stableOrder.indexOf(ch).takeIf { it >= 0 } }, + result, + ) + .let { ordered -> result.joinToString("") to ordered } + } + + private fun stringSort( + stableOrder: String, + activeOrder: String, + ): Pair<String, Boolean> { + val actives = activeOrder.toMutableList() + if (shuffleInput) { + actives.shuffle() + } + return (sorter ?: SemiStableSort()) + .sort( + actives, + { ch -> stableOrder.indexOf(ch).takeIf { it >= 0 } }, + compareBy { activeOrder.indexOf(it) }, + ) + .let { ordered -> actives.joinToString("") to ordered } + } + + private fun testCase( + stableOrder: String, + activeOrder: String, + expected: String, + expectOrdered: Boolean, + ) { + val (mergeResult, ordered) = + if (testStabilizeTo) stringStabilizeTo(stableOrder, activeOrder) + else stringSort(stableOrder, activeOrder) + val resultPass = expected == mergeResult + val orderedPass = ordered == expectOrdered + val pass = resultPass && orderedPass + val resultSuffix = + if (resultPass) "result=$expected" else "expected=$expected got=$mergeResult" + val orderedSuffix = + if (orderedPass) "ordered=$ordered" else "expected ordered to be $expectOrdered" + val readableResult = "stable=$stableOrder active=$activeOrder $resultSuffix $orderedSuffix" + Log.d("SemiStableSortTest", "${if (pass) "PASS" else "FAIL"}: $readableResult") + if (!pass) { + throw AssertionError("Test case failed: $readableResult") + } + } + + private fun runAllTestCases() { + // No input or output + testCase("", "", "", true) + // Remove everything + testCase("ABCDEFG", "", "", true) + // Literally no changes + testCase("ABCDEFG", "ABCDEFG", "ABCDEFG", true) + + // No stable order + testCase("", "ABCDEFG", "ABCDEFG", true) + + // F moved after A, and... + testCase("ABCDEFG", "AFBCDEG", "ABCDEFG", false) // No other changes + testCase("ABCDEFG", "AXFBCDEG", "AXBCDEFG", false) // Insert X before F + testCase("ABCDEFG", "AFXBCDEG", "AXBCDEFG", false) // Insert X after F + testCase("ABCDEFG", "AFBCDEXG", "ABCDEFXG", false) // Insert X where F was + + // B moved after F, and... + testCase("ABCDEFG", "ACDEFBG", "ABCDEFG", false) // No other changes + testCase("ABCDEFG", "ACDEFXBG", "ABCDEFXG", false) // Insert X before B + testCase("ABCDEFG", "ACDEFBXG", "ABCDEFXG", false) // Insert X after B + testCase("ABCDEFG", "AXCDEFBG", "AXBCDEFG", false) // Insert X where B was + + // Swap F and B, and... + testCase("ABCDEFG", "AFCDEBG", "ABCDEFG", false) // No other changes + testCase("ABCDEFG", "AXFCDEBG", "AXBCDEFG", false) // Insert X before F + testCase("ABCDEFG", "AFXCDEBG", "AXBCDEFG", false) // Insert X after F + testCase("ABCDEFG", "AFCXDEBG", "AXBCDEFG", false) // Insert X between CD (Alt: ABCXDEFG) + testCase("ABCDEFG", "AFCDXEBG", "ABCDXEFG", false) // Insert X between DE (Alt: ABCDEFXG) + testCase("ABCDEFG", "AFCDEXBG", "ABCDEFXG", false) // Insert X before B + testCase("ABCDEFG", "AFCDEBXG", "ABCDEFXG", false) // Insert X after B + + // Remove a bunch of entries at once + testCase("ABCDEFGHIJKL", "ACEGHI", "ACEGHI", true) + + // Remove a bunch of entries and scramble + testCase("ABCDEFGHIJKL", "GCEHAI", "ACEGHI", false) + + // Add a bunch of entries at once + testCase("ABCDEFG", "AVBWCXDYZEFG", "AVBWCXDYZEFG", true) + + // Add a bunch of entries and reverse originals + // NOTE: Some of these don't have obviously correct answers + testCase("ABCDEFG", "GFEBCDAVWXYZ", "ABCDEFGVWXYZ", false) // appended + testCase("ABCDEFG", "VWXYZGFEBCDA", "VWXYZABCDEFG", false) // prepended + testCase("ABCDEFG", "GFEBVWXYZCDA", "ABCDEFGVWXYZ", false) // closer to back: append + testCase("ABCDEFG", "GFEVWXYZBCDA", "VWXYZABCDEFG", false) // closer to front: prepend + testCase("ABCDEFG", "GFEVWBXYZCDA", "VWABCDEFGXYZ", false) // split new entries + + // Swap 2 pairs ("*BC*NO*"->"*NO*CB*"), remove EG, add UVWXYZ throughout + testCase("ABCDEFGHIJKLMNOP", "AUNOVDFHWXIJKLMYCBZP", "AUVBCDFHWXIJKLMNOYZP", false) + } + + @Test + fun testSort() { + testStabilizeTo = false + shuffleInput = false + sorter = null + runAllTestCases() + } + + @Test + fun testSortWithSingleInstance() { + testStabilizeTo = false + shuffleInput = false + sorter = SemiStableSort() + runAllTestCases() + } + + @Test + fun testSortWithShuffledInput() { + testStabilizeTo = false + shuffleInput = true + sorter = null + runAllTestCases() + } + + @Test + fun testStabilizeTo() { + testStabilizeTo = true + sorter = null + runAllTestCases() + } + + @Test + fun testStabilizeToWithSingleInstance() { + testStabilizeTo = true + sorter = SemiStableSort() + runAllTestCases() + } + + @Test + fun testIsSorted() { + val intCmp = Comparator<Int> { x, y -> Integer.compare(x, y) } + SemiStableSort.apply { + assertTrue(emptyList<Int>().isSorted(intCmp)) + assertTrue(listOf(1).isSorted(intCmp)) + assertTrue(listOf(1, 2).isSorted(intCmp)) + assertTrue(listOf(1, 2, 3).isSorted(intCmp)) + assertTrue(listOf(1, 2, 3, 4).isSorted(intCmp)) + assertTrue(listOf(1, 2, 3, 4, 5).isSorted(intCmp)) + assertTrue(listOf(1, 1, 1, 1, 1).isSorted(intCmp)) + assertTrue(listOf(1, 1, 2, 2, 3, 3).isSorted(intCmp)) + assertFalse(listOf(2, 1).isSorted(intCmp)) + assertFalse(listOf(2, 1, 2).isSorted(intCmp)) + assertFalse(listOf(1, 2, 1).isSorted(intCmp)) + assertFalse(listOf(1, 2, 3, 2, 5).isSorted(intCmp)) + assertFalse(listOf(5, 2, 3, 4, 5).isSorted(intCmp)) + assertFalse(listOf(1, 2, 3, 4, 1).isSorted(intCmp)) + } + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelperTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelperTest.kt new file mode 100644 index 000000000000..20369546d68a --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderHelperTest.kt @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.systemui.statusbar.notification.collection.listbuilder + +import android.testing.AndroidTestingRunner +import android.testing.TestableLooper.RunWithLooper +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.statusbar.notification.collection.listbuilder.ShadeListBuilderHelper.getContiguousSubLists +import com.google.common.truth.Truth.assertThat +import org.junit.Test +import org.junit.runner.RunWith + +@SmallTest +@RunWith(AndroidTestingRunner::class) +@RunWithLooper +class ShadeListBuilderHelperTest : SysuiTestCase() { + + @Test + fun testGetContiguousSubLists() { + assertThat(getContiguousSubLists("AAAAAA".toList()) { it }) + .containsExactly( + listOf('A', 'A', 'A', 'A', 'A', 'A'), + ) + .inOrder() + assertThat(getContiguousSubLists("AAABBB".toList()) { it }) + .containsExactly( + listOf('A', 'A', 'A'), + listOf('B', 'B', 'B'), + ) + .inOrder() + assertThat(getContiguousSubLists("AAABAA".toList()) { it }) + .containsExactly( + listOf('A', 'A', 'A'), + listOf('B'), + listOf('A', 'A'), + ) + .inOrder() + assertThat(getContiguousSubLists("AAABAA".toList(), minLength = 2) { it }) + .containsExactly( + listOf('A', 'A', 'A'), + listOf('A', 'A'), + ) + .inOrder() + assertThat(getContiguousSubLists("AAABBBBCCDEEE".toList()) { it }) + .containsExactly( + listOf('A', 'A', 'A'), + listOf('B', 'B', 'B', 'B'), + listOf('C', 'C'), + listOf('D'), + listOf('E', 'E', 'E'), + ) + .inOrder() + assertThat(getContiguousSubLists("AAABBBBCCDEEE".toList(), minLength = 2) { it }) + .containsExactly( + listOf('A', 'A', 'A'), + listOf('B', 'B', 'B', 'B'), + listOf('C', 'C'), + listOf('E', 'E', 'E'), + ) + .inOrder() + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/AmbientStateTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/AmbientStateTest.kt index 11798a7a4f96..87f4c323b7cc 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/AmbientStateTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/AmbientStateTest.kt @@ -361,6 +361,22 @@ class AmbientStateTest : SysuiTestCase() { assertThat(sut.isOnKeyguard).isFalse() } // endregion + + // region mIsClosing + @Test + fun isClosing_whenShadeClosing_shouldReturnTrue() { + sut.setIsClosing(true) + + assertThat(sut.isClosing).isTrue() + } + + @Test + fun isClosing_whenShadeFinishClosing_shouldReturnFalse() { + sut.setIsClosing(false) + + assertThat(sut.isClosing).isFalse() + } + // endregion } // region Arrange helper methods. diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java index 43530365360b..35c8b61b6383 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java @@ -728,6 +728,57 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { verify(mNotificationStackSizeCalculator).computeHeight(any(), anyInt(), anyFloat()); } + @Test + public void testSetOwnScrollY_shadeNotClosing_scrollYChanges() { + // Given: shade is not closing, scrollY is 0 + mAmbientState.setScrollY(0); + assertEquals(0, mAmbientState.getScrollY()); + mAmbientState.setIsClosing(false); + + // When: call NotificationStackScrollLayout.setOwnScrollY to set scrollY to 1 + mStackScroller.setOwnScrollY(1); + + // Then: scrollY should be set to 1 + assertEquals(1, mAmbientState.getScrollY()); + + // Reset scrollY back to 0 to avoid interfering with other tests + mStackScroller.setOwnScrollY(0); + assertEquals(0, mAmbientState.getScrollY()); + } + + @Test + public void testSetOwnScrollY_shadeClosing_scrollYDoesNotChange() { + // Given: shade is closing, scrollY is 0 + mAmbientState.setScrollY(0); + assertEquals(0, mAmbientState.getScrollY()); + mAmbientState.setIsClosing(true); + + // When: call NotificationStackScrollLayout.setOwnScrollY to set scrollY to 1 + mStackScroller.setOwnScrollY(1); + + // Then: scrollY should not change, it should still be 0 + assertEquals(0, mAmbientState.getScrollY()); + + // Reset scrollY and mAmbientState.mIsClosing to avoid interfering with other tests + mAmbientState.setIsClosing(false); + mStackScroller.setOwnScrollY(0); + assertEquals(0, mAmbientState.getScrollY()); + } + + @Test + public void onShadeFlingClosingEnd_scrollYShouldBeSetToZero() { + // Given: mAmbientState.mIsClosing is set to be true + // mIsExpanded is set to be false + mAmbientState.setIsClosing(true); + mStackScroller.setIsExpanded(false); + + // When: onExpansionStopped is called + mStackScroller.onExpansionStopped(); + + // Then: mAmbientState.scrollY should be set to be 0 + assertEquals(mAmbientState.getScrollY(), 0); + } + private void setBarStateForTest(int state) { // Can't inject this through the listener or we end up on the actual implementation // rather than the mock because the spy just coppied the anonymous inner /shruggie. diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java index ad497a2ec1e1..d4cd4a608340 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java @@ -98,7 +98,8 @@ import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.colorextraction.SysuiColorExtractor; import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dump.DumpManager; -import com.android.systemui.flags.FeatureFlags; +import com.android.systemui.flags.FakeFeatureFlags; +import com.android.systemui.flags.Flags; import com.android.systemui.fragments.FragmentService; import com.android.systemui.keyguard.KeyguardUnlockAnimationController; import com.android.systemui.keyguard.KeyguardViewMediator; @@ -271,7 +272,6 @@ public class CentralSurfacesImplTest extends SysuiTestCase { @Mock private OngoingCallController mOngoingCallController; @Mock private StatusBarHideIconsForBouncerManager mStatusBarHideIconsForBouncerManager; @Mock private LockscreenShadeTransitionController mLockscreenTransitionController; - @Mock private FeatureFlags mFeatureFlags; @Mock private NotificationVisibilityProvider mVisibilityProvider; @Mock private WallpaperManager mWallpaperManager; @Mock private IWallpaperManager mIWallpaperManager; @@ -296,9 +296,10 @@ public class CentralSurfacesImplTest extends SysuiTestCase { private ShadeController mShadeController; private final FakeSystemClock mFakeSystemClock = new FakeSystemClock(); - private FakeExecutor mMainExecutor = new FakeExecutor(mFakeSystemClock); - private FakeExecutor mUiBgExecutor = new FakeExecutor(mFakeSystemClock); - private InitController mInitController = new InitController(); + private final FakeExecutor mMainExecutor = new FakeExecutor(mFakeSystemClock); + private final FakeExecutor mUiBgExecutor = new FakeExecutor(mFakeSystemClock); + private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags(); + private final InitController mInitController = new InitController(); private final DumpManager mDumpManager = new DumpManager(); @Before @@ -1017,6 +1018,60 @@ public class CentralSurfacesImplTest extends SysuiTestCase { } @Test + public void collapseShade_callsAnimateCollapsePanels_whenExpanded() { + // GIVEN the shade is expanded + mCentralSurfaces.setPanelExpanded(true); + mCentralSurfaces.setBarStateForTest(StatusBarState.SHADE); + + // WHEN collapseShade is called + mCentralSurfaces.collapseShade(); + + // VERIFY that animateCollapsePanels is called + verify(mShadeController).animateCollapsePanels(); + } + + @Test + public void collapseShade_doesNotCallAnimateCollapsePanels_whenCollapsed() { + // GIVEN the shade is collapsed + mCentralSurfaces.setPanelExpanded(false); + mCentralSurfaces.setBarStateForTest(StatusBarState.SHADE); + + // WHEN collapseShade is called + mCentralSurfaces.collapseShade(); + + // VERIFY that animateCollapsePanels is NOT called + verify(mShadeController, never()).animateCollapsePanels(); + } + + @Test + public void collapseShadeForBugReport_callsAnimateCollapsePanels_whenFlagDisabled() { + // GIVEN the shade is expanded & flag enabled + mCentralSurfaces.setPanelExpanded(true); + mCentralSurfaces.setBarStateForTest(StatusBarState.SHADE); + mFeatureFlags.set(Flags.LEAVE_SHADE_OPEN_FOR_BUGREPORT, false); + + // WHEN collapseShadeForBugreport is called + mCentralSurfaces.collapseShadeForBugreport(); + + // VERIFY that animateCollapsePanels is called + verify(mShadeController).animateCollapsePanels(); + } + + @Test + public void collapseShadeForBugReport_doesNotCallAnimateCollapsePanels_whenFlagEnabled() { + // GIVEN the shade is expanded & flag enabled + mCentralSurfaces.setPanelExpanded(true); + mCentralSurfaces.setBarStateForTest(StatusBarState.SHADE); + mFeatureFlags.set(Flags.LEAVE_SHADE_OPEN_FOR_BUGREPORT, true); + + // WHEN collapseShadeForBugreport is called + mCentralSurfaces.collapseShadeForBugreport(); + + // VERIFY that animateCollapsePanels is called + verify(mShadeController, never()).animateCollapsePanels(); + } + + @Test public void deviceStateChange_unfolded_shadeOpen_setsLeaveOpenOnKeyguardHide() { when(mKeyguardStateController.isShowing()).thenReturn(false); setFoldedStates(FOLD_STATE_FOLDED); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLoggerTest.kt index 65e2964ea332..3a0a94ddd511 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentLoggerTest.kt @@ -20,7 +20,7 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.log.LogBufferFactory -import com.android.systemui.log.LogcatEchoTracker +import com.android.systemui.plugins.log.LogcatEchoTracker import com.android.systemui.statusbar.disableflags.DisableFlagsLogger import com.google.common.truth.Truth.assertThat import java.io.PrintWriter diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentTest.java index 3a006adb1933..36e76f47ca4e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragmentTest.java @@ -49,9 +49,9 @@ import com.android.systemui.R; import com.android.systemui.SysuiBaseFragmentTest; import com.android.systemui.dump.DumpManager; import com.android.systemui.flags.FeatureFlags; -import com.android.systemui.log.LogBuffer; -import com.android.systemui.log.LogcatEchoTracker; import com.android.systemui.plugins.DarkIconDispatcher; +import com.android.systemui.plugins.log.LogBuffer; +import com.android.systemui.plugins.log.LogcatEchoTracker; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.shade.ShadeExpansionStateManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherControllerOldImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherControllerOldImplTest.kt index bf432388ad28..eba3b04f3472 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherControllerOldImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherControllerOldImplTest.kt @@ -20,7 +20,6 @@ import android.content.Intent import android.os.UserHandle import android.testing.AndroidTestingRunner import android.testing.TestableLooper -import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.flags.FeatureFlags @@ -34,8 +33,8 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock -import org.mockito.Mockito.verify import org.mockito.Mockito.`when` +import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @RunWith(AndroidTestingRunner::class) @@ -91,7 +90,7 @@ class StatusBarUserSwitcherControllerOldImplTest : SysuiTestCase() { fun testStartActivity() { `when`(featureFlags.isEnabled(Flags.FULL_SCREEN_USER_SWITCHER)).thenReturn(false) statusBarUserSwitcherContainer.callOnClick() - verify(userSwitcherDialogController).showDialog(any(View::class.java)) + verify(userSwitcherDialogController).showDialog(any(), any()) `when`(featureFlags.isEnabled(Flags.FULL_SCREEN_USER_SWITCHER)).thenReturn(true) statusBarUserSwitcherContainer.callOnClick() verify(activityStarter).startActivity(any(Intent::class.java), diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLoggerTest.kt index 0e75c74ef6f5..b32058fca109 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLoggerTest.kt @@ -22,7 +22,7 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager import com.android.systemui.log.LogBufferFactory -import com.android.systemui.log.LogcatEchoTracker +import com.android.systemui.plugins.log.LogcatEchoTracker import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger.Companion.logInputChange import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger.Companion.logOutputChange import com.google.common.truth.Truth.assertThat diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt index a3ad028519bb..e56623f9fea2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt @@ -22,7 +22,7 @@ import androidx.test.filters.SmallTest import com.android.settingslib.AccessibilityContentDescriptions.WIFI_CONNECTION_STRENGTH import com.android.settingslib.AccessibilityContentDescriptions.WIFI_NO_CONNECTION import com.android.systemui.SysuiTestCase -import com.android.systemui.common.shared.model.ContentDescription +import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_FULL_ICONS import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_INTERNET_ICONS import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_NETWORK @@ -125,19 +125,12 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase } else { testCase.expected.contentDescription.invoke(context) } - assertThat(iconFlow.value?.contentDescription?.getAsString()) + assertThat(iconFlow.value?.contentDescription?.loadContentDescription(context)) .isEqualTo(expectedContentDescription) job.cancel() } - private fun ContentDescription.getAsString(): String? { - return when (this) { - is ContentDescription.Loaded -> this.description - is ContentDescription.Resource -> context.getString(this.res) - } - } - internal data class Expected( /** The resource that should be used for the icon. */ @DrawableRes val iconResource: Int, diff --git a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt index b10aa125c69d..b68eb88d46db 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewDisplayControllerTest.kt @@ -63,8 +63,6 @@ class TemporaryViewDisplayControllerTest : SysuiTestCase() { @Mock private lateinit var powerManager: PowerManager - private var shouldIgnoreViewRemoval: Boolean = false - @Before fun setUp() { MockitoAnnotations.initMocks(this) @@ -209,26 +207,6 @@ class TemporaryViewDisplayControllerTest : SysuiTestCase() { verify(windowManager, never()).removeView(any()) } - @Test - fun removeView_shouldIgnoreRemovalFalse_viewRemoved() { - shouldIgnoreViewRemoval = false - underTest.displayView(getState()) - - underTest.removeView("reason") - - verify(windowManager).removeView(any()) - } - - @Test - fun removeView_shouldIgnoreRemovalTrue_viewNotRemoved() { - shouldIgnoreViewRemoval = true - underTest.displayView(getState()) - - underTest.removeView("reason") - - verify(windowManager, never()).removeView(any()) - } - private fun getState(name: String = "name") = ViewInfo(name) private fun getConfigurationListener(): ConfigurationListener { @@ -267,10 +245,6 @@ class TemporaryViewDisplayControllerTest : SysuiTestCase() { mostRecentViewInfo = newInfo } - override fun shouldIgnoreViewRemoval(info: ViewInfo, removalReason: String): Boolean { - return shouldIgnoreViewRemoval - } - override fun getTouchableRegion(view: View, outRect: Rect) { outRect.setEmpty() } diff --git a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewLoggerTest.kt index c9f2b4db81ef..13e9f608158e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewLoggerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/TemporaryViewLoggerTest.kt @@ -19,9 +19,9 @@ package com.android.systemui.temporarydisplay import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager -import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogBufferFactory -import com.android.systemui.log.LogcatEchoTracker +import com.android.systemui.plugins.log.LogBuffer +import com.android.systemui.plugins.log.LogcatEchoTracker import com.google.common.truth.Truth.assertThat import java.io.PrintWriter import java.io.StringWriter diff --git a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt index 2af48021d099..fa78b3832158 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt @@ -16,10 +16,6 @@ package com.android.systemui.temporarydisplay.chipbar -import android.content.pm.ApplicationInfo -import android.content.pm.PackageManager -import android.graphics.drawable.Drawable -import android.media.MediaRoute2Info import android.os.PowerManager import android.testing.AndroidTestingRunner import android.testing.TestableLooper @@ -31,19 +27,18 @@ import android.widget.ImageView import android.widget.TextView import androidx.test.filters.SmallTest import com.android.internal.logging.testing.UiEventLoggerFake -import com.android.internal.statusbar.IUndoMediaTransferCallback import com.android.systemui.R import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingCollector +import com.android.systemui.common.shared.model.ContentDescription +import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription +import com.android.systemui.common.shared.model.Icon +import com.android.systemui.common.shared.model.Text import com.android.systemui.media.taptotransfer.common.MediaTttLogger -import com.android.systemui.media.taptotransfer.sender.ChipStateSender -import com.android.systemui.media.taptotransfer.sender.MediaTttSenderUiEventLogger -import com.android.systemui.media.taptotransfer.sender.MediaTttSenderUiEvents import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.mockito.any -import com.android.systemui.util.mockito.eq import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.util.view.ViewUtil import com.google.common.truth.Truth.assertThat @@ -53,7 +48,6 @@ import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mock -import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.Mockito.`when` as whenever import org.mockito.MockitoAnnotations @@ -64,523 +58,277 @@ import org.mockito.MockitoAnnotations class ChipbarCoordinatorTest : SysuiTestCase() { private lateinit var underTest: FakeChipbarCoordinator - @Mock - private lateinit var packageManager: PackageManager - @Mock - private lateinit var applicationInfo: ApplicationInfo - @Mock - private lateinit var logger: MediaTttLogger - @Mock - private lateinit var accessibilityManager: AccessibilityManager - @Mock - private lateinit var configurationController: ConfigurationController - @Mock - private lateinit var powerManager: PowerManager - @Mock - private lateinit var windowManager: WindowManager - @Mock - private lateinit var falsingManager: FalsingManager - @Mock - private lateinit var falsingCollector: FalsingCollector - @Mock - private lateinit var viewUtil: ViewUtil - private lateinit var fakeAppIconDrawable: Drawable + @Mock private lateinit var logger: MediaTttLogger + @Mock private lateinit var accessibilityManager: AccessibilityManager + @Mock private lateinit var configurationController: ConfigurationController + @Mock private lateinit var powerManager: PowerManager + @Mock private lateinit var windowManager: WindowManager + @Mock private lateinit var falsingManager: FalsingManager + @Mock private lateinit var falsingCollector: FalsingCollector + @Mock private lateinit var viewUtil: ViewUtil private lateinit var fakeClock: FakeSystemClock private lateinit var fakeExecutor: FakeExecutor private lateinit var uiEventLoggerFake: UiEventLoggerFake - private lateinit var senderUiEventLogger: MediaTttSenderUiEventLogger @Before fun setUp() { MockitoAnnotations.initMocks(this) - - fakeAppIconDrawable = context.getDrawable(R.drawable.ic_cake)!! - whenever(applicationInfo.loadLabel(packageManager)).thenReturn(APP_NAME) - whenever(packageManager.getApplicationIcon(PACKAGE_NAME)).thenReturn(fakeAppIconDrawable) - whenever(packageManager.getApplicationInfo( - eq(PACKAGE_NAME), any<PackageManager.ApplicationInfoFlags>() - )).thenReturn(applicationInfo) - context.setMockPackageManager(packageManager) + whenever(accessibilityManager.getRecommendedTimeoutMillis(any(), any())).thenReturn(TIMEOUT) fakeClock = FakeSystemClock() fakeExecutor = FakeExecutor(fakeClock) uiEventLoggerFake = UiEventLoggerFake() - senderUiEventLogger = MediaTttSenderUiEventLogger(uiEventLoggerFake) - - whenever(accessibilityManager.getRecommendedTimeoutMillis(any(), any())).thenReturn(TIMEOUT) - underTest = FakeChipbarCoordinator( - context, - logger, - windowManager, - fakeExecutor, - accessibilityManager, - configurationController, - powerManager, - senderUiEventLogger, - falsingManager, - falsingCollector, - viewUtil, - ) + underTest = + FakeChipbarCoordinator( + context, + logger, + windowManager, + fakeExecutor, + accessibilityManager, + configurationController, + powerManager, + falsingManager, + falsingCollector, + viewUtil, + ) underTest.start() } @Test - fun almostCloseToStartCast_appIcon_deviceName_noLoadingIcon_noUndo_noFailureIcon() { - val state = almostCloseToStartCast() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(chipView.getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) - ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE) - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE) - } - - @Test - fun almostCloseToEndCast_appIcon_deviceName_noLoadingIcon_noUndo_noFailureIcon() { - val state = almostCloseToEndCast() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(chipView.getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) - ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE) - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE) - } + fun displayView_loadedIcon_correctlyRendered() { + val drawable = context.getDrawable(R.drawable.ic_celebration)!! - @Test - fun transferToReceiverTriggered_appIcon_loadingIcon_noUndo_noFailureIcon() { - val state = transferToReceiverTriggered() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(chipView.getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) + underTest.displayView( + ChipbarInfo( + Icon.Loaded(drawable, contentDescription = ContentDescription.Loaded("loadedCD")), + Text.Loaded("text"), + endItem = null, + ) ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.VISIBLE) - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE) - } - @Test - fun transferToThisDeviceTriggered_appIcon_loadingIcon_noUndo_noFailureIcon() { - val state = transferToThisDeviceTriggered() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(chipView.getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) - ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.VISIBLE) - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE) + val iconView = getChipbarView().getStartIconView() + assertThat(iconView.drawable).isEqualTo(drawable) + assertThat(iconView.contentDescription).isEqualTo("loadedCD") } @Test - fun transferToReceiverSucceeded_appIcon_deviceName_noLoadingIcon_noFailureIcon() { - val state = transferToReceiverSucceeded() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(chipView.getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) + fun displayView_resourceIcon_correctlyRendered() { + val contentDescription = ContentDescription.Resource(R.string.controls_error_timeout) + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.drawable.ic_cake, contentDescription), + Text.Loaded("text"), + endItem = null, + ) ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE) - } - - @Test - fun transferToReceiverSucceeded_nullUndoRunnable_noUndo() { - underTest.displayView(transferToReceiverSucceeded(undoCallback = null)) - - val chipView = getChipView() - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - } - - @Test - fun transferToReceiverSucceeded_withUndoRunnable_undoWithClick() { - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() {} - } - underTest.displayView(transferToReceiverSucceeded(undoCallback)) - - val chipView = getChipView() - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.VISIBLE) - assertThat(chipView.getUndoButton().hasOnClickListeners()).isTrue() - } - @Test - fun transferToReceiverSucceeded_withUndoRunnable_undoButtonClickRunsRunnable() { - var undoCallbackCalled = false - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() { - undoCallbackCalled = true - } - } - - underTest.displayView(transferToReceiverSucceeded(undoCallback)) - getChipView().getUndoButton().performClick() - - assertThat(undoCallbackCalled).isTrue() + val iconView = getChipbarView().getStartIconView() + assertThat(iconView.contentDescription) + .isEqualTo(contentDescription.loadContentDescription(context)) } @Test - fun transferToReceiverSucceeded_withUndoRunnable_falseTap_callbackNotRun() { - whenever(falsingManager.isFalseTap(anyInt())).thenReturn(true) - var undoCallbackCalled = false - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() { - undoCallbackCalled = true - } - } - - underTest.displayView(transferToReceiverSucceeded(undoCallback)) - getChipView().getUndoButton().performClick() - - assertThat(undoCallbackCalled).isFalse() - } - - @Test - fun transferToReceiverSucceeded_withUndoRunnable_realTap_callbackRun() { - whenever(falsingManager.isFalseTap(anyInt())).thenReturn(false) - var undoCallbackCalled = false - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() { - undoCallbackCalled = true - } - } - - underTest.displayView(transferToReceiverSucceeded(undoCallback)) - getChipView().getUndoButton().performClick() - - assertThat(undoCallbackCalled).isTrue() - } - - @Test - fun transferToReceiverSucceeded_undoButtonClick_switchesToTransferToThisDeviceTriggered() { - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() {} - } - underTest.displayView(transferToReceiverSucceeded(undoCallback)) - - getChipView().getUndoButton().performClick() - - assertThat(getChipView().getChipText()).isEqualTo( - transferToThisDeviceTriggered().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) - assertThat(uiEventLoggerFake.eventId(0)).isEqualTo( - MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_RECEIVER_CLICKED.id - ) - } - - @Test - fun transferToThisDeviceSucceeded_appIcon_deviceName_noLoadingIcon_noFailureIcon() { - val state = transferToThisDeviceSucceeded() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(chipView.getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) + fun displayView_loadedText_correctlyRendered() { + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("display view text here"), + endItem = null, + ) ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE) - } - - @Test - fun transferToThisDeviceSucceeded_nullUndoRunnable_noUndo() { - underTest.displayView(transferToThisDeviceSucceeded(undoCallback = null)) - - val chipView = getChipView() - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - } - @Test - fun transferToThisDeviceSucceeded_withUndoRunnable_undoWithClick() { - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() {} - } - underTest.displayView(transferToThisDeviceSucceeded(undoCallback)) - - val chipView = getChipView() - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.VISIBLE) - assertThat(chipView.getUndoButton().hasOnClickListeners()).isTrue() + assertThat(getChipbarView().getChipText()).isEqualTo("display view text here") } @Test - fun transferToThisDeviceSucceeded_withUndoRunnable_undoButtonClickRunsRunnable() { - var undoCallbackCalled = false - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() { - undoCallbackCalled = true - } - } - - underTest.displayView(transferToThisDeviceSucceeded(undoCallback)) - getChipView().getUndoButton().performClick() - - assertThat(undoCallbackCalled).isTrue() - } - - @Test - fun transferToThisDeviceSucceeded_undoButtonClick_switchesToTransferToReceiverTriggered() { - val undoCallback = object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() {} - } - underTest.displayView(transferToThisDeviceSucceeded(undoCallback)) - - getChipView().getUndoButton().performClick() - - assertThat(getChipView().getChipText()).isEqualTo( - transferToReceiverTriggered().state.getChipTextString(context, OTHER_DEVICE_NAME) - ) - assertThat(uiEventLoggerFake.eventId(0)).isEqualTo( - MediaTttSenderUiEvents.MEDIA_TTT_SENDER_UNDO_TRANSFER_TO_THIS_DEVICE_CLICKED.id + fun displayView_resourceText_correctlyRendered() { + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Resource(R.string.screenrecord_start_error), + endItem = null, + ) ) - } - @Test - fun transferToReceiverFailed_appIcon_noDeviceName_noLoadingIcon_noUndo_failureIcon() { - val state = transferToReceiverFailed() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(getChipView().getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) - ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE) - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(getChipbarView().getChipText()) + .isEqualTo(context.getString(R.string.screenrecord_start_error)) } @Test - fun transferToThisDeviceFailed_appIcon_noDeviceName_noLoadingIcon_noUndo_failureIcon() { - val state = transferToThisDeviceFailed() - underTest.displayView(state) - - val chipView = getChipView() - assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable) - assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME) - assertThat(getChipView().getChipText()).isEqualTo( - state.state.getChipTextString(context, OTHER_DEVICE_NAME) + fun displayView_endItemNull_correctlyRendered() { + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("text"), + endItem = null, + ) ) - assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE) - assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE) - assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.VISIBLE) - } - - @Test - fun changeFromAlmostCloseToStartToTransferTriggered_loadingIconAppears() { - underTest.displayView(almostCloseToStartCast()) - underTest.displayView(transferToReceiverTriggered()) - - assertThat(getChipView().getLoadingIconVisibility()).isEqualTo(View.VISIBLE) - } - - @Test - fun changeFromTransferTriggeredToTransferSucceeded_loadingIconDisappears() { - underTest.displayView(transferToReceiverTriggered()) - underTest.displayView(transferToReceiverSucceeded()) - assertThat(getChipView().getLoadingIconVisibility()).isEqualTo(View.GONE) + val chipbarView = getChipbarView() + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getEndButton().visibility).isEqualTo(View.GONE) } @Test - fun changeFromTransferTriggeredToTransferSucceeded_undoButtonAppears() { - underTest.displayView(transferToReceiverTriggered()) + fun displayView_endItemLoading_correctlyRendered() { underTest.displayView( - transferToReceiverSucceeded( - object : IUndoMediaTransferCallback.Stub() { - override fun onUndoTriggered() {} - } + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("text"), + endItem = ChipbarEndItem.Loading, ) ) - assertThat(getChipView().getUndoButton().visibility).isEqualTo(View.VISIBLE) - } - - @Test - fun changeFromTransferSucceededToAlmostCloseToStart_undoButtonDisappears() { - underTest.displayView(transferToReceiverSucceeded()) - underTest.displayView(almostCloseToStartCast()) - - assertThat(getChipView().getUndoButton().visibility).isEqualTo(View.GONE) - } - - @Test - fun changeFromTransferTriggeredToTransferFailed_failureIconAppears() { - underTest.displayView(transferToReceiverTriggered()) - underTest.displayView(transferToReceiverFailed()) - - assertThat(getChipView().getFailureIcon().visibility).isEqualTo(View.VISIBLE) + val chipbarView = getChipbarView() + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getEndButton().visibility).isEqualTo(View.GONE) } @Test - fun transferToReceiverTriggeredThenRemoveView_viewStillDisplayed() { - underTest.displayView(transferToReceiverTriggered()) - fakeClock.advanceTime(1000L) - - underTest.removeView("fakeRemovalReason") - fakeExecutor.runAllReady() + fun displayView_endItemError_correctlyRendered() { + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("text"), + endItem = ChipbarEndItem.Error, + ) + ) - verify(windowManager, never()).removeView(any()) - verify(logger).logRemovalBypass(any(), any()) + val chipbarView = getChipbarView() + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getEndButton().visibility).isEqualTo(View.GONE) } @Test - fun transferToReceiverTriggeredThenRemoveView_eventuallyTimesOut() { - underTest.displayView(transferToReceiverTriggered()) - - underTest.removeView("fakeRemovalReason") - fakeClock.advanceTime(TIMEOUT + 1L) + fun displayView_endItemButton_correctlyRendered() { + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("text"), + endItem = + ChipbarEndItem.Button( + Text.Loaded("button text"), + onClickListener = {}, + ), + ) + ) - verify(windowManager).removeView(any()) + val chipbarView = getChipbarView() + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getEndButton().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getEndButton().text).isEqualTo("button text") + assertThat(chipbarView.getEndButton().hasOnClickListeners()).isTrue() } @Test - fun transferToThisDeviceTriggeredThenRemoveView_viewStillDisplayed() { - underTest.displayView(transferToThisDeviceTriggered()) - fakeClock.advanceTime(1000L) - - underTest.removeView("fakeRemovalReason") - fakeExecutor.runAllReady() - - verify(windowManager, never()).removeView(any()) - verify(logger).logRemovalBypass(any(), any()) - } + fun displayView_endItemButtonClicked_falseTap_listenerNotRun() { + whenever(falsingManager.isFalseTap(anyInt())).thenReturn(true) + var isClicked = false + val buttonClickListener = View.OnClickListener { isClicked = true } - @Test - fun transferToThisDeviceTriggeredThenRemoveView_eventuallyTimesOut() { - underTest.displayView(transferToThisDeviceTriggered()) + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("text"), + endItem = + ChipbarEndItem.Button( + Text.Loaded("button text"), + buttonClickListener, + ), + ) + ) - underTest.removeView("fakeRemovalReason") - fakeClock.advanceTime(TIMEOUT + 1L) + getChipbarView().getEndButton().performClick() - verify(windowManager).removeView(any()) + assertThat(isClicked).isFalse() } @Test - fun transferToReceiverSucceededThenRemoveView_viewStillDisplayed() { - underTest.displayView(transferToReceiverSucceeded()) - - underTest.removeView("fakeRemovalReason") - fakeExecutor.runAllReady() - - verify(windowManager, never()).removeView(any()) - verify(logger).logRemovalBypass(any(), any()) - } + fun displayView_endItemButtonClicked_notFalseTap_listenerRun() { + whenever(falsingManager.isFalseTap(anyInt())).thenReturn(false) + var isClicked = false + val buttonClickListener = View.OnClickListener { isClicked = true } - @Test - fun transferToReceiverSucceededThenRemoveView_eventuallyTimesOut() { - underTest.displayView(transferToReceiverSucceeded()) + underTest.displayView( + ChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("text"), + endItem = + ChipbarEndItem.Button( + Text.Loaded("button text"), + buttonClickListener, + ), + ) + ) - underTest.removeView("fakeRemovalReason") - fakeClock.advanceTime(TIMEOUT + 1L) + getChipbarView().getEndButton().performClick() - verify(windowManager).removeView(any()) + assertThat(isClicked).isTrue() } @Test - fun transferToThisDeviceSucceededThenRemoveView_viewStillDisplayed() { - underTest.displayView(transferToThisDeviceSucceeded()) - - underTest.removeView("fakeRemovalReason") - fakeExecutor.runAllReady() - - verify(windowManager, never()).removeView(any()) - verify(logger).logRemovalBypass(any(), any()) - } + fun updateView_viewUpdated() { + // First, display a view + val drawable = context.getDrawable(R.drawable.ic_celebration)!! - @Test - fun transferToThisDeviceSucceededThenRemoveView_eventuallyTimesOut() { - underTest.displayView(transferToThisDeviceSucceeded()) + underTest.displayView( + ChipbarInfo( + Icon.Loaded(drawable, contentDescription = ContentDescription.Loaded("loadedCD")), + Text.Loaded("title text"), + endItem = ChipbarEndItem.Loading, + ) + ) - underTest.removeView("fakeRemovalReason") - fakeClock.advanceTime(TIMEOUT + 1L) + val chipbarView = getChipbarView() + assertThat(chipbarView.getStartIconView().drawable).isEqualTo(drawable) + assertThat(chipbarView.getStartIconView().contentDescription).isEqualTo("loadedCD") + assertThat(chipbarView.getChipText()).isEqualTo("title text") + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getEndButton().visibility).isEqualTo(View.GONE) + + // WHEN the view is updated + val newDrawable = context.getDrawable(R.drawable.ic_cake)!! + underTest.updateView( + ChipbarInfo( + Icon.Loaded(newDrawable, ContentDescription.Loaded("new CD")), + Text.Loaded("new title text"), + endItem = ChipbarEndItem.Error, + ), + chipbarView + ) - verify(windowManager).removeView(any()) + // THEN we display the new view + assertThat(chipbarView.getStartIconView().drawable).isEqualTo(newDrawable) + assertThat(chipbarView.getStartIconView().contentDescription).isEqualTo("new CD") + assertThat(chipbarView.getChipText()).isEqualTo("new title text") + assertThat(chipbarView.getLoadingIcon().visibility).isEqualTo(View.GONE) + assertThat(chipbarView.getErrorIcon().visibility).isEqualTo(View.VISIBLE) + assertThat(chipbarView.getEndButton().visibility).isEqualTo(View.GONE) } - private fun ViewGroup.getAppIconView() = this.requireViewById<ImageView>(R.id.app_icon) + private fun ViewGroup.getStartIconView() = this.requireViewById<ImageView>(R.id.start_icon) private fun ViewGroup.getChipText(): String = (this.requireViewById<TextView>(R.id.text)).text as String - private fun ViewGroup.getLoadingIconVisibility(): Int = - this.requireViewById<View>(R.id.loading).visibility + private fun ViewGroup.getLoadingIcon(): View = this.requireViewById(R.id.loading) - private fun ViewGroup.getUndoButton(): View = this.requireViewById(R.id.undo) + private fun ViewGroup.getEndButton(): TextView = this.requireViewById(R.id.end_button) - private fun ViewGroup.getFailureIcon(): View = this.requireViewById(R.id.failure_icon) + private fun ViewGroup.getErrorIcon(): View = this.requireViewById(R.id.error) - private fun getChipView(): ViewGroup { + private fun getChipbarView(): ViewGroup { val viewCaptor = ArgumentCaptor.forClass(View::class.java) verify(windowManager).addView(viewCaptor.capture(), any()) return viewCaptor.value as ViewGroup } - - // TODO(b/245610654): For now, the below methods are duplicated between this test and - // [MediaTttSenderCoordinatorTest]. Once we define a generic API for [ChipbarCoordinator], - // these will no longer be duplicated. - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun almostCloseToStartCast() = - ChipSenderInfo(ChipStateSender.ALMOST_CLOSE_TO_START_CAST, routeInfo) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun almostCloseToEndCast() = - ChipSenderInfo(ChipStateSender.ALMOST_CLOSE_TO_END_CAST, routeInfo) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToReceiverTriggered() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_TRIGGERED, routeInfo) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToThisDeviceTriggered() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_TRIGGERED, routeInfo) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToReceiverSucceeded(undoCallback: IUndoMediaTransferCallback? = null) = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_SUCCEEDED, routeInfo, undoCallback) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToThisDeviceSucceeded(undoCallback: IUndoMediaTransferCallback? = null) = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_THIS_DEVICE_SUCCEEDED, routeInfo, undoCallback) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToReceiverFailed() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_FAILED, routeInfo) - - /** Helper method providing default parameters to not clutter up the tests. */ - private fun transferToThisDeviceFailed() = - ChipSenderInfo(ChipStateSender.TRANSFER_TO_RECEIVER_FAILED, routeInfo) } -private const val APP_NAME = "Fake app name" -private const val OTHER_DEVICE_NAME = "My Tablet" -private const val PACKAGE_NAME = "com.android.systemui" private const val TIMEOUT = 10000 - -private val routeInfo = MediaRoute2Info.Builder("id", OTHER_DEVICE_NAME) - .addFeature("feature") - .setClientPackageName(PACKAGE_NAME) - .build() diff --git a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/FakeChipbarCoordinator.kt b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/FakeChipbarCoordinator.kt index 10704ac8fc67..8f32e0fd1de5 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/FakeChipbarCoordinator.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/FakeChipbarCoordinator.kt @@ -24,7 +24,6 @@ import android.view.accessibility.AccessibilityManager import com.android.systemui.classifier.FalsingCollector import com.android.systemui.media.taptotransfer.common.MediaTttLogger import com.android.systemui.media.taptotransfer.receiver.MediaTttReceiverLogger -import com.android.systemui.media.taptotransfer.sender.MediaTttSenderUiEventLogger import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.util.concurrency.DelayableExecutor @@ -39,7 +38,6 @@ class FakeChipbarCoordinator( accessibilityManager: AccessibilityManager, configurationController: ConfigurationController, powerManager: PowerManager, - uiEventLogger: MediaTttSenderUiEventLogger, falsingManager: FalsingManager, falsingCollector: FalsingCollector, viewUtil: ViewUtil, @@ -52,7 +50,6 @@ class FakeChipbarCoordinator( accessibilityManager, configurationController, powerManager, - uiEventLogger, falsingManager, falsingCollector, viewUtil, diff --git a/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplUnrefactoredTest.kt b/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplUnrefactoredTest.kt index d4b41c18e123..a363a037c499 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplUnrefactoredTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplUnrefactoredTest.kt @@ -97,6 +97,7 @@ class UserRepositoryImplUnrefactoredTest : UserRepositoryImplTest() { createUserRecord(2), createActionRecord(UserActionModel.ADD_SUPERVISED_USER), createActionRecord(UserActionModel.ENTER_GUEST_MODE), + createActionRecord(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT), ) ) var models: List<UserModel>? = null @@ -176,15 +177,17 @@ class UserRepositoryImplUnrefactoredTest : UserRepositoryImplTest() { createUserRecord(2), createActionRecord(UserActionModel.ADD_SUPERVISED_USER), createActionRecord(UserActionModel.ENTER_GUEST_MODE), + createActionRecord(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT), ) ) var models: List<UserActionModel>? = null val job = underTest.actions.onEach { models = it }.launchIn(this) - assertThat(models).hasSize(3) + assertThat(models).hasSize(4) assertThat(models?.get(0)).isEqualTo(UserActionModel.ADD_USER) assertThat(models?.get(1)).isEqualTo(UserActionModel.ADD_SUPERVISED_USER) assertThat(models?.get(2)).isEqualTo(UserActionModel.ENTER_GUEST_MODE) + assertThat(models?.get(3)).isEqualTo(UserActionModel.NAVIGATE_TO_USER_MANAGEMENT) job.cancel() } @@ -200,6 +203,7 @@ class UserRepositoryImplUnrefactoredTest : UserRepositoryImplTest() { isAddUser = action == UserActionModel.ADD_USER, isAddSupervisedUser = action == UserActionModel.ADD_SUPERVISED_USER, isGuest = action == UserActionModel.ENTER_GUEST_MODE, + isManageUsers = action == UserActionModel.NAVIGATE_TO_USER_MANAGEMENT, ) } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserInteractorUnrefactoredTest.kt b/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserInteractorUnrefactoredTest.kt index c3a9705bf6ba..6a17c8ddc63d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserInteractorUnrefactoredTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/user/domain/interactor/UserInteractorUnrefactoredTest.kt @@ -64,13 +64,7 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() { @Test fun `actions - not actionable when locked and not locked`() = runBlocking(IMMEDIATE) { - userRepository.setActions( - listOf( - UserActionModel.ENTER_GUEST_MODE, - UserActionModel.ADD_USER, - UserActionModel.ADD_SUPERVISED_USER, - ) - ) + setActions() userRepository.setActionableWhenLocked(false) keyguardRepository.setKeyguardShowing(false) @@ -92,13 +86,7 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() { @Test fun `actions - actionable when locked and not locked`() = runBlocking(IMMEDIATE) { - userRepository.setActions( - listOf( - UserActionModel.ENTER_GUEST_MODE, - UserActionModel.ADD_USER, - UserActionModel.ADD_SUPERVISED_USER, - ) - ) + setActions() userRepository.setActionableWhenLocked(true) keyguardRepository.setKeyguardShowing(false) @@ -120,13 +108,7 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() { @Test fun `actions - actionable when locked and locked`() = runBlocking(IMMEDIATE) { - userRepository.setActions( - listOf( - UserActionModel.ENTER_GUEST_MODE, - UserActionModel.ADD_USER, - UserActionModel.ADD_SUPERVISED_USER, - ) - ) + setActions() userRepository.setActionableWhenLocked(true) keyguardRepository.setKeyguardShowing(true) @@ -182,6 +164,10 @@ open class UserInteractorUnrefactoredTest : UserInteractorTest() { verify(activityStarter).startActivity(any(), anyBoolean()) } + private fun setActions() { + userRepository.setActions(UserActionModel.values().toList()) + } + companion object { private val IMMEDIATE = Dispatchers.Main.immediate } diff --git a/packages/SystemUI/tests/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModelTest.kt index 0344e3f991e2..c12a868dbaed 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/user/ui/viewmodel/UserSwitcherViewModelTest.kt @@ -268,6 +268,26 @@ class UserSwitcherViewModelTest : SysuiTestCase() { } @Test + fun `menu actions`() = + runBlocking(IMMEDIATE) { + userRepository.setActions(UserActionModel.values().toList()) + var actions: List<UserActionViewModel>? = null + val job = underTest.menu.onEach { actions = it }.launchIn(this) + + assertThat(actions?.map { it.viewKey }) + .isEqualTo( + listOf( + UserActionModel.ENTER_GUEST_MODE.ordinal.toLong(), + UserActionModel.ADD_USER.ordinal.toLong(), + UserActionModel.ADD_SUPERVISED_USER.ordinal.toLong(), + UserActionModel.NAVIGATE_TO_USER_MANAGEMENT.ordinal.toLong(), + ) + ) + + job.cancel() + } + + @Test fun `isFinishRequested - finishes when user is switched`() = runBlocking(IMMEDIATE) { setUsers(count = 2) diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/collection/RingBufferTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/collection/RingBufferTest.kt deleted file mode 100644 index 5e09b81da4e8..000000000000 --- a/packages/SystemUI/tests/src/com/android/systemui/util/collection/RingBufferTest.kt +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.util.collection - -import android.testing.AndroidTestingRunner -import androidx.test.filters.SmallTest -import com.android.systemui.SysuiTestCase -import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse -import org.junit.Assert.assertSame -import org.junit.Assert.assertThrows -import org.junit.Before -import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.MockitoAnnotations - -@SmallTest -@RunWith(AndroidTestingRunner::class) -class RingBufferTest : SysuiTestCase() { - - private val buffer = RingBuffer(5) { TestElement() } - - private val history = mutableListOf<TestElement>() - - @Before - fun setUp() { - MockitoAnnotations.initMocks(this) - } - - @Test - fun testBarelyFillBuffer() { - fillBuffer(5) - - assertEquals(0, buffer[0].id) - assertEquals(1, buffer[1].id) - assertEquals(2, buffer[2].id) - assertEquals(3, buffer[3].id) - assertEquals(4, buffer[4].id) - } - - @Test - fun testPartiallyFillBuffer() { - fillBuffer(3) - - assertEquals(3, buffer.size) - - assertEquals(0, buffer[0].id) - assertEquals(1, buffer[1].id) - assertEquals(2, buffer[2].id) - - assertThrows(IndexOutOfBoundsException::class.java) { buffer[3] } - assertThrows(IndexOutOfBoundsException::class.java) { buffer[4] } - } - - @Test - fun testSpinBuffer() { - fillBuffer(277) - - assertEquals(272, buffer[0].id) - assertEquals(273, buffer[1].id) - assertEquals(274, buffer[2].id) - assertEquals(275, buffer[3].id) - assertEquals(276, buffer[4].id) - assertThrows(IndexOutOfBoundsException::class.java) { buffer[5] } - - assertEquals(5, buffer.size) - } - - @Test - fun testElementsAreRecycled() { - fillBuffer(23) - - assertSame(history[4], buffer[1]) - assertSame(history[9], buffer[1]) - assertSame(history[14], buffer[1]) - assertSame(history[19], buffer[1]) - } - - @Test - fun testIterator() { - fillBuffer(13) - - val iterator = buffer.iterator() - - for (i in 0 until 5) { - assertEquals(history[8 + i], iterator.next()) - } - assertFalse(iterator.hasNext()) - assertThrows(NoSuchElementException::class.java) { iterator.next() } - } - - @Test - fun testForEach() { - fillBuffer(13) - var i = 8 - - buffer.forEach { - assertEquals(history[i], it) - i++ - } - assertEquals(13, i) - } - - private fun fillBuffer(count: Int) { - for (i in 0 until count) { - val elem = buffer.advance() - elem.id = history.size - history.add(elem) - } - } -} - -private class TestElement(var id: Int = 0) { - override fun toString(): String { - return "{TestElement $id}" - } -}
\ No newline at end of file diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt index 725b1f41372c..0c126805fb78 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/data/repository/FakeKeyguardRepository.kt @@ -18,6 +18,7 @@ package com.android.systemui.keyguard.data.repository import com.android.systemui.common.shared.model.Position +import com.android.systemui.keyguard.shared.model.StatusBarState import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -44,6 +45,9 @@ class FakeKeyguardRepository : KeyguardRepository { private val _dozeAmount = MutableStateFlow(0f) override val dozeAmount: Flow<Float> = _dozeAmount + private val _statusBarState = MutableStateFlow(StatusBarState.SHADE) + override val statusBarState: Flow<StatusBarState> = _statusBarState + override fun isKeyguardShowing(): Boolean { return _isKeyguardShowing.value } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/FakeFgsManagerController.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/FakeFgsManagerController.kt index 527258579372..c33ce5d9484d 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/FakeFgsManagerController.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/FakeFgsManagerController.kt @@ -16,7 +16,7 @@ package com.android.systemui.qs -import android.view.View +import com.android.systemui.animation.Expandable import com.android.systemui.qs.FgsManagerController.OnDialogDismissedListener import com.android.systemui.qs.FgsManagerController.OnNumberOfPackagesChangedListener import kotlinx.coroutines.flow.MutableStateFlow @@ -54,7 +54,7 @@ class FakeFgsManagerController( override fun init() {} - override fun showDialog(viewLaunchedFrom: View?) {} + override fun showDialog(expandable: Expandable?) {} override fun addOnNumberOfPackagesChangedListener(listener: OnNumberOfPackagesChangedListener) { numRunningPackagesListeners.add(listener) diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt index 2a9aeddc9aa8..325da4ead666 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/qs/footer/FooterActionsTestUtils.kt @@ -57,7 +57,6 @@ import com.android.systemui.statusbar.policy.UserSwitcherController import com.android.systemui.util.mockito.mock import com.android.systemui.util.settings.FakeSettings import com.android.systemui.util.settings.GlobalSettings -import com.android.systemui.util.time.FakeSystemClock import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.test.TestCoroutineDispatcher @@ -68,7 +67,6 @@ import kotlinx.coroutines.test.TestCoroutineDispatcher class FooterActionsTestUtils( private val context: Context, private val testableLooper: TestableLooper, - private val fakeClock: FakeSystemClock = FakeSystemClock(), ) { /** Enable or disable the user switcher in the settings. */ fun setUserSwitcherEnabled(settings: GlobalSettings, enabled: Boolean, userId: Int) { diff --git a/proto/src/system_messages.proto b/proto/src/system_messages.proto index a94bfe281be1..12e722601e25 100644 --- a/proto/src/system_messages.proto +++ b/proto/src/system_messages.proto @@ -61,7 +61,7 @@ message SystemMessage { // Notify the user that they should select an input method // Package: android - NOTE_SELECT_INPUT_METHOD = 8; + NOTE_SELECT_INPUT_METHOD = 8 [deprecated = true]; // Notify the user about limited functionality before decryption // Package: android diff --git a/services/art-profile b/services/art-profile index 0bf43ee07d34..3e0507824572 100644 --- a/services/art-profile +++ b/services/art-profile @@ -45,16 +45,16 @@ PLandroid/hardware/biometrics/common/OperationContext;-><clinit>()V PLandroid/hardware/biometrics/common/OperationContext;-><init>()V HPLandroid/hardware/biometrics/common/OperationContext;->writeToParcel(Landroid/os/Parcel;I)V PLandroid/hardware/biometrics/face/AuthenticationFrame$1;-><init>()V -PLandroid/hardware/biometrics/face/AuthenticationFrame$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/biometrics/face/AuthenticationFrame; +HPLandroid/hardware/biometrics/face/AuthenticationFrame$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/biometrics/face/AuthenticationFrame; PLandroid/hardware/biometrics/face/AuthenticationFrame$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; PLandroid/hardware/biometrics/face/AuthenticationFrame;-><clinit>()V PLandroid/hardware/biometrics/face/AuthenticationFrame;-><init>()V -PLandroid/hardware/biometrics/face/AuthenticationFrame;->readFromParcel(Landroid/os/Parcel;)V +HPLandroid/hardware/biometrics/face/AuthenticationFrame;->readFromParcel(Landroid/os/Parcel;)V PLandroid/hardware/biometrics/face/BaseFrame$1;-><init>()V -PLandroid/hardware/biometrics/face/BaseFrame$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/biometrics/face/BaseFrame; +HPLandroid/hardware/biometrics/face/BaseFrame$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/biometrics/face/BaseFrame; PLandroid/hardware/biometrics/face/BaseFrame$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; PLandroid/hardware/biometrics/face/BaseFrame;-><clinit>()V -PLandroid/hardware/biometrics/face/BaseFrame;-><init>()V +HPLandroid/hardware/biometrics/face/BaseFrame;-><init>()V HPLandroid/hardware/biometrics/face/BaseFrame;->readFromParcel(Landroid/os/Parcel;)V HSPLandroid/hardware/biometrics/face/IFace$Stub$Proxy;-><init>(Landroid/os/IBinder;)V PLandroid/hardware/biometrics/face/IFace$Stub$Proxy;->asBinder()Landroid/os/IBinder; @@ -65,7 +65,8 @@ HSPLandroid/hardware/biometrics/face/IFace$Stub;->asInterface(Landroid/os/IBinde HSPLandroid/hardware/biometrics/face/IFace;-><clinit>()V PLandroid/hardware/biometrics/face/ISession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V PLandroid/hardware/biometrics/face/ISession$Stub$Proxy;->asBinder()Landroid/os/IBinder; -PLandroid/hardware/biometrics/face/ISession$Stub$Proxy;->authenticateWithContext(JLandroid/hardware/biometrics/common/OperationContext;)Landroid/hardware/biometrics/common/ICancellationSignal; +HPLandroid/hardware/biometrics/face/ISession$Stub$Proxy;->authenticateWithContext(JLandroid/hardware/biometrics/common/OperationContext;)Landroid/hardware/biometrics/common/ICancellationSignal; +PLandroid/hardware/biometrics/face/ISession$Stub$Proxy;->close()V PLandroid/hardware/biometrics/face/ISession$Stub$Proxy;->enumerateEnrollments()V PLandroid/hardware/biometrics/face/ISession$Stub$Proxy;->getAuthenticatorId()V PLandroid/hardware/biometrics/face/ISession$Stub$Proxy;->resetLockout(Landroid/hardware/keymaster/HardwareAuthToken;)V @@ -73,7 +74,10 @@ PLandroid/hardware/biometrics/face/ISession$Stub;->asInterface(Landroid/os/IBind PLandroid/hardware/biometrics/face/ISession;-><clinit>()V PLandroid/hardware/biometrics/face/ISessionCallback$Stub;-><init>()V PLandroid/hardware/biometrics/face/ISessionCallback$Stub;->asBinder()Landroid/os/IBinder; -PLandroid/hardware/biometrics/face/ISessionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z +PLandroid/hardware/biometrics/face/ISessionCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String; +PLandroid/hardware/biometrics/face/ISessionCallback$Stub;->getMaxTransactionId()I +PLandroid/hardware/biometrics/face/ISessionCallback$Stub;->getTransactionName(I)Ljava/lang/String; +HPLandroid/hardware/biometrics/face/ISessionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z PLandroid/hardware/biometrics/face/ISessionCallback;-><clinit>()V HSPLandroid/hardware/biometrics/face/SensorProps$1;-><init>()V HSPLandroid/hardware/biometrics/face/SensorProps$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/biometrics/face/SensorProps; @@ -157,9 +161,9 @@ HSPLandroid/hardware/health/IHealth$Stub$Proxy;-><init>(Landroid/os/IBinder;)V HSPLandroid/hardware/health/IHealth$Stub$Proxy;->asBinder()Landroid/os/IBinder; HPLandroid/hardware/health/IHealth$Stub$Proxy;->getCapacity()I HPLandroid/hardware/health/IHealth$Stub$Proxy;->getChargeCounterUah()I -PLandroid/hardware/health/IHealth$Stub$Proxy;->getChargeStatus()I +HPLandroid/hardware/health/IHealth$Stub$Proxy;->getChargeStatus()I HPLandroid/hardware/health/IHealth$Stub$Proxy;->getCurrentAverageMicroamps()I -PLandroid/hardware/health/IHealth$Stub$Proxy;->getCurrentNowMicroamps()I +HPLandroid/hardware/health/IHealth$Stub$Proxy;->getCurrentNowMicroamps()I HPLandroid/hardware/health/IHealth$Stub$Proxy;->getEnergyCounterNwh()J HPLandroid/hardware/health/IHealth$Stub$Proxy;->getHealthInfo()Landroid/hardware/health/HealthInfo; HSPLandroid/hardware/health/IHealth$Stub$Proxy;->registerCallback(Landroid/hardware/health/IHealthInfoCallback;)V @@ -277,7 +281,7 @@ HSPLandroid/hardware/power/stats/EnergyConsumerResult;-><init>()V HSPLandroid/hardware/power/stats/EnergyConsumerResult;->readFromParcel(Landroid/os/Parcel;)V HSPLandroid/hardware/power/stats/EnergyMeasurement$1;-><init>()V HPLandroid/hardware/power/stats/EnergyMeasurement$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/power/stats/EnergyMeasurement; -HPLandroid/hardware/power/stats/EnergyMeasurement$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +HPLandroid/hardware/power/stats/EnergyMeasurement$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/hardware/power/stats/EnergyMeasurement$1;Landroid/hardware/power/stats/EnergyMeasurement$1; PLandroid/hardware/power/stats/EnergyMeasurement$1;->newArray(I)[Landroid/hardware/power/stats/EnergyMeasurement; PLandroid/hardware/power/stats/EnergyMeasurement$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/hardware/power/stats/EnergyMeasurement;-><clinit>()V @@ -497,11 +501,13 @@ HSPLcom/android/internal/util/jobs/ArrayUtils;->appendInt([II)[I HSPLcom/android/internal/util/jobs/ArrayUtils;->appendInt([IIZ)[I HSPLcom/android/internal/util/jobs/ArrayUtils;->contains([II)Z HPLcom/android/internal/util/jobs/ArrayUtils;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z +PLcom/android/internal/util/jobs/ArrayUtils;->convertToIntArray(Landroid/util/ArraySet;)[I PLcom/android/internal/util/jobs/ArrayUtils;->filter([Ljava/lang/Object;Ljava/util/function/IntFunction;Ljava/util/function/Predicate;)[Ljava/lang/Object; HSPLcom/android/internal/util/jobs/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I PLcom/android/internal/util/jobs/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z PLcom/android/internal/util/jobs/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z PLcom/android/internal/util/jobs/ArrayUtils;->removeInt([II)[I +HPLcom/android/internal/util/jobs/ArrayUtils;->size(Ljava/util/Collection;)I PLcom/android/internal/util/jobs/ArrayUtils;->size([Ljava/lang/Object;)I HPLcom/android/internal/util/jobs/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z HPLcom/android/internal/util/jobs/CollectionUtils;->size(Ljava/util/Collection;)I @@ -561,7 +567,9 @@ HPLcom/android/server/AnyMotionDetector$1;->onSensorChanged(Landroid/hardware/Se HSPLcom/android/server/AnyMotionDetector$2;-><init>(Lcom/android/server/AnyMotionDetector;)V PLcom/android/server/AnyMotionDetector$2;->run()V HSPLcom/android/server/AnyMotionDetector$3;-><init>(Lcom/android/server/AnyMotionDetector;)V +PLcom/android/server/AnyMotionDetector$3;->run()V HSPLcom/android/server/AnyMotionDetector$4;-><init>(Lcom/android/server/AnyMotionDetector;)V +PLcom/android/server/AnyMotionDetector$4;->run()V HSPLcom/android/server/AnyMotionDetector$RunningSignalStats;-><init>()V PLcom/android/server/AnyMotionDetector$RunningSignalStats;->accumulate(Lcom/android/server/AnyMotionDetector$Vector3;)V PLcom/android/server/AnyMotionDetector$RunningSignalStats;->getEnergy()F @@ -581,10 +589,13 @@ PLcom/android/server/AnyMotionDetector$Vector3;->toString()Ljava/lang/String; PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmCallback(Lcom/android/server/AnyMotionDetector;)Lcom/android/server/AnyMotionDetector$DeviceIdleCallback; PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmHandler(Lcom/android/server/AnyMotionDetector;)Landroid/os/Handler; PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmLock(Lcom/android/server/AnyMotionDetector;)Ljava/lang/Object; +PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmMeasurementTimeoutIsActive(Lcom/android/server/AnyMotionDetector;)Z PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmNumSufficientSamples(Lcom/android/server/AnyMotionDetector;)I PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmRunningStats(Lcom/android/server/AnyMotionDetector;)Lcom/android/server/AnyMotionDetector$RunningSignalStats; PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmSensorRestartIsActive(Lcom/android/server/AnyMotionDetector;)Z PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmWakelockTimeout(Lcom/android/server/AnyMotionDetector;)Ljava/lang/Runnable; +PLcom/android/server/AnyMotionDetector;->-$$Nest$fgetmWakelockTimeoutIsActive(Lcom/android/server/AnyMotionDetector;)Z +PLcom/android/server/AnyMotionDetector;->-$$Nest$fputmMeasurementTimeoutIsActive(Lcom/android/server/AnyMotionDetector;Z)V PLcom/android/server/AnyMotionDetector;->-$$Nest$fputmSensorRestartIsActive(Lcom/android/server/AnyMotionDetector;Z)V PLcom/android/server/AnyMotionDetector;->-$$Nest$fputmWakelockTimeoutIsActive(Lcom/android/server/AnyMotionDetector;Z)V PLcom/android/server/AnyMotionDetector;->-$$Nest$mstartOrientationMeasurementLocked(Lcom/android/server/AnyMotionDetector;)V @@ -611,19 +622,19 @@ HSPLcom/android/server/AppStateTrackerImpl$FeatureFlagsObserver;->register()V PLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monExemptedBucketChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;)V PLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monForceAllAppsStandbyChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;)V PLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;)V -PLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monTempPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;)V +HSPLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monTempPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;)V HSPLcom/android/server/AppStateTrackerImpl$Listener;->-$$Nest$monUidActiveStateChanged(Lcom/android/server/AppStateTrackerImpl$Listener;Lcom/android/server/AppStateTrackerImpl;I)V HSPLcom/android/server/AppStateTrackerImpl$Listener;-><init>()V PLcom/android/server/AppStateTrackerImpl$Listener;->onExemptedBucketChanged(Lcom/android/server/AppStateTrackerImpl;)V PLcom/android/server/AppStateTrackerImpl$Listener;->onForceAllAppsStandbyChanged(Lcom/android/server/AppStateTrackerImpl;)V PLcom/android/server/AppStateTrackerImpl$Listener;->onPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl;)V -PLcom/android/server/AppStateTrackerImpl$Listener;->onTempPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl;)V +HSPLcom/android/server/AppStateTrackerImpl$Listener;->onTempPowerSaveExemptionListChanged(Lcom/android/server/AppStateTrackerImpl;)V HSPLcom/android/server/AppStateTrackerImpl$Listener;->onUidActiveStateChanged(Lcom/android/server/AppStateTrackerImpl;I)V HSPLcom/android/server/AppStateTrackerImpl$Listener;->unblockAlarmsForUid(I)V PLcom/android/server/AppStateTrackerImpl$Listener;->unblockAllUnrestrictedAlarms()V HSPLcom/android/server/AppStateTrackerImpl$Listener;->updateAlarmsForUid(I)V PLcom/android/server/AppStateTrackerImpl$Listener;->updateAllAlarms()V -HPLcom/android/server/AppStateTrackerImpl$Listener;->updateAllJobs()V +HSPLcom/android/server/AppStateTrackerImpl$Listener;->updateAllJobs()V HSPLcom/android/server/AppStateTrackerImpl$Listener;->updateJobsForUid(IZ)V HSPLcom/android/server/AppStateTrackerImpl$MyHandler;-><init>(Lcom/android/server/AppStateTrackerImpl;Landroid/os/Looper;)V HSPLcom/android/server/AppStateTrackerImpl$MyHandler;->handleMessage(Landroid/os/Message;)V+]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Lcom/android/server/AppStateTrackerImpl$MyHandler;Lcom/android/server/AppStateTrackerImpl$MyHandler; @@ -633,7 +644,7 @@ HSPLcom/android/server/AppStateTrackerImpl$MyHandler;->handleUidIdle(I)V HSPLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyAllExemptionListChanged()V PLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyExemptedBucketChanged()V PLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyForceAllAppsStandbyChanged()V -HPLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyTempExemptionListChanged()V +HSPLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyTempExemptionListChanged()V HSPLcom/android/server/AppStateTrackerImpl$MyHandler;->notifyUidActiveStateChanged(I)V HSPLcom/android/server/AppStateTrackerImpl$MyHandler;->onUidActive(I)V HSPLcom/android/server/AppStateTrackerImpl$MyHandler;->onUidGone(IZ)V @@ -653,7 +664,7 @@ HSPLcom/android/server/AppStateTrackerImpl;->-$$Nest$fgetmLock(Lcom/android/serv HSPLcom/android/server/AppStateTrackerImpl;->-$$Nest$fgetmStatLogger(Lcom/android/server/AppStateTrackerImpl;)Lcom/android/internal/util/jobs/StatLogger; HSPLcom/android/server/AppStateTrackerImpl;->-$$Nest$mcloneListeners(Lcom/android/server/AppStateTrackerImpl;)[Lcom/android/server/AppStateTrackerImpl$Listener; PLcom/android/server/AppStateTrackerImpl;->-$$Nest$mupdateBackgroundRestrictedUidPackagesLocked(Lcom/android/server/AppStateTrackerImpl;)V -PLcom/android/server/AppStateTrackerImpl;->-$$Nest$mupdateForceAllAppStandbyState(Lcom/android/server/AppStateTrackerImpl;)V +HPLcom/android/server/AppStateTrackerImpl;->-$$Nest$mupdateForceAllAppStandbyState(Lcom/android/server/AppStateTrackerImpl;)V HSPLcom/android/server/AppStateTrackerImpl;->-$$Nest$smaddUidToArray(Landroid/util/SparseBooleanArray;I)Z HSPLcom/android/server/AppStateTrackerImpl;->-$$Nest$smremoveUidFromArray(Landroid/util/SparseBooleanArray;IZ)Z HSPLcom/android/server/AppStateTrackerImpl;-><init>(Landroid/content/Context;Landroid/os/Looper;)V @@ -675,7 +686,7 @@ HSPLcom/android/server/AppStateTrackerImpl;->injectIActivityManager()Landroid/ap HSPLcom/android/server/AppStateTrackerImpl;->injectIAppOpsService()Lcom/android/internal/app/IAppOpsService; HSPLcom/android/server/AppStateTrackerImpl;->injectPowerManagerInternal()Landroid/os/PowerManagerInternal; HSPLcom/android/server/AppStateTrackerImpl;->isAnyAppIdUnexempt([I[I)Z -HSPLcom/android/server/AppStateTrackerImpl;->isAppBackgroundRestricted(ILjava/lang/String;)Z+]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet; +HSPLcom/android/server/AppStateTrackerImpl;->isAppBackgroundRestricted(ILjava/lang/String;)Z+]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;,Ljava/util/Collections$EmptySet; HPLcom/android/server/AppStateTrackerImpl;->isForceAllAppsStandbyEnabled()Z HSPLcom/android/server/AppStateTrackerImpl;->isRunAnyInBackgroundAppOpsAllowed(ILjava/lang/String;)Z+]Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTrackerImpl; HSPLcom/android/server/AppStateTrackerImpl;->isRunAnyRestrictedLocked(ILjava/lang/String;)Z+]Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTrackerImpl; @@ -693,6 +704,7 @@ HSPLcom/android/server/AppStateTrackerImpl;->setPowerSaveExemptionListAppIds([I[ HSPLcom/android/server/AppStateTrackerImpl;->toggleForceAllAppsStandbyLocked(Z)V PLcom/android/server/AppStateTrackerImpl;->updateBackgroundRestrictedUidPackagesLocked()V HSPLcom/android/server/AppStateTrackerImpl;->updateForceAllAppStandbyState()V +HSPLcom/android/server/BatteryService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V HSPLcom/android/server/BatteryService$$ExternalSyntheticLambda0;->run()V HSPLcom/android/server/BatteryService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/BatteryService;)V PLcom/android/server/BatteryService$$ExternalSyntheticLambda1;->run()V @@ -711,7 +723,7 @@ PLcom/android/server/BatteryService$8;-><init>(Lcom/android/server/BatteryServic PLcom/android/server/BatteryService$8;->run()V HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;)V HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$BatteryPropertiesRegistrar-IA;)V -HPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->getProperty(ILandroid/os/BatteryProperty;)I+]Lcom/android/server/health/HealthServiceWrapper;Lcom/android/server/health/HealthServiceWrapperHidl; +HPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->getProperty(ILandroid/os/BatteryProperty;)I+]Lcom/android/server/health/HealthServiceWrapper;Lcom/android/server/health/HealthServiceWrapperHidl;,Lcom/android/server/health/HealthServiceWrapperAidl; HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->scheduleUpdate()V HSPLcom/android/server/BatteryService$BinderService;-><init>(Lcom/android/server/BatteryService;)V HSPLcom/android/server/BatteryService$BinderService;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$BinderService-IA;)V @@ -727,15 +739,20 @@ HSPLcom/android/server/BatteryService$LocalService;->getBatteryLevelLow()Z HSPLcom/android/server/BatteryService$LocalService;->getPlugType()I HSPLcom/android/server/BatteryService$LocalService;->isPowered(I)Z PLcom/android/server/BatteryService;->$r8$lambda$BBvTF9zr3jlUbHVZimjkg7NVAgQ(Lcom/android/server/BatteryService;)V +HPLcom/android/server/BatteryService;->$r8$lambda$l56_rrWkai9dx-yU0PBuafiE7l4(Lcom/android/server/BatteryService;Landroid/content/Intent;)V HSPLcom/android/server/BatteryService;->$r8$lambda$nMM-N14QCYtvYu3I-B9f4UtoxL0(Lcom/android/server/BatteryService;Landroid/hardware/health/HealthInfo;)V PLcom/android/server/BatteryService;->-$$Nest$fgetmActivityManagerInternal(Lcom/android/server/BatteryService;)Landroid/app/ActivityManagerInternal; HSPLcom/android/server/BatteryService;->-$$Nest$fgetmBatteryLevelLow(Lcom/android/server/BatteryService;)Z +PLcom/android/server/BatteryService;->-$$Nest$fgetmBatteryLowOptions(Lcom/android/server/BatteryService;)Landroid/os/Bundle; +PLcom/android/server/BatteryService;->-$$Nest$fgetmBatteryOkayOptions(Lcom/android/server/BatteryService;)Landroid/os/Bundle; PLcom/android/server/BatteryService;->-$$Nest$fgetmContext(Lcom/android/server/BatteryService;)Landroid/content/Context; HSPLcom/android/server/BatteryService;->-$$Nest$fgetmHealthInfo(Lcom/android/server/BatteryService;)Landroid/hardware/health/HealthInfo; HSPLcom/android/server/BatteryService;->-$$Nest$fgetmHealthServiceWrapper(Lcom/android/server/BatteryService;)Lcom/android/server/health/HealthServiceWrapper; HSPLcom/android/server/BatteryService;->-$$Nest$fgetmLock(Lcom/android/server/BatteryService;)Ljava/lang/Object; HSPLcom/android/server/BatteryService;->-$$Nest$fgetmLowBatteryWarningLevel(Lcom/android/server/BatteryService;)I HSPLcom/android/server/BatteryService;->-$$Nest$fgetmPlugType(Lcom/android/server/BatteryService;)I +PLcom/android/server/BatteryService;->-$$Nest$fgetmPowerConnectedOptions(Lcom/android/server/BatteryService;)Landroid/os/Bundle; +PLcom/android/server/BatteryService;->-$$Nest$fgetmPowerDisconnectedOptions(Lcom/android/server/BatteryService;)Landroid/os/Bundle; PLcom/android/server/BatteryService;->-$$Nest$mdumpInternal(Lcom/android/server/BatteryService;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HSPLcom/android/server/BatteryService;->-$$Nest$misPoweredLocked(Lcom/android/server/BatteryService;I)Z PLcom/android/server/BatteryService;->-$$Nest$sfgetTAG()Ljava/lang/String; @@ -919,14 +936,17 @@ PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda3;->onAlarm()V HSPLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/DeviceIdleController;)V PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda5;-><init>()V +PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda5;->apply(I)Ljava/lang/Object; PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/DeviceIdleController;II)V PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda7;-><init>()V +PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda7;->apply(I)Ljava/lang/Object; PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/DeviceIdleController;II)V PLcom/android/server/DeviceIdleController$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z HSPLcom/android/server/DeviceIdleController$1;-><init>(Lcom/android/server/DeviceIdleController;)V HPLcom/android/server/DeviceIdleController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/DeviceIdleController$2;-><init>(Lcom/android/server/DeviceIdleController;)V +PLcom/android/server/DeviceIdleController$2;->onAlarm()V HSPLcom/android/server/DeviceIdleController$3;-><init>(Lcom/android/server/DeviceIdleController;)V PLcom/android/server/DeviceIdleController$3;->onAlarm()V HSPLcom/android/server/DeviceIdleController$4;-><init>(Lcom/android/server/DeviceIdleController;)V @@ -939,7 +959,7 @@ HSPLcom/android/server/DeviceIdleController$7;-><init>(Lcom/android/server/Devic PLcom/android/server/DeviceIdleController$7;->onLocationChanged(Landroid/location/Location;)V HSPLcom/android/server/DeviceIdleController$8;-><init>(Lcom/android/server/DeviceIdleController;)V PLcom/android/server/DeviceIdleController$8;->onAwakeStateChanged(Z)V -PLcom/android/server/DeviceIdleController$8;->onKeyguardStateChanged(Z)V +HPLcom/android/server/DeviceIdleController$8;->onKeyguardStateChanged(Z)V HSPLcom/android/server/DeviceIdleController$BinderService;-><init>(Lcom/android/server/DeviceIdleController;)V HSPLcom/android/server/DeviceIdleController$BinderService;-><init>(Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController$BinderService-IA;)V HPLcom/android/server/DeviceIdleController$BinderService;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JIILjava/lang/String;)V @@ -982,11 +1002,11 @@ HSPLcom/android/server/DeviceIdleController$LocalService;-><init>(Lcom/android/s HSPLcom/android/server/DeviceIdleController$LocalService;-><init>(Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController$LocalService-IA;)V PLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistApp(ILjava/lang/String;JIIZILjava/lang/String;)V PLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistApp(ILjava/lang/String;JIZILjava/lang/String;)V -HPLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistAppDirect(IJIZILjava/lang/String;I)V +HSPLcom/android/server/DeviceIdleController$LocalService;->addPowerSaveTempWhitelistAppDirect(IJIZILjava/lang/String;I)V HPLcom/android/server/DeviceIdleController$LocalService;->getNotificationAllowlistDuration()J HSPLcom/android/server/DeviceIdleController$LocalService;->getPowerSaveTempWhitelistAppIds()[I HSPLcom/android/server/DeviceIdleController$LocalService;->getPowerSaveWhitelistUserAppIds()[I -HPLcom/android/server/DeviceIdleController$LocalService;->getTempAllowListType(II)I +HSPLcom/android/server/DeviceIdleController$LocalService;->getTempAllowListType(II)I HPLcom/android/server/DeviceIdleController$LocalService;->isAppOnWhitelist(I)Z HSPLcom/android/server/DeviceIdleController$LocalService;->registerStationaryListener(Lcom/android/server/DeviceIdleInternal$StationaryListener;)V HPLcom/android/server/DeviceIdleController$LocalService;->setAlarmsActive(Z)V @@ -1002,7 +1022,9 @@ PLcom/android/server/DeviceIdleController;->$r8$lambda$FkxkAXhN9Fa2KY1SyIwJhs7Fs PLcom/android/server/DeviceIdleController;->$r8$lambda$Gocn5-thTsXR7259TCFZqMdI2FM(Lcom/android/server/DeviceIdleController;IILjava/lang/String;)Z PLcom/android/server/DeviceIdleController;->$r8$lambda$brvXivBXP7yxuxnMCDJRIHOQtlg(Lcom/android/server/DeviceIdleController;IILjava/lang/String;)Z PLcom/android/server/DeviceIdleController;->$r8$lambda$itkZQA24y3NvMaQLe356DsAOJZ8(Lcom/android/server/DeviceIdleController;)V +PLcom/android/server/DeviceIdleController;->$r8$lambda$kJe8ZLVV_yVhI16EXFz03fBog3E(I)[Ljava/lang/String; PLcom/android/server/DeviceIdleController;->$r8$lambda$lxpykl3EqKPgngnURMeKcFFakBk(Lcom/android/server/DeviceIdleController;)V +PLcom/android/server/DeviceIdleController;->$r8$lambda$pVpw2HAmILJkBkGEnZoQ3b5ivrw(I)[Ljava/lang/String; PLcom/android/server/DeviceIdleController;->$r8$lambda$zKKDrW1Y2C0guUcFbEW3iYl6FJ8(Lcom/android/server/DeviceIdleController;)V PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmBatteryStats(Lcom/android/server/DeviceIdleController;)Lcom/android/internal/app/IBatteryStats; HPLcom/android/server/DeviceIdleController;->-$$Nest$fgetmConstants(Lcom/android/server/DeviceIdleController;)Lcom/android/server/DeviceIdleController$Constants; @@ -1018,13 +1040,14 @@ PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmNetworkPolicyManagerInt PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmPackageManagerInternal(Lcom/android/server/DeviceIdleController;)Landroid/content/pm/PackageManagerInternal; PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmPowerSaveWhitelistAppsExceptIdle(Lcom/android/server/DeviceIdleController;)Landroid/util/ArrayMap; HSPLcom/android/server/DeviceIdleController;->-$$Nest$fgetmSensorManager(Lcom/android/server/DeviceIdleController;)Landroid/hardware/SensorManager; +PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmState(Lcom/android/server/DeviceIdleController;)I PLcom/android/server/DeviceIdleController;->-$$Nest$fgetmStationaryListeners(Lcom/android/server/DeviceIdleController;)Landroid/util/ArraySet; -HPLcom/android/server/DeviceIdleController;->-$$Nest$fgetmTempAllowlistChangeListeners(Lcom/android/server/DeviceIdleController;)Landroid/util/ArraySet; +HSPLcom/android/server/DeviceIdleController;->-$$Nest$fgetmTempAllowlistChangeListeners(Lcom/android/server/DeviceIdleController;)Landroid/util/ArraySet; PLcom/android/server/DeviceIdleController;->-$$Nest$maddPowerSaveWhitelistAppsInternal(Lcom/android/server/DeviceIdleController;Ljava/util/List;)I PLcom/android/server/DeviceIdleController;->-$$Nest$mgetFullPowerWhitelistExceptIdleInternal(Lcom/android/server/DeviceIdleController;II)[Ljava/lang/String; PLcom/android/server/DeviceIdleController;->-$$Nest$mgetFullPowerWhitelistInternal(Lcom/android/server/DeviceIdleController;II)[Ljava/lang/String; PLcom/android/server/DeviceIdleController;->-$$Nest$mgetSystemPowerWhitelistInternal(Lcom/android/server/DeviceIdleController;II)[Ljava/lang/String; -HPLcom/android/server/DeviceIdleController;->-$$Nest$mgetTempAllowListType(Lcom/android/server/DeviceIdleController;II)I +HSPLcom/android/server/DeviceIdleController;->-$$Nest$mgetTempAllowListType(Lcom/android/server/DeviceIdleController;II)I HSPLcom/android/server/DeviceIdleController;->-$$Nest$misStationaryLocked(Lcom/android/server/DeviceIdleController;)Z HSPLcom/android/server/DeviceIdleController;->-$$Nest$mregisterTempAllowlistChangeListener(Lcom/android/server/DeviceIdleController;Lcom/android/server/PowerAllowlistInternal$TempAllowlistChangeListener;)V HSPLcom/android/server/DeviceIdleController;-><init>(Landroid/content/Context;)V @@ -1032,7 +1055,7 @@ HSPLcom/android/server/DeviceIdleController;-><init>(Landroid/content/Context;Lc HPLcom/android/server/DeviceIdleController;->addEvent(ILjava/lang/String;)V HPLcom/android/server/DeviceIdleController;->addPowerSaveTempAllowlistAppChecked(Ljava/lang/String;JIILjava/lang/String;)V HPLcom/android/server/DeviceIdleController;->addPowerSaveTempAllowlistAppInternal(ILjava/lang/String;JIIZILjava/lang/String;)V -HPLcom/android/server/DeviceIdleController;->addPowerSaveTempWhitelistAppDirectInternal(IIJIZILjava/lang/String;)V+]Landroid/os/Handler;Lcom/android/server/DeviceIdleController$MyHandler;]Landroid/os/Message;Landroid/os/Message;]Lcom/android/server/net/NetworkPolicyManagerInternal;Lcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; +HSPLcom/android/server/DeviceIdleController;->addPowerSaveTempWhitelistAppDirectInternal(IIJIZILjava/lang/String;)V+]Landroid/os/Handler;Lcom/android/server/DeviceIdleController$MyHandler;]Landroid/os/Message;Landroid/os/Message;]Lcom/android/server/net/NetworkPolicyManagerInternal;Lcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;]Lcom/android/internal/app/IBatteryStats;Lcom/android/server/am/BatteryStatsService;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; PLcom/android/server/DeviceIdleController;->addPowerSaveWhitelistAppsInternal(Ljava/util/List;)I HSPLcom/android/server/DeviceIdleController;->becomeActiveLocked(Ljava/lang/String;I)V HSPLcom/android/server/DeviceIdleController;->becomeActiveLocked(Ljava/lang/String;IJZ)V @@ -1059,7 +1082,7 @@ PLcom/android/server/DeviceIdleController;->getFullPowerWhitelistInternal(II)[Lj HSPLcom/android/server/DeviceIdleController;->getPowerSaveWhitelistUserAppIds()[I HSPLcom/android/server/DeviceIdleController;->getSystemDir()Ljava/io/File; PLcom/android/server/DeviceIdleController;->getSystemPowerWhitelistInternal(II)[Ljava/lang/String; -HPLcom/android/server/DeviceIdleController;->getTempAllowListType(II)I +HSPLcom/android/server/DeviceIdleController;->getTempAllowListType(II)I PLcom/android/server/DeviceIdleController;->handleMotionDetectedLocked(JLjava/lang/String;)V PLcom/android/server/DeviceIdleController;->handleWriteConfigFile()V PLcom/android/server/DeviceIdleController;->incActiveIdleOps()V @@ -1068,9 +1091,11 @@ PLcom/android/server/DeviceIdleController;->isOpsInactiveLocked()Z HPLcom/android/server/DeviceIdleController;->isPowerSaveWhitelistAppInternal(Ljava/lang/String;)Z HSPLcom/android/server/DeviceIdleController;->isStationaryLocked()Z PLcom/android/server/DeviceIdleController;->isUpcomingAlarmClock()Z -PLcom/android/server/DeviceIdleController;->keyguardShowingLocked(Z)V +HPLcom/android/server/DeviceIdleController;->keyguardShowingLocked(Z)V PLcom/android/server/DeviceIdleController;->lambda$getFullPowerWhitelistExceptIdleInternal$14(IILjava/lang/String;)Z +PLcom/android/server/DeviceIdleController;->lambda$getFullPowerWhitelistInternal$15(I)[Ljava/lang/String; PLcom/android/server/DeviceIdleController;->lambda$getFullPowerWhitelistInternal$16(IILjava/lang/String;)Z +PLcom/android/server/DeviceIdleController;->lambda$getSystemPowerWhitelistInternal$7(I)[Ljava/lang/String; PLcom/android/server/DeviceIdleController;->lambda$getSystemPowerWhitelistInternal$8(IILjava/lang/String;)Z PLcom/android/server/DeviceIdleController;->lambda$new$0()V PLcom/android/server/DeviceIdleController;->lambda$new$1()V @@ -1089,7 +1114,7 @@ HSPLcom/android/server/DeviceIdleController;->onStart()V HSPLcom/android/server/DeviceIdleController;->passWhiteListsToForceAppStandbyTrackerLocked()V HSPLcom/android/server/DeviceIdleController;->postStationaryStatus(Lcom/android/server/DeviceIdleInternal$StationaryListener;)V PLcom/android/server/DeviceIdleController;->postStationaryStatusUpdated()V -HPLcom/android/server/DeviceIdleController;->postTempActiveTimeoutMessage(IJ)V +HSPLcom/android/server/DeviceIdleController;->postTempActiveTimeoutMessage(IJ)V HSPLcom/android/server/DeviceIdleController;->readConfigFileLocked()V PLcom/android/server/DeviceIdleController;->readConfigFileLocked(Lorg/xmlpull/v1/XmlPullParser;)V PLcom/android/server/DeviceIdleController;->receivedGenericLocationLocked(Landroid/location/Location;)V @@ -1098,7 +1123,7 @@ HSPLcom/android/server/DeviceIdleController;->registerStationaryListener(Lcom/an HSPLcom/android/server/DeviceIdleController;->registerTempAllowlistChangeListener(Lcom/android/server/PowerAllowlistInternal$TempAllowlistChangeListener;)V PLcom/android/server/DeviceIdleController;->removePowerSaveWhitelistAppInternal(Ljava/lang/String;)Z PLcom/android/server/DeviceIdleController;->reportPowerSaveWhitelistChangedLocked()V -HPLcom/android/server/DeviceIdleController;->reportTempWhitelistChangedLocked(IZ)V +HSPLcom/android/server/DeviceIdleController;->reportTempWhitelistChangedLocked(IZ)V HPLcom/android/server/DeviceIdleController;->resetIdleManagementLocked()V HPLcom/android/server/DeviceIdleController;->resetLightIdleManagementLocked()V HPLcom/android/server/DeviceIdleController;->scheduleAlarmLocked(JZ)V @@ -1121,7 +1146,7 @@ HPLcom/android/server/DeviceIdleController;->updateChargingLocked(Z)V HSPLcom/android/server/DeviceIdleController;->updateConnectivityState(Landroid/content/Intent;)V HSPLcom/android/server/DeviceIdleController;->updateInteractivityLocked()V HSPLcom/android/server/DeviceIdleController;->updateQuickDozeFlagLocked(Z)V -HPLcom/android/server/DeviceIdleController;->updateTempWhitelistAppIdsLocked(IZJIILjava/lang/String;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; +HSPLcom/android/server/DeviceIdleController;->updateTempWhitelistAppIdsLocked(IZJIILjava/lang/String;I)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/PowerManagerInternal;Lcom/android/server/power/PowerManagerService$LocalService;]Lcom/android/server/DeviceIdleController;Lcom/android/server/DeviceIdleController;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; HSPLcom/android/server/DeviceIdleController;->updateWhitelistAppIdsLocked()V HPLcom/android/server/DeviceIdleController;->verifyAlarmStateLocked()V PLcom/android/server/DeviceIdleController;->writeConfigFileLocked()V @@ -1180,7 +1205,7 @@ HSPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;Lj HPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;Ljava/lang/String;J)V HSPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Lcom/android/server/DropBoxManagerService$EntryFile;)I+]Ljava/lang/Object;Lcom/android/server/DropBoxManagerService$EntryFile; HSPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Ljava/lang/Object;)I+]Lcom/android/server/DropBoxManagerService$EntryFile;Lcom/android/server/DropBoxManagerService$EntryFile; -HPLcom/android/server/DropBoxManagerService$EntryFile;->deleteFile(Ljava/io/File;)V +HSPLcom/android/server/DropBoxManagerService$EntryFile;->deleteFile(Ljava/io/File;)V HSPLcom/android/server/DropBoxManagerService$EntryFile;->getExtension()Ljava/lang/String; HSPLcom/android/server/DropBoxManagerService$EntryFile;->getFile(Ljava/io/File;)Ljava/io/File; HSPLcom/android/server/DropBoxManagerService$EntryFile;->getFilename()Ljava/lang/String; @@ -1213,7 +1238,7 @@ HSPLcom/android/server/DropBoxManagerService;->getLowPriorityResourceConfigs()V HPLcom/android/server/DropBoxManagerService;->getNextEntry(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)Landroid/os/DropBoxManager$Entry; HSPLcom/android/server/DropBoxManagerService;->init()V HSPLcom/android/server/DropBoxManagerService;->isTagEnabled(Ljava/lang/String;)Z -PLcom/android/server/DropBoxManagerService;->logDropboxDropped(ILjava/lang/String;J)V +HSPLcom/android/server/DropBoxManagerService;->logDropboxDropped(ILjava/lang/String;J)V HPLcom/android/server/DropBoxManagerService;->matchEntry(Lcom/android/server/DropBoxManagerService$EntryFile;Ljava/util/ArrayList;)Z HSPLcom/android/server/DropBoxManagerService;->onBootPhase(I)V HSPLcom/android/server/DropBoxManagerService;->onStart()V @@ -1238,6 +1263,7 @@ HSPLcom/android/server/EntropyMixer;->readSeedFile()[B HSPLcom/android/server/EntropyMixer;->scheduleSeedUpdater()V HSPLcom/android/server/EntropyMixer;->updateSeedFile()V HSPLcom/android/server/EntropyMixer;->writeNewSeed([B)V +PLcom/android/server/EventLogTags;->writeBackupAgentFailure(Ljava/lang/String;Ljava/lang/String;)V HPLcom/android/server/EventLogTags;->writeBatterySaverMode(IIIIILjava/lang/String;I)V PLcom/android/server/EventLogTags;->writeBatterySaverSetting(I)V HPLcom/android/server/EventLogTags;->writeBatterySavingStats(IIIJIIJII)V @@ -1374,9 +1400,10 @@ HSPLcom/android/server/HardwarePropertiesManagerService;-><init>(Landroid/conten PLcom/android/server/HardwarePropertiesManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(Ljava/lang/String;Ljava/io/PrintWriter;ILjava/lang/String;)V PLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(Ljava/lang/String;Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;I)V -PLcom/android/server/HardwarePropertiesManagerService;->enforceHardwarePropertiesRetrievalAllowed(Ljava/lang/String;)V +HPLcom/android/server/HardwarePropertiesManagerService;->enforceHardwarePropertiesRetrievalAllowed(Ljava/lang/String;)V PLcom/android/server/HardwarePropertiesManagerService;->getCallingPackageName()Ljava/lang/String; -PLcom/android/server/HardwarePropertiesManagerService;->getDeviceTemperatures(Ljava/lang/String;II)[F +HPLcom/android/server/HardwarePropertiesManagerService;->getCpuUsages(Ljava/lang/String;)[Landroid/os/CpuUsageInfo; +HPLcom/android/server/HardwarePropertiesManagerService;->getDeviceTemperatures(Ljava/lang/String;II)[F HSPLcom/android/server/IntentResolver$1;-><init>()V HSPLcom/android/server/IntentResolver$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I+]Landroid/content/IntentFilter;Lcom/android/server/am/BroadcastFilter; HSPLcom/android/server/IntentResolver$IteratorWrapper;-><init>(Lcom/android/server/IntentResolver;Ljava/util/Iterator;)V @@ -1387,7 +1414,7 @@ HSPLcom/android/server/IntentResolver;-><init>()V HSPLcom/android/server/IntentResolver;->addFilter(Landroid/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/IntentResolver;megamorphic_types HSPLcom/android/server/IntentResolver;->addFilter(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Ljava/lang/Object;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;,Lcom/android/server/am/BroadcastFilter;,Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;]Lcom/android/server/IntentResolver;megamorphic_types HSPLcom/android/server/IntentResolver;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z -HSPLcom/android/server/IntentResolver;->buildResolveList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Landroid/util/FastImmutableArraySet;ZZLjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/util/List;IJ)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;,Lcom/android/server/am/BroadcastFilter;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/IntentResolver;megamorphic_types]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/IntentResolver;->buildResolveList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Landroid/util/FastImmutableArraySet;ZZLjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/util/List;IJ)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;,Lcom/android/server/am/BroadcastFilter;]Lcom/android/server/IntentResolver;megamorphic_types]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/IntentResolver;->collectFilters([Ljava/lang/Object;Landroid/content/IntentFilter;)Ljava/util/ArrayList; HSPLcom/android/server/IntentResolver;->copyFrom(Lcom/android/server/IntentResolver;)V HSPLcom/android/server/IntentResolver;->copyInto(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/IntentResolver;megamorphic_types @@ -1400,14 +1427,14 @@ HSPLcom/android/server/IntentResolver;->filterEquals(Landroid/content/IntentFilt HSPLcom/android/server/IntentResolver;->filterIterator()Ljava/util/Iterator; HSPLcom/android/server/IntentResolver;->filterResults(Ljava/util/List;)V HSPLcom/android/server/IntentResolver;->filterSet()Ljava/util/Set; -HSPLcom/android/server/IntentResolver;->findFilters(Landroid/content/IntentFilter;)Ljava/util/ArrayList; +HSPLcom/android/server/IntentResolver;->findFilters(Landroid/content/IntentFilter;)Ljava/util/ArrayList;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/IntentResolver;Lcom/android/server/pm/PreferredIntentResolver;,Lcom/android/server/pm/CrossProfileIntentResolver;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator; HSPLcom/android/server/IntentResolver;->getFastIntentCategories(Landroid/content/Intent;)Landroid/util/FastImmutableArraySet;+]Ljava/util/Set;Landroid/util/ArraySet;]Landroid/content/Intent;Landroid/content/Intent; HPLcom/android/server/IntentResolver;->intentMatchesFilter(Landroid/content/IntentFilter;Landroid/content/Intent;Ljava/lang/String;)Z HSPLcom/android/server/IntentResolver;->isFilterStopped(Lcom/android/server/pm/Computer;Ljava/lang/Object;I)Z HSPLcom/android/server/IntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object; HSPLcom/android/server/IntentResolver;->queryIntent(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/content/Intent;Ljava/lang/String;ZI)Ljava/util/List;+]Lcom/android/server/IntentResolver;Lcom/android/server/am/ActivityManagerService$3;,Lcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;,Lcom/android/server/pm/PreferredIntentResolver;,Lcom/android/server/pm/CrossProfileIntentResolver; HSPLcom/android/server/IntentResolver;->queryIntent(Lcom/android/server/pm/snapshot/PackageDataSnapshot;Landroid/content/Intent;Ljava/lang/String;ZIJ)Ljava/util/List;+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/IntentResolver;megamorphic_types]Landroid/content/Intent;Landroid/content/Intent; -HSPLcom/android/server/IntentResolver;->queryIntentFromList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;ZLjava/util/ArrayList;IJ)Ljava/util/List;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/IntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/IntentResolver;->queryIntentFromList(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;ZLjava/util/ArrayList;IJ)Ljava/util/List;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/IntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ProviderIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/IntentResolver;->register_intent_filter(Ljava/lang/Object;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I+]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/IntentResolver;megamorphic_types HSPLcom/android/server/IntentResolver;->register_mime_types(Ljava/lang/Object;Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;,Lcom/android/server/am/BroadcastFilter;,Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/IntentResolver;megamorphic_types HPLcom/android/server/IntentResolver;->removeFilter(Ljava/lang/Object;)V @@ -1512,7 +1539,7 @@ PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda10;->sendC PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda11;-><init>(Ljava/lang/String;J[Ljava/lang/String;)V PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda11;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda1;-><init>(Ljava/lang/String;Ljava/lang/String;)V -PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda1;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V +HPLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda1;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda2;-><init>(Ljava/lang/String;)V PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda2;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V PLcom/android/server/NetworkManagementService$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;Z)V @@ -1693,7 +1720,7 @@ PLcom/android/server/NetworkScoreService$ScoringServiceConnection;-><init>(Landr PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->bind(Landroid/content/Context;)V PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->getAppData()Landroid/net/NetworkScorerAppData; -PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->getRecommendationProvider()Landroid/net/INetworkRecommendationProvider; +HPLcom/android/server/NetworkScoreService$ScoringServiceConnection;->getRecommendationProvider()Landroid/net/INetworkRecommendationProvider; PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->unbind(Landroid/content/Context;)V @@ -1752,6 +1779,7 @@ PLcom/android/server/NetworkScorerAppManager;->setNetworkRecommendationsEnabledS PLcom/android/server/NetworkScorerAppManager;->updateState()V PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/PackageWatchdog;ILjava/util/List;)V PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda0;->run()V +PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/PackageWatchdog;)V PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda10;->run()V PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/PackageWatchdog;)V PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda12;->run()V @@ -1771,6 +1799,7 @@ HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda7;-><init>(Lcom/a PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V HSPLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/PackageWatchdog;)V PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda8;->run()V +PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/PackageWatchdog;Lcom/android/server/PackageWatchdog$PackageHealthObserver;Ljava/util/List;Ljava/util/List;)V PLcom/android/server/PackageWatchdog$$ExternalSyntheticLambda9;->run()V HSPLcom/android/server/PackageWatchdog$BootThreshold;-><init>(Lcom/android/server/PackageWatchdog;IJ)V HSPLcom/android/server/PackageWatchdog$BootThreshold;->getCount()I @@ -2120,9 +2149,9 @@ HSPLcom/android/server/StorageManagerService$6;-><init>(Lcom/android/server/Stor PLcom/android/server/StorageManagerService$6;->onPackageRemoved(Ljava/lang/String;I)V PLcom/android/server/StorageManagerService$7;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V PLcom/android/server/StorageManagerService$7;->onVolumeChecking(Ljava/io/FileDescriptor;Ljava/lang/String;Ljava/lang/String;)Z -PLcom/android/server/StorageManagerService$9;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;)V -PLcom/android/server/StorageManagerService$9;->onFinished(ILandroid/os/PersistableBundle;)V -PLcom/android/server/StorageManagerService$9;->onStatus(ILandroid/os/PersistableBundle;)V +HSPLcom/android/server/StorageManagerService$9;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;)V +HSPLcom/android/server/StorageManagerService$9;->onFinished(ILandroid/os/PersistableBundle;)V +HSPLcom/android/server/StorageManagerService$9;->onStatus(ILandroid/os/PersistableBundle;)V PLcom/android/server/StorageManagerService$AppFuseMountScope;-><init>(Lcom/android/server/StorageManagerService;II)V PLcom/android/server/StorageManagerService$AppFuseMountScope;->close()V PLcom/android/server/StorageManagerService$AppFuseMountScope;->open()Landroid/os/ParcelFileDescriptor; @@ -2177,13 +2206,13 @@ PLcom/android/server/StorageManagerService$WatchedLockedUsers;->toString()Ljava/ PLcom/android/server/StorageManagerService;->$r8$lambda$PsncAamugJUjaCupcZOytmohbT0(Lcom/android/server/StorageManagerService;)V PLcom/android/server/StorageManagerService;->-$$Nest$fgetmCallbacks(Lcom/android/server/StorageManagerService;)Lcom/android/server/StorageManagerService$Callbacks; PLcom/android/server/StorageManagerService;->-$$Nest$fgetmCeStoragePreparedUsers(Lcom/android/server/StorageManagerService;)Ljava/util/Set; -PLcom/android/server/StorageManagerService;->-$$Nest$fgetmContext(Lcom/android/server/StorageManagerService;)Landroid/content/Context; +HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmContext(Lcom/android/server/StorageManagerService;)Landroid/content/Context; PLcom/android/server/StorageManagerService;->-$$Nest$fgetmDisks(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap; HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmHandler(Lcom/android/server/StorageManagerService;)Landroid/os/Handler; HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmIAppOpsService(Lcom/android/server/StorageManagerService;)Lcom/android/internal/app/IAppOpsService; HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmIPackageManager(Lcom/android/server/StorageManagerService;)Landroid/content/pm/IPackageManager; -PLcom/android/server/StorageManagerService;->-$$Nest$fgetmLastMaintenance(Lcom/android/server/StorageManagerService;)J -PLcom/android/server/StorageManagerService;->-$$Nest$fgetmLastMaintenanceFile(Lcom/android/server/StorageManagerService;)Ljava/io/File; +HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmLastMaintenance(Lcom/android/server/StorageManagerService;)J +HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmLastMaintenanceFile(Lcom/android/server/StorageManagerService;)Ljava/io/File; HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmLock(Lcom/android/server/StorageManagerService;)Ljava/lang/Object; HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmMediaStoreAuthorityAppId(Lcom/android/server/StorageManagerService;)I PLcom/android/server/StorageManagerService;->-$$Nest$fgetmObbMounts(Lcom/android/server/StorageManagerService;)Ljava/util/Map; @@ -2192,12 +2221,12 @@ PLcom/android/server/StorageManagerService;->-$$Nest$fgetmStorageSessionControll HSPLcom/android/server/StorageManagerService;->-$$Nest$fgetmUidsWithLegacyExternalStorage(Lcom/android/server/StorageManagerService;)Ljava/util/Set; PLcom/android/server/StorageManagerService;->-$$Nest$fgetmVold(Lcom/android/server/StorageManagerService;)Landroid/os/IVold; PLcom/android/server/StorageManagerService;->-$$Nest$fgetmVolumes(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap; -PLcom/android/server/StorageManagerService;->-$$Nest$fputmLastMaintenance(Lcom/android/server/StorageManagerService;J)V +HSPLcom/android/server/StorageManagerService;->-$$Nest$fputmLastMaintenance(Lcom/android/server/StorageManagerService;J)V PLcom/android/server/StorageManagerService;->-$$Nest$mbootCompleted(Lcom/android/server/StorageManagerService;)V PLcom/android/server/StorageManagerService;->-$$Nest$mcompleteUnlockUser(Lcom/android/server/StorageManagerService;I)V -PLcom/android/server/StorageManagerService;->-$$Nest$mdispatchOnFinished(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V -PLcom/android/server/StorageManagerService;->-$$Nest$mdispatchOnStatus(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V -PLcom/android/server/StorageManagerService;->-$$Nest$mfindRecordForPath(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Landroid/os/storage/VolumeRecord; +HSPLcom/android/server/StorageManagerService;->-$$Nest$mdispatchOnFinished(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V +HSPLcom/android/server/StorageManagerService;->-$$Nest$mdispatchOnStatus(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V +HSPLcom/android/server/StorageManagerService;->-$$Nest$mfindRecordForPath(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Landroid/os/storage/VolumeRecord; HSPLcom/android/server/StorageManagerService;->-$$Nest$mgetMountModeInternal(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I PLcom/android/server/StorageManagerService;->-$$Nest$mhandleBootCompleted(Lcom/android/server/StorageManagerService;)V HSPLcom/android/server/StorageManagerService;->-$$Nest$mhandleDaemonConnected(Lcom/android/server/StorageManagerService;)V @@ -2212,7 +2241,7 @@ PLcom/android/server/StorageManagerService;->-$$Nest$monUnlockUser(Lcom/android/ PLcom/android/server/StorageManagerService;->-$$Nest$monVolumeCreatedLocked(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V PLcom/android/server/StorageManagerService;->-$$Nest$monVolumeStateChangedAsync(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;II)V PLcom/android/server/StorageManagerService;->-$$Nest$monVolumeStateChangedLocked(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;I)V -PLcom/android/server/StorageManagerService;->-$$Nest$mscrubPath(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Ljava/lang/String; +HSPLcom/android/server/StorageManagerService;->-$$Nest$mscrubPath(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/server/StorageManagerService;->-$$Nest$mservicesReady(Lcom/android/server/StorageManagerService;)V HSPLcom/android/server/StorageManagerService;->-$$Nest$msnapshotAndMonitorLegacyStorageAppOp(Lcom/android/server/StorageManagerService;Landroid/os/UserHandle;)V HSPLcom/android/server/StorageManagerService;->-$$Nest$mstart(Lcom/android/server/StorageManagerService;)V @@ -2232,15 +2261,14 @@ PLcom/android/server/StorageManagerService;->completeUnlockUser(I)V HSPLcom/android/server/StorageManagerService;->configureTranscoding()V HSPLcom/android/server/StorageManagerService;->connectStoraged()V HSPLcom/android/server/StorageManagerService;->connectVold()V -PLcom/android/server/StorageManagerService;->dispatchOnFinished(Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V -PLcom/android/server/StorageManagerService;->dispatchOnStatus(Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V +HSPLcom/android/server/StorageManagerService;->dispatchOnFinished(Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V +HSPLcom/android/server/StorageManagerService;->dispatchOnStatus(Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V PLcom/android/server/StorageManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V -PLcom/android/server/StorageManagerService;->encodeBytes([B)Ljava/lang/String; PLcom/android/server/StorageManagerService;->enforceExternalStorageService()V PLcom/android/server/StorageManagerService;->enforcePermission(Ljava/lang/String;)V -PLcom/android/server/StorageManagerService;->findRecordForPath(Ljava/lang/String;)Landroid/os/storage/VolumeRecord; +HSPLcom/android/server/StorageManagerService;->findRecordForPath(Ljava/lang/String;)Landroid/os/storage/VolumeRecord; HPLcom/android/server/StorageManagerService;->fixupAppDir(Ljava/lang/String;)V -PLcom/android/server/StorageManagerService;->fstrim(ILandroid/os/IVoldTaskListener;)V +HSPLcom/android/server/StorageManagerService;->fstrim(ILandroid/os/IVoldTaskListener;)V HPLcom/android/server/StorageManagerService;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J PLcom/android/server/StorageManagerService;->getAverageWriteAmount()I PLcom/android/server/StorageManagerService;->getCacheQuotaBytes(Ljava/lang/String;I)J @@ -2251,7 +2279,7 @@ HPLcom/android/server/StorageManagerService;->getExternalStorageMountMode(ILjava HSPLcom/android/server/StorageManagerService;->getMountModeInternal(ILjava/lang/String;)I+]Lcom/android/internal/app/IAppOpsService;Lcom/android/server/appop/AppOpsService;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; PLcom/android/server/StorageManagerService;->getPrimaryStorageUuid()Ljava/lang/String; HSPLcom/android/server/StorageManagerService;->getProviderInfo(Ljava/lang/String;)Landroid/content/pm/ProviderInfo; -HSPLcom/android/server/StorageManagerService;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/os/storage/VolumeInfo;Landroid/os/storage/VolumeInfo;]Lcom/android/server/StorageManagerService;Lcom/android/server/StorageManagerService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/storage/StorageVolume;Landroid/os/storage/StorageVolume;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; +HSPLcom/android/server/StorageManagerService;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/os/storage/VolumeInfo;Landroid/os/storage/VolumeInfo;]Lcom/android/server/StorageManagerService;Lcom/android/server/StorageManagerService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/storage/StorageVolume;Landroid/os/storage/StorageVolume;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; PLcom/android/server/StorageManagerService;->getVolumeRecords(I)[Landroid/os/storage/VolumeRecord; HSPLcom/android/server/StorageManagerService;->getVolumes(I)[Landroid/os/storage/VolumeInfo;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; PLcom/android/server/StorageManagerService;->handleBootCompleted()V @@ -2298,10 +2326,10 @@ HSPLcom/android/server/StorageManagerService;->resetIfBootedAndConnected()V HSPLcom/android/server/StorageManagerService;->restoreLocalUnlockedUsers()V PLcom/android/server/StorageManagerService;->restoreSystemUnlockedUsers(Landroid/os/UserManager;Ljava/util/List;[I)V PLcom/android/server/StorageManagerService;->runIdleMaint(Ljava/lang/Runnable;)V -PLcom/android/server/StorageManagerService;->runIdleMaintenance(Ljava/lang/Runnable;)V -PLcom/android/server/StorageManagerService;->runMaintenance()V +HSPLcom/android/server/StorageManagerService;->runIdleMaintenance(Ljava/lang/Runnable;)V +HSPLcom/android/server/StorageManagerService;->runMaintenance()V HPLcom/android/server/StorageManagerService;->runSmartIdleMaint(Ljava/lang/Runnable;)V -PLcom/android/server/StorageManagerService;->scrubPath(Ljava/lang/String;)Ljava/lang/String; +HSPLcom/android/server/StorageManagerService;->scrubPath(Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/server/StorageManagerService;->servicesReady()V PLcom/android/server/StorageManagerService;->setCloudMediaProvider(Ljava/lang/String;)V HSPLcom/android/server/StorageManagerService;->snapshotAndMonitorLegacyStorageAppOp(Landroid/os/UserHandle;)V @@ -2315,6 +2343,14 @@ HSPLcom/android/server/StorageManagerService;->updateLegacyStorageApps(Ljava/lan PLcom/android/server/StorageManagerService;->updateStorageWriteRecords(I)V PLcom/android/server/StorageManagerService;->writeSettingsLocked()V PLcom/android/server/StorageManagerService;->writeVolumeRecord(Landroid/util/TypedXmlSerializer;Landroid/os/storage/VolumeRecord;)V +HSPLcom/android/server/SystemClockTime;-><clinit>()V +PLcom/android/server/SystemClockTime;->addDebugLogEntry(Ljava/lang/String;)V +PLcom/android/server/SystemClockTime;->dump(Ljava/io/PrintWriter;)V +HSPLcom/android/server/SystemClockTime;->getCurrentTimeMillis()J +PLcom/android/server/SystemClockTime;->getTimeConfidence()I +HSPLcom/android/server/SystemClockTime;->initializeIfRequired()V +PLcom/android/server/SystemClockTime;->setConfidence(ILjava/lang/String;)V +PLcom/android/server/SystemClockTime;->setTimeAndConfidence(JILjava/lang/String;)V HSPLcom/android/server/SystemConfigService$1;-><init>(Lcom/android/server/SystemConfigService;)V HSPLcom/android/server/SystemConfigService$1;->getDisabledUntilUsedPreinstalledCarrierApps()Ljava/util/List; HSPLcom/android/server/SystemConfigService$1;->getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries()Ljava/util/Map; @@ -2400,7 +2436,7 @@ HSPLcom/android/server/SystemService$TargetUser;->getUserIdentifier()I HSPLcom/android/server/SystemService$TargetUser;->isFull()Z PLcom/android/server/SystemService$TargetUser;->isManagedProfile()Z HSPLcom/android/server/SystemService$TargetUser;->isPreCreated()Z -PLcom/android/server/SystemService$TargetUser;->isProfile()Z +HSPLcom/android/server/SystemService$TargetUser;->isProfile()Z PLcom/android/server/SystemService$TargetUser;->toString()Ljava/lang/String; PLcom/android/server/SystemService$UserCompletedEventType;-><init>(I)V PLcom/android/server/SystemService$UserCompletedEventType;->includesOnUserStarting()Z @@ -2473,6 +2509,16 @@ HSPLcom/android/server/SystemServiceManager;->updateOtherServicesStartIndex()V HSPLcom/android/server/SystemServiceManager;->useThreadPool(ILjava/lang/String;)Z PLcom/android/server/SystemServiceManager;->useThreadPoolForService(Ljava/lang/String;I)Z HSPLcom/android/server/SystemServiceManager;->warnIfTooLong(JLcom/android/server/SystemService;Ljava/lang/String;)V +HSPLcom/android/server/SystemTimeZone;-><clinit>()V +PLcom/android/server/SystemTimeZone;->addDebugLogEntry(Ljava/lang/String;)V +PLcom/android/server/SystemTimeZone;->dump(Ljava/io/PrintWriter;)V +PLcom/android/server/SystemTimeZone;->getTimeZoneConfidence()I +PLcom/android/server/SystemTimeZone;->getTimeZoneId()Ljava/lang/String; +HSPLcom/android/server/SystemTimeZone;->initializeTimeZoneSettingsIfRequired()V +PLcom/android/server/SystemTimeZone;->isValidTimeZoneConfidence(I)Z +HSPLcom/android/server/SystemTimeZone;->isValidTimeZoneId(Ljava/lang/String;)Z +PLcom/android/server/SystemTimeZone;->setTimeZoneConfidence(I)Z +PLcom/android/server/SystemTimeZone;->setTimeZoneId(Ljava/lang/String;ILjava/lang/String;)Z HSPLcom/android/server/SystemUpdateManagerService;-><init>(Landroid/content/Context;)V PLcom/android/server/SystemUpdateManagerService;->getBootCount()I HSPLcom/android/server/SystemUpdateManagerService;->loadSystemUpdateInfoLocked()Landroid/os/Bundle; @@ -2484,7 +2530,7 @@ PLcom/android/server/SystemUpdateManagerService;->updateSystemUpdateInfo(Landroi PLcom/android/server/SystemUpdateManagerService;->writeInfoFileLocked(Landroid/os/PersistableBundle;)Z HPLcom/android/server/TelephonyRegistry$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/TelephonyRegistry;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;)V HPLcom/android/server/TelephonyRegistry$$ExternalSyntheticLambda0;->getOrThrow()Ljava/lang/Object; -PLcom/android/server/TelephonyRegistry$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/TelephonyRegistry;)V +HPLcom/android/server/TelephonyRegistry$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/TelephonyRegistry;)V HPLcom/android/server/TelephonyRegistry$$ExternalSyntheticLambda1;->getOrThrow()Ljava/lang/Object; HPLcom/android/server/TelephonyRegistry$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/TelephonyRegistry;)V HPLcom/android/server/TelephonyRegistry$$ExternalSyntheticLambda2;->getOrThrow()Ljava/lang/Object; @@ -2624,7 +2670,7 @@ PLcom/android/server/TelephonyRegistry;->notifyPreciseCallState(IIIII)V PLcom/android/server/TelephonyRegistry;->notifyRadioPowerStateChanged(III)V PLcom/android/server/TelephonyRegistry;->notifyRegistrationFailed(IILandroid/telephony/CellIdentity;Ljava/lang/String;III)V HPLcom/android/server/TelephonyRegistry;->notifyServiceStateForPhoneId(IILandroid/telephony/ServiceState;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/internal/telephony/IPhoneStateListener;Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;,Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;]Lcom/android/server/TelephonyRegistry;Lcom/android/server/TelephonyRegistry;]Lcom/android/server/TelephonyRegistry$Record;Lcom/android/server/TelephonyRegistry$Record;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/telephony/ServiceState;Landroid/telephony/ServiceState;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/util/LocalLog;Landroid/util/LocalLog; -HPLcom/android/server/TelephonyRegistry;->notifySignalStrengthForPhoneId(IILandroid/telephony/SignalStrength;)V+]Lcom/android/server/TelephonyRegistry;Lcom/android/server/TelephonyRegistry;]Lcom/android/server/TelephonyRegistry$Record;Lcom/android/server/TelephonyRegistry$Record;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/internal/telephony/IPhoneStateListener;Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;,Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;,Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub; +HPLcom/android/server/TelephonyRegistry;->notifySignalStrengthForPhoneId(IILandroid/telephony/SignalStrength;)V+]Lcom/android/internal/telephony/IPhoneStateListener;Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;,Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;,Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;]Lcom/android/server/TelephonyRegistry;Lcom/android/server/TelephonyRegistry;]Lcom/android/server/TelephonyRegistry$Record;Lcom/android/server/TelephonyRegistry$Record;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; PLcom/android/server/TelephonyRegistry;->notifySimActivationStateChangedForPhoneId(IIII)V PLcom/android/server/TelephonyRegistry;->notifySrvccStateChanged(II)V HPLcom/android/server/TelephonyRegistry;->notifySubscriptionInfoChanged()V @@ -2632,7 +2678,7 @@ PLcom/android/server/TelephonyRegistry;->notifyUserMobileDataStateChangedForPhon HSPLcom/android/server/TelephonyRegistry;->onMultiSimConfigChanged()V HSPLcom/android/server/TelephonyRegistry;->pii(Ljava/lang/String;)Ljava/lang/String; PLcom/android/server/TelephonyRegistry;->pii(Ljava/util/List;)Ljava/lang/String; -HPLcom/android/server/TelephonyRegistry;->remove(Landroid/os/IBinder;)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;,Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;,Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HPLcom/android/server/TelephonyRegistry;->remove(Landroid/os/IBinder;)V+]Landroid/os/IBinder;Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;,Landroid/os/BinderProxy;,Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/TelephonyRegistry;->removeOnSubscriptionsChangedListener(Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V PLcom/android/server/TelephonyRegistry;->shouldSanitizeLocationForPhysicalChannelConfig(Lcom/android/server/TelephonyRegistry$Record;)Z HSPLcom/android/server/TelephonyRegistry;->systemRunning()V @@ -2692,6 +2738,7 @@ HSPLcom/android/server/UiModeManagerService$6;-><init>(Lcom/android/server/UiMod HSPLcom/android/server/UiModeManagerService$7;-><init>(Lcom/android/server/UiModeManagerService;)V HSPLcom/android/server/UiModeManagerService$8;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V HSPLcom/android/server/UiModeManagerService$9;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V +PLcom/android/server/UiModeManagerService$9;->onChange(ZLandroid/net/Uri;)V HSPLcom/android/server/UiModeManagerService$Injector;-><init>()V PLcom/android/server/UiModeManagerService$Injector;->getCallingUid()I HSPLcom/android/server/UiModeManagerService$LocalService;-><init>(Lcom/android/server/UiModeManagerService;)V @@ -2720,6 +2767,7 @@ HSPLcom/android/server/UiModeManagerService;->-$$Nest$fgetmProjectionListeners(L PLcom/android/server/UiModeManagerService;->-$$Nest$fgetmUiModeLocked(Lcom/android/server/UiModeManagerService;)Z HPLcom/android/server/UiModeManagerService;->-$$Nest$fputmCharging(Lcom/android/server/UiModeManagerService;Z)V PLcom/android/server/UiModeManagerService;->-$$Nest$fputmLastBedtimeRequestedNightMode(Lcom/android/server/UiModeManagerService;Z)V +PLcom/android/server/UiModeManagerService;->-$$Nest$fputmNightMode(Lcom/android/server/UiModeManagerService;I)V PLcom/android/server/UiModeManagerService;->-$$Nest$fputmOverrideNightModeOff(Lcom/android/server/UiModeManagerService;Z)V PLcom/android/server/UiModeManagerService;->-$$Nest$fputmOverrideNightModeOn(Lcom/android/server/UiModeManagerService;Z)V PLcom/android/server/UiModeManagerService;->-$$Nest$fputmOverrideNightModeUser(Lcom/android/server/UiModeManagerService;I)V @@ -2739,6 +2787,7 @@ PLcom/android/server/UiModeManagerService;->-$$Nest$mshouldApplyAutomaticChanges PLcom/android/server/UiModeManagerService;->-$$Nest$munregisterScreenOffEventLocked(Lcom/android/server/UiModeManagerService;)V PLcom/android/server/UiModeManagerService;->-$$Nest$mupdateAfterBroadcastLocked(Lcom/android/server/UiModeManagerService;Ljava/lang/String;II)V PLcom/android/server/UiModeManagerService;->-$$Nest$mupdateConfigurationLocked(Lcom/android/server/UiModeManagerService;)V +PLcom/android/server/UiModeManagerService;->-$$Nest$mupdateSystemProperties(Lcom/android/server/UiModeManagerService;)V PLcom/android/server/UiModeManagerService;->-$$Nest$sfgetTAG()Ljava/lang/String; PLcom/android/server/UiModeManagerService;->-$$Nest$smassertSingleProjectionType(I)V HSPLcom/android/server/UiModeManagerService;-><clinit>()V @@ -2858,11 +2907,21 @@ PLcom/android/server/VcnManagementService$VcnCallbackImpl;->onSafeModeStatusChan PLcom/android/server/VcnManagementService$VcnStatusCallbackInfo;-><init>(Lcom/android/server/VcnManagementService;Landroid/os/ParcelUuid;Landroid/net/vcn/IVcnStatusCallback;Ljava/lang/String;I)V PLcom/android/server/VcnManagementService$VcnStatusCallbackInfo;-><init>(Lcom/android/server/VcnManagementService;Landroid/os/ParcelUuid;Landroid/net/vcn/IVcnStatusCallback;Ljava/lang/String;ILcom/android/server/VcnManagementService$VcnStatusCallbackInfo-IA;)V PLcom/android/server/VcnManagementService$VcnStatusCallbackInfo;->binderDied()V +PLcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback;Landroid/os/ParcelUuid;Lcom/android/server/vcn/Vcn;)V HSPLcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback;-><init>(Lcom/android/server/VcnManagementService;)V HSPLcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback;-><init>(Lcom/android/server/VcnManagementService;Lcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback-IA;)V HSPLcom/android/server/VcnManagementService$VcnSubscriptionTrackerCallback;->onNewSnapshot(Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)V +PLcom/android/server/VcnManagementService;->$r8$lambda$4YxvZhzCeVThssiPjGG4HrCE8hw(Ljava/util/List;Landroid/telephony/SubscriptionManager;Landroid/os/ParcelUuid;)V +PLcom/android/server/VcnManagementService;->$r8$lambda$ACAk-gMgy6L5vLeexVmLwPeazn0(Lcom/android/server/VcnManagementService;Lcom/android/server/VcnManagementService$PolicyListenerBinderDeath;)V +HPLcom/android/server/VcnManagementService;->$r8$lambda$Ah98adKs9Sq_mx3WNEd26UUrGLs(Lcom/android/server/VcnManagementService;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)Landroid/net/vcn/VcnUnderlyingNetworkPolicy; HSPLcom/android/server/VcnManagementService;->$r8$lambda$YG_7M3pmtjEJe39XJFuPDMVSt2I(Lcom/android/server/VcnManagementService;)V +PLcom/android/server/VcnManagementService;->$r8$lambda$d11cUI23owHRwmT6M6gkSMi-1UQ(Lcom/android/server/VcnManagementService;Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;)V +PLcom/android/server/VcnManagementService;->$r8$lambda$irEXW9r1V218vQt0UORkxh7GBKE(Lcom/android/server/VcnManagementService;Lcom/android/server/VcnManagementService$VcnStatusCallbackInfo;I)V +PLcom/android/server/VcnManagementService;->$r8$lambda$l8qud9zz9bLHJgVZe4M5G2Q8pBc(Lcom/android/server/VcnManagementService;Landroid/os/ParcelUuid;Landroid/net/vcn/VcnConfig;)V +PLcom/android/server/VcnManagementService;->$r8$lambda$t-0F_1FnqqvCLrQS5zXg8E6cEug(Lcom/android/server/VcnManagementService;Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/VcnManagementService;->$r8$lambda$vZCRzse9R637dprziFJ6hNyhJqs(Lcom/android/server/VcnManagementService;Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;)V HSPLcom/android/server/VcnManagementService;->-$$Nest$fgetmConfigs(Lcom/android/server/VcnManagementService;)Ljava/util/Map; +PLcom/android/server/VcnManagementService;->-$$Nest$fgetmHandler(Lcom/android/server/VcnManagementService;)Landroid/os/Handler; HSPLcom/android/server/VcnManagementService;->-$$Nest$fgetmLastSnapshot(Lcom/android/server/VcnManagementService;)Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot; HSPLcom/android/server/VcnManagementService;->-$$Nest$fgetmLock(Lcom/android/server/VcnManagementService;)Ljava/lang/Object; PLcom/android/server/VcnManagementService;->-$$Nest$fgetmRegisteredStatusCallbacks(Lcom/android/server/VcnManagementService;)Ljava/util/Map; @@ -2893,7 +2952,15 @@ HSPLcom/android/server/VcnManagementService;->getSubGroupToSubIdMappings(Lcom/an HPLcom/android/server/VcnManagementService;->getUnderlyingNetworkPolicy(Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)Landroid/net/vcn/VcnUnderlyingNetworkPolicy; PLcom/android/server/VcnManagementService;->isActiveSubGroup(Landroid/os/ParcelUuid;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)Z PLcom/android/server/VcnManagementService;->isCallbackPermissioned(Lcom/android/server/VcnManagementService$VcnStatusCallbackInfo;Landroid/os/ParcelUuid;)Z +PLcom/android/server/VcnManagementService;->lambda$addVcnUnderlyingNetworkPolicyListener$6(Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;)V +PLcom/android/server/VcnManagementService;->lambda$dump$9(Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/VcnManagementService;->lambda$enforceCallingUserAndCarrierPrivilege$1(Ljava/util/List;Landroid/telephony/SubscriptionManager;Landroid/os/ParcelUuid;)V +HPLcom/android/server/VcnManagementService;->lambda$getUnderlyingNetworkPolicy$8(Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)Landroid/net/vcn/VcnUnderlyingNetworkPolicy; HSPLcom/android/server/VcnManagementService;->lambda$new$0()V +PLcom/android/server/VcnManagementService;->lambda$notifyAllPermissionedStatusCallbacksLocked$3(Lcom/android/server/VcnManagementService$VcnStatusCallbackInfo;I)V +PLcom/android/server/VcnManagementService;->lambda$notifyAllPolicyListenersLocked$2(Lcom/android/server/VcnManagementService$PolicyListenerBinderDeath;)V +PLcom/android/server/VcnManagementService;->lambda$removeVcnUnderlyingNetworkPolicyListener$7(Landroid/net/vcn/IVcnUnderlyingNetworkPolicyListener;)V +PLcom/android/server/VcnManagementService;->lambda$setVcnConfig$4(Landroid/os/ParcelUuid;Landroid/net/vcn/VcnConfig;)V PLcom/android/server/VcnManagementService;->logDbg(Ljava/lang/String;)V HSPLcom/android/server/VcnManagementService;->logInfo(Ljava/lang/String;)V PLcom/android/server/VcnManagementService;->logVdbg(Ljava/lang/String;)V @@ -2932,8 +2999,12 @@ HSPLcom/android/server/VpnManagerService;->create(Landroid/content/Context;)Lcom PLcom/android/server/VpnManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/VpnManagerService;->enforceControlAlwaysOnVpnPermission()V PLcom/android/server/VpnManagerService;->enforceCrossUserPermission(I)V +PLcom/android/server/VpnManagerService;->enforceSettingsPermission()V HSPLcom/android/server/VpnManagerService;->ensureRunningOnHandlerThread()V PLcom/android/server/VpnManagerService;->getAlwaysOnVpnPackage(I)Ljava/lang/String; +PLcom/android/server/VpnManagerService;->getAppExclusionList(ILjava/lang/String;)Ljava/util/List; +PLcom/android/server/VpnManagerService;->getAppUid(Ljava/lang/String;I)I +PLcom/android/server/VpnManagerService;->getProvisionedVpnProfileState(Ljava/lang/String;)Landroid/net/VpnProfileState; PLcom/android/server/VpnManagerService;->getVpnConfig(I)Lcom/android/internal/net/VpnConfig; HSPLcom/android/server/VpnManagerService;->isLockdownVpnEnabled()Z HSPLcom/android/server/VpnManagerService;->log(Ljava/lang/String;)V @@ -2948,9 +3019,11 @@ PLcom/android/server/VpnManagerService;->prepareVpn(Ljava/lang/String;Ljava/lang HSPLcom/android/server/VpnManagerService;->registerReceivers()V HSPLcom/android/server/VpnManagerService;->setLockdownTracker(Lcom/android/server/net/LockdownVpnTracker;)V PLcom/android/server/VpnManagerService;->startAlwaysOnVpn(I)Z +PLcom/android/server/VpnManagerService;->stopVpnProfile(Ljava/lang/String;)V HSPLcom/android/server/VpnManagerService;->systemReady()V PLcom/android/server/VpnManagerService;->throwIfLockdownEnabled()V HSPLcom/android/server/VpnManagerService;->updateLockdownVpn()Z +PLcom/android/server/VpnManagerService;->verifyCallingUidAndPackage(Ljava/lang/String;I)V HSPLcom/android/server/Watchdog$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/Watchdog;)V HSPLcom/android/server/Watchdog$$ExternalSyntheticLambda0;->run()V PLcom/android/server/Watchdog$1;-><init>(Lcom/android/server/Watchdog;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/io/File;Ljava/util/UUID;)V @@ -3046,10 +3119,10 @@ PLcom/android/server/ZramWriteback;->onStartJob(Landroid/app/job/JobParameters;) PLcom/android/server/ZramWriteback;->onStopJob(Landroid/app/job/JobParameters;)Z PLcom/android/server/ZramWriteback;->schedNextWriteback(Landroid/content/Context;)V HSPLcom/android/server/ZramWriteback;->scheduleZramWriteback(Landroid/content/Context;)V -PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda0;-><init>()V -PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda0;-><init>()V +HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda10;-><init>()V -PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V +HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda11;->run()V PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda16;-><init>()V @@ -3060,7 +3133,7 @@ PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheti PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda21;-><init>()V PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda22;-><init>()V -PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda23;-><init>()V +HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda23;-><init>()V HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V HPLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda24;-><init>()V PLcom/android/server/accessibility/AccessibilityManagerService$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/accessibility/AccessibilityUserState;)V @@ -3108,6 +3181,7 @@ HSPLcom/android/server/accessibility/AccessibilityManagerService$2;-><init>(Lcom HPLcom/android/server/accessibility/AccessibilityManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/accessibility/AccessibilityManagerService$3;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Handler;)V +PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;->onChange(ZLandroid/net/Uri;)V HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;->register(Landroid/content/ContentResolver;)V HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService$MainHandler;)V PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->getValidDisplayList()Ljava/util/ArrayList; @@ -3125,6 +3199,7 @@ HSPLcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;->onS HSPLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V HPLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->bindInput()V HPLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->createImeSession(Landroid/util/ArraySet;)V +PLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->isTouchExplorationEnabled(I)Z HPLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->startInput(Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;Z)V PLcom/android/server/accessibility/AccessibilityManagerService$LocalServiceImpl;->unbindInput()V HSPLcom/android/server/accessibility/AccessibilityManagerService$MainHandler;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Looper;)V @@ -3161,6 +3236,7 @@ PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$mnotify HSPLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$monBootPhase(Lcom/android/server/accessibility/AccessibilityManagerService;I)V PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$monUserStateChangedLocked(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$mreadConfigurationForUserStateLocked(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z +PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$mreadHighTextContrastEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$mswitchUser(Lcom/android/server/accessibility/AccessibilityManagerService;I)V PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$munlockUser(Lcom/android/server/accessibility/AccessibilityManagerService;I)V PLcom/android/server/accessibility/AccessibilityManagerService;->-$$Nest$mupdateMagnificationLocked(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V @@ -3322,7 +3398,6 @@ PLcom/android/server/accessibility/AccessibilityUserState;->isPerformGesturesEna PLcom/android/server/accessibility/AccessibilityUserState;->isSendMotionEventsEnabled()Z HPLcom/android/server/accessibility/AccessibilityUserState;->isShortcutMagnificationEnabledLocked()Z PLcom/android/server/accessibility/AccessibilityUserState;->isShortcutTargetInstalledLocked(Ljava/lang/String;)Z -PLcom/android/server/accessibility/AccessibilityUserState;->isSoftwareCursorEnabledLocked()Z PLcom/android/server/accessibility/AccessibilityUserState;->isTextHighContrastEnabledLocked()Z PLcom/android/server/accessibility/AccessibilityUserState;->isTouchExplorationEnabledLocked()Z PLcom/android/server/accessibility/AccessibilityUserState;->isValidMagnificationModeLocked(I)Z @@ -3339,6 +3414,7 @@ PLcom/android/server/accessibility/AccessibilityUserState;->setPerformGesturesEn PLcom/android/server/accessibility/AccessibilityUserState;->setSendMotionEventsEnabled(Z)V PLcom/android/server/accessibility/AccessibilityUserState;->setServiceHandlesDoubleTapLocked(Z)V PLcom/android/server/accessibility/AccessibilityUserState;->setTargetAssignedToAccessibilityButton(Ljava/lang/String;)V +PLcom/android/server/accessibility/AccessibilityUserState;->setTextHighContrastEnabledLocked(Z)V PLcom/android/server/accessibility/AccessibilityUserState;->setTwoFingerPassthroughLocked(Z)V PLcom/android/server/accessibility/AccessibilityUserState;->unbindAllServicesLocked()V PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;-><init>(Lcom/android/server/accessibility/AccessibilityWindowManager;ILandroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;II)V @@ -3390,7 +3466,6 @@ PLcom/android/server/accessibility/UiAutomationManager;->isTouchExplorationEnabl HSPLcom/android/server/accessibility/UiAutomationManager;->isUiAutomationRunningLocked()Z HSPLcom/android/server/accessibility/UiAutomationManager;->suppressingAccessibilityServicesLocked()Z HSPLcom/android/server/accessibility/UiAutomationManager;->useAccessibility()Z -HSPLcom/android/server/accessibility/cursor/SoftwareCursorManager;-><init>()V PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$ControllerContext;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityTraceManager;Lcom/android/server/wm/WindowManagerInternal;Landroid/os/Handler;J)V PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$ControllerContext;->getAnimationDuration()J PLcom/android/server/accessibility/magnification/FullScreenMagnificationController$ControllerContext;->getContext()Landroid/content/Context; @@ -3455,7 +3530,7 @@ PLcom/android/server/accessibility/magnification/MagnificationController;->isFul PLcom/android/server/accessibility/magnification/MagnificationController;->logMagnificationModeWithImeOnIfNeeded(I)V PLcom/android/server/accessibility/magnification/MagnificationController;->onDisplayRemoved(I)V PLcom/android/server/accessibility/magnification/MagnificationController;->onImeWindowVisibilityChanged(IZ)V -PLcom/android/server/accessibility/magnification/MagnificationController;->onRectangleOnScreenRequested(IIIII)V +HPLcom/android/server/accessibility/magnification/MagnificationController;->onRectangleOnScreenRequested(IIIII)V PLcom/android/server/accessibility/magnification/MagnificationController;->setMagnificationCapabilities(I)V PLcom/android/server/accessibility/magnification/MagnificationController;->supportWindowMagnification()Z PLcom/android/server/accessibility/magnification/MagnificationController;->transitionMagnificationModeLocked(IILcom/android/server/accessibility/magnification/MagnificationController$TransitionCallBack;)V @@ -3522,6 +3597,8 @@ PLcom/android/server/accounts/AccountManagerService$4;->onOpChanged(ILjava/lang/ HPLcom/android/server/accounts/AccountManagerService$8;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;ZZLjava/lang/String;ZLandroid/os/Bundle;Landroid/accounts/Account;Ljava/lang/String;ZZLjava/lang/String;IZ[BLcom/android/server/accounts/AccountManagerService$UserAccounts;)V HPLcom/android/server/accounts/AccountManagerService$8;->onResult(Landroid/os/Bundle;)V HPLcom/android/server/accounts/AccountManagerService$8;->run()V +PLcom/android/server/accounts/AccountManagerService$9;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;ZZLjava/lang/String;ZZLjava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/String;)V +PLcom/android/server/accounts/AccountManagerService$9;->run()V HSPLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;-><init>(Lcom/android/server/accounts/AccountManagerService;)V HSPLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl-IA;)V HSPLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;->addOnAppPermissionChangeListener(Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;)V @@ -3557,7 +3634,8 @@ HPLcom/android/server/accounts/AccountManagerService$Session;->bind()V HPLcom/android/server/accounts/AccountManagerService$Session;->bindToAuthenticator(Ljava/lang/String;)Z PLcom/android/server/accounts/AccountManagerService$Session;->binderDied()V HPLcom/android/server/accounts/AccountManagerService$Session;->cancelTimeout()V -PLcom/android/server/accounts/AccountManagerService$Session;->checkKeyIntent(ILandroid/content/Intent;)Z +PLcom/android/server/accounts/AccountManagerService$Session;->checkKeyIntent(ILandroid/os/Bundle;)Z +PLcom/android/server/accounts/AccountManagerService$Session;->checkKeyIntentParceledCorrectly(Landroid/os/Bundle;)Z HPLcom/android/server/accounts/AccountManagerService$Session;->close()V HPLcom/android/server/accounts/AccountManagerService$Session;->getResponseAndClose()Landroid/accounts/IAccountManagerResponse; PLcom/android/server/accounts/AccountManagerService$Session;->isExportedSystemActivity(Landroid/content/pm/ActivityInfo;)Z @@ -3596,7 +3674,9 @@ PLcom/android/server/accounts/AccountManagerService;->-$$Nest$mcancelAccountAcce PLcom/android/server/accounts/AccountManagerService;->-$$Nest$mcancelNotification(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$NotificationId;Landroid/os/UserHandle;)V PLcom/android/server/accounts/AccountManagerService;->-$$Nest$mgetSigninRequiredNotificationId(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Lcom/android/server/accounts/AccountManagerService$NotificationId; HPLcom/android/server/accounts/AccountManagerService;->-$$Nest$mhasAccountAccess(Lcom/android/server/accounts/AccountManagerService;Landroid/accounts/Account;Ljava/lang/String;I)Z +PLcom/android/server/accounts/AccountManagerService;->-$$Nest$misAccountPresentForCaller(Lcom/android/server/accounts/AccountManagerService;Ljava/lang/String;Ljava/lang/String;)Z HPLcom/android/server/accounts/AccountManagerService;->-$$Nest$misLocalUnlockedUser(Lcom/android/server/accounts/AccountManagerService;I)Z +PLcom/android/server/accounts/AccountManagerService;->-$$Nest$mlogAddAccountMetrics(Lcom/android/server/accounts/AccountManagerService;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/accounts/AccountManagerService;->-$$Nest$mlogGetAuthTokenMetrics(Lcom/android/server/accounts/AccountManagerService;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/accounts/AccountManagerService;->-$$Nest$mpurgeOldGrantsAll(Lcom/android/server/accounts/AccountManagerService;)V PLcom/android/server/accounts/AccountManagerService;->-$$Nest$mpurgeUserData(Lcom/android/server/accounts/AccountManagerService;I)V @@ -3608,6 +3688,8 @@ HSPLcom/android/server/accounts/AccountManagerService;-><clinit>()V HSPLcom/android/server/accounts/AccountManagerService;-><init>(Lcom/android/server/accounts/AccountManagerService$Injector;)V HPLcom/android/server/accounts/AccountManagerService;->accountExistsCache(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Z+]Ljava/util/HashMap;Ljava/util/LinkedHashMap; HPLcom/android/server/accounts/AccountManagerService;->accountTypeManagesContacts(Ljava/lang/String;I)Z+]Lcom/android/server/accounts/IAccountAuthenticatorCache;Lcom/android/server/accounts/AccountAuthenticatorCache;]Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1; +PLcom/android/server/accounts/AccountManagerService;->addAccount(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;)V +PLcom/android/server/accounts/AccountManagerService;->addAccountAndLogMetrics(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;I)V PLcom/android/server/accounts/AccountManagerService;->addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/String;)Z PLcom/android/server/accounts/AccountManagerService;->addAccountExplicitlyWithVisibility(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/Map;Ljava/lang/String;)Z PLcom/android/server/accounts/AccountManagerService;->addAccountInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ILjava/util/Map;Ljava/lang/String;)Z @@ -3617,7 +3699,7 @@ PLcom/android/server/accounts/AccountManagerService;->canHaveProfile(I)Z PLcom/android/server/accounts/AccountManagerService;->canUserModifyAccounts(II)Z PLcom/android/server/accounts/AccountManagerService;->canUserModifyAccountsForType(ILjava/lang/String;I)Z PLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(IZ)V -PLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(Landroid/accounts/Account;ILjava/lang/String;Z)V +HPLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(Landroid/accounts/Account;ILjava/lang/String;Z)V PLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(Landroid/accounts/Account;IZ)V HPLcom/android/server/accounts/AccountManagerService;->cancelNotification(Lcom/android/server/accounts/AccountManagerService$NotificationId;Landroid/os/UserHandle;)V HPLcom/android/server/accounts/AccountManagerService;->cancelNotification(Lcom/android/server/accounts/AccountManagerService$NotificationId;Ljava/lang/String;Landroid/os/UserHandle;)V @@ -3648,7 +3730,7 @@ HPLcom/android/server/accounts/AccountManagerService;->getAuthToken(Landroid/acc HSPLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypeAndUIDForUser(Lcom/android/server/accounts/IAccountAuthenticatorCache;I)Ljava/util/HashMap; HPLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription; HPLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypesInternal(I)[Landroid/accounts/AuthenticatorDescription;+]Lcom/android/server/accounts/IAccountAuthenticatorCache;Lcom/android/server/accounts/AccountAuthenticatorCache;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1; -PLcom/android/server/accounts/AccountManagerService;->getCredentialPermissionNotificationId(Landroid/accounts/Account;Ljava/lang/String;I)Lcom/android/server/accounts/AccountManagerService$NotificationId; +HPLcom/android/server/accounts/AccountManagerService;->getCredentialPermissionNotificationId(Landroid/accounts/Account;Ljava/lang/String;I)Lcom/android/server/accounts/AccountManagerService$NotificationId; HPLcom/android/server/accounts/AccountManagerService;->getPackageNameForUid(I)Ljava/lang/String;+]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager; HPLcom/android/server/accounts/AccountManagerService;->getPackagesAndVisibilityForAccountLocked(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;+]Ljava/util/Map;Ljava/util/HashMap; PLcom/android/server/accounts/AccountManagerService;->getPackagesForVisibilityStr(ILjava/util/Map;)Ljava/lang/String; @@ -3664,6 +3746,7 @@ HSPLcom/android/server/accounts/AccountManagerService;->getTypesManagedByCaller( HSPLcom/android/server/accounts/AccountManagerService;->getTypesVisibleToCaller(IILjava/lang/String;)Ljava/util/List;+]Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService; PLcom/android/server/accounts/AccountManagerService;->getUidsOfInstalledOrUpdatedPackagesAsUser(I)Landroid/util/SparseBooleanArray; HSPLcom/android/server/accounts/AccountManagerService;->getUserAccounts(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;+]Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService; +PLcom/android/server/accounts/AccountManagerService;->getUserAccountsForCaller()Lcom/android/server/accounts/AccountManagerService$UserAccounts; HSPLcom/android/server/accounts/AccountManagerService;->getUserAccountsNotChecked(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;+]Lcom/android/server/accounts/AccountsDb;Lcom/android/server/accounts/AccountsDb;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/accounts/AccountManagerService$Injector;Lcom/android/server/accounts/AccountManagerService$Injector;]Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray; HPLcom/android/server/accounts/AccountManagerService;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;+]Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService; HSPLcom/android/server/accounts/AccountManagerService;->getUserManager()Landroid/os/UserManager; @@ -3677,6 +3760,7 @@ PLcom/android/server/accounts/AccountManagerService;->insertAccountIntoCacheLock HPLcom/android/server/accounts/AccountManagerService;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V HPLcom/android/server/accounts/AccountManagerService;->invalidateAuthTokenLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; HPLcom/android/server/accounts/AccountManagerService;->isAccountManagedByCaller(Ljava/lang/String;II)Z+]Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService;]Ljava/util/List;Ljava/util/ArrayList; +PLcom/android/server/accounts/AccountManagerService;->isAccountPresentForCaller(Ljava/lang/String;Ljava/lang/String;)Z PLcom/android/server/accounts/AccountManagerService;->isAccountVisibleToCaller(Ljava/lang/String;IILjava/lang/String;)Z PLcom/android/server/accounts/AccountManagerService;->isCrossUser(II)Z HSPLcom/android/server/accounts/AccountManagerService;->isLocalUnlockedUser(I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray; @@ -3690,9 +3774,11 @@ PLcom/android/server/accounts/AccountManagerService;->lambda$grantAppPermission$ PLcom/android/server/accounts/AccountManagerService;->lambda$new$0(I)V PLcom/android/server/accounts/AccountManagerService;->lambda$onUnlockUser$1(I)V PLcom/android/server/accounts/AccountManagerService;->logAddAccountExplicitlyMetrics(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V +PLcom/android/server/accounts/AccountManagerService;->logAddAccountMetrics(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V HPLcom/android/server/accounts/AccountManagerService;->logGetAuthTokenMetrics(Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/accounts/AccountManagerService;->logRecord(Ljava/lang/String;Ljava/lang/String;JLcom/android/server/accounts/AccountManagerService$UserAccounts;)V PLcom/android/server/accounts/AccountManagerService;->logRecord(Ljava/lang/String;Ljava/lang/String;JLcom/android/server/accounts/AccountManagerService$UserAccounts;I)V +PLcom/android/server/accounts/AccountManagerService;->logRecordWithUid(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;Ljava/lang/String;I)V PLcom/android/server/accounts/AccountManagerService;->notifyPackage(Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V HPLcom/android/server/accounts/AccountManagerService;->onAccountAccessed(Ljava/lang/String;)V+]Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService;]Landroid/accounts/Account;Landroid/accounts/Account;]Landroid/content/Context;Landroid/app/ContextImpl; HPLcom/android/server/accounts/AccountManagerService;->onResult(Landroid/accounts/IAccountManagerResponse;Landroid/os/Bundle;)V @@ -3710,7 +3796,7 @@ HPLcom/android/server/accounts/AccountManagerService;->readAuthTokenInternal(Lco HPLcom/android/server/accounts/AccountManagerService;->readCachedTokenInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;[B)Lcom/android/server/accounts/TokenCache$Value; HPLcom/android/server/accounts/AccountManagerService;->readPasswordInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Ljava/lang/String; PLcom/android/server/accounts/AccountManagerService;->readPreviousNameInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Ljava/lang/String; -HPLcom/android/server/accounts/AccountManagerService;->readUserDataInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;+]Ljava/util/Map;Ljava/util/HashMap;]Lcom/android/server/accounts/AccountsDb;Lcom/android/server/accounts/AccountsDb; +HPLcom/android/server/accounts/AccountManagerService;->readUserDataInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;+]Lcom/android/server/accounts/AccountsDb;Lcom/android/server/accounts/AccountsDb;]Ljava/util/Map;Ljava/util/HashMap; HPLcom/android/server/accounts/AccountManagerService;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V HPLcom/android/server/accounts/AccountManagerService;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V PLcom/android/server/accounts/AccountManagerService;->removeAccountAsUser(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;ZI)V @@ -3726,6 +3812,8 @@ PLcom/android/server/accounts/AccountManagerService;->sendNotificationAccountUpd PLcom/android/server/accounts/AccountManagerService;->setAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;I)Z PLcom/android/server/accounts/AccountManagerService;->setAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;IZLcom/android/server/accounts/AccountManagerService$UserAccounts;)Z HPLcom/android/server/accounts/AccountManagerService;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V +PLcom/android/server/accounts/AccountManagerService;->setPassword(Landroid/accounts/Account;Ljava/lang/String;)V +PLcom/android/server/accounts/AccountManagerService;->setPasswordInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;I)V HPLcom/android/server/accounts/AccountManagerService;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V HPLcom/android/server/accounts/AccountManagerService;->setUserdataInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/accounts/AccountManagerService;->shouldNotifyPackageOnAccountRemoval(Landroid/accounts/Account;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Z @@ -3760,6 +3848,7 @@ PLcom/android/server/accounts/AccountsDb;->compileSqlStatementForLogging()Landro HSPLcom/android/server/accounts/AccountsDb;->create(Landroid/content/Context;ILjava/io/File;Ljava/io/File;)Lcom/android/server/accounts/AccountsDb; PLcom/android/server/accounts/AccountsDb;->deleteAccountVisibilityForPackage(Ljava/lang/String;)Z HPLcom/android/server/accounts/AccountsDb;->deleteAuthToken(Ljava/lang/String;)Z +PLcom/android/server/accounts/AccountsDb;->deleteAuthTokensByAccountId(J)Z HPLcom/android/server/accounts/AccountsDb;->deleteAuthtokensByAccountIdAndType(JLjava/lang/String;)Z PLcom/android/server/accounts/AccountsDb;->deleteCeAccount(J)Z PLcom/android/server/accounts/AccountsDb;->deleteDeAccount(J)Z @@ -3795,6 +3884,7 @@ HSPLcom/android/server/accounts/AccountsDb;->isCeDatabaseAttached()Z PLcom/android/server/accounts/AccountsDb;->reserveDebugDbInsertionPoint()J PLcom/android/server/accounts/AccountsDb;->setAccountVisibility(JLjava/lang/String;I)Z HPLcom/android/server/accounts/AccountsDb;->setTransactionSuccessful()V +PLcom/android/server/accounts/AccountsDb;->updateCeAccountPassword(JLjava/lang/String;)I HPLcom/android/server/accounts/AccountsDb;->updateExtra(JLjava/lang/String;)Z HPLcom/android/server/accounts/TokenCache$Key;-><init>(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;[B)V HPLcom/android/server/accounts/TokenCache$Key;->equals(Ljava/lang/Object;)Z @@ -3804,7 +3894,7 @@ PLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;->add(Lcom/androi HPLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;->evict()V HSPLcom/android/server/accounts/TokenCache$TokenLruCache;-><init>()V HPLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLcom/android/server/accounts/TokenCache$Key;Lcom/android/server/accounts/TokenCache$Value;Lcom/android/server/accounts/TokenCache$Value;)V -PLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/accounts/TokenCache$TokenLruCache;->evict(Landroid/accounts/Account;)V HPLcom/android/server/accounts/TokenCache$TokenLruCache;->evict(Ljava/lang/String;Ljava/lang/String;)V HPLcom/android/server/accounts/TokenCache$TokenLruCache;->putToken(Lcom/android/server/accounts/TokenCache$Key;Lcom/android/server/accounts/TokenCache$Value;)V @@ -3819,17 +3909,33 @@ HPLcom/android/server/accounts/TokenCache;->remove(Ljava/lang/String;Ljava/lang/ HSPLcom/android/server/adb/AdbDebuggingManager$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/adb/AdbDebuggingManager$$ExternalSyntheticLambda0;->currentTimeMillis()J HSPLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;-><init>()V +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;->clear()V +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;->getBSSID()Ljava/lang/String; +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;->getSSID()Ljava/lang/String; +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;->setPort(I)V +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionPortPoller;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionPortListener;)V +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionPortPoller;->cancelAndWait()V +PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionPortPoller;->run()V HSPLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;)V +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$2;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;Landroid/os/Handler;)V HSPLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;-><init>(Lcom/android/server/adb/AdbDebuggingManager;Landroid/os/Looper;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;)V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->cancelJobToUpdateAdbKeyStore()V +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->getCurrentWifiApInfo()Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo; PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->handleMessage(Landroid/os/Message;)V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->initKeyStore()V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->logAdbConnectionChanged(Ljava/lang/String;IZ)V +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->onAdbdWifiServerConnected(I)V +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->onAdbdWifiServerDisconnected(I)V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->registerForAuthTimeChanges()V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->scheduleJobToUpdateAdbKeyStore()J +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->sendPairedDevicesToUI(Ljava/util/Map;)V +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->sendServerConnectionState(ZI)V +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->showAdbConnectedNotification(Z)V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->startAdbDebuggingThread()V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->stopAdbDebuggingThread()V +PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->verifyWifiNetwork(Ljava/lang/String;Ljava/lang/String;)Z PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;-><init>()V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->closeSocketLocked()V PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->listenToSocket()V @@ -3841,14 +3947,18 @@ PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->stopListening( PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->addAdbKeyToKeyMap(Landroid/util/TypedXmlPullParser;)V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->addExistingUserKeysToKeyStore()V +PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->addTrustedNetwork(Ljava/lang/String;)V +PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->addTrustedNetworkToTrustedNetworks(Landroid/util/TypedXmlPullParser;)V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->deleteKeyStore()V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->filterOutOldKeys()Z PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getAllowedConnectionTime()J PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getLastConnectionTime(Ljava/lang/String;)J PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getNextExpirationTime()J +PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getPairedDevices()Ljava/util/Map; PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getSystemKeysFromFile(Ljava/lang/String;)Ljava/util/Set; PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->initKeyFile()V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->isEmpty()Z +PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->isTrustedNetwork(Ljava/lang/String;)Z PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->persistKeyStore()V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->readKeyStoreContents(Landroid/util/TypedXmlPullParser;)V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->readTempKeysFile()V @@ -3856,40 +3966,52 @@ PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->setLastConnectionTime PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->setLastConnectionTime(Ljava/lang/String;JZ)V PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->updateKeyStore()V HSPLcom/android/server/adb/AdbDebuggingManager$PortListenerImpl;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V +PLcom/android/server/adb/AdbDebuggingManager$PortListenerImpl;->onPortReceived(I)V PLcom/android/server/adb/AdbDebuggingManager;->$r8$lambda$gZT0pLYva4rawTPaa4Vf1_8pFm8()J +PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmAdbConnectionInfo(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmAdbUsbEnabled(Lcom/android/server/adb/AdbDebuggingManager;)Z PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmAdbWifiEnabled(Lcom/android/server/adb/AdbDebuggingManager;)Z PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmConnectedKeys(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/util/Map; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmConnectionPortPoller(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionPortPoller; +PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmContentResolver(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/content/ContentResolver; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmContext(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/content/Context; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmFingerprints(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/lang/String; +PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmPortListener(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$PortListenerImpl; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmTempKeysFile(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/io/File; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmThread(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmTicker(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$Ticker; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmUserKeyFile(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/io/File; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fgetmWifiConnectedKeys(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/util/Set; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fputmAdbUsbEnabled(Lcom/android/server/adb/AdbDebuggingManager;Z)V +PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fputmAdbWifiEnabled(Lcom/android/server/adb/AdbDebuggingManager;Z)V +PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fputmConnectionPortPoller(Lcom/android/server/adb/AdbDebuggingManager;Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionPortPoller;)V PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fputmFingerprints(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;)V HSPLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$fputmThread(Lcom/android/server/adb/AdbDebuggingManager;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;)V PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$mgetFingerprints(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;)Ljava/lang/String; PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$msendPersistKeyStoreMessage(Lcom/android/server/adb/AdbDebuggingManager;)V +PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$msetAdbConnectionInfo(Lcom/android/server/adb/AdbDebuggingManager;Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;)V PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$mstartConfirmationForKey(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;Ljava/lang/String;)V +PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$mstartConfirmationForNetwork(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$mwriteKeys(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/Iterable;)V PLcom/android/server/adb/AdbDebuggingManager;->-$$Nest$sfgetTAG()Ljava/lang/String; HSPLcom/android/server/adb/AdbDebuggingManager;-><clinit>()V HSPLcom/android/server/adb/AdbDebuggingManager;-><init>(Landroid/content/Context;)V HSPLcom/android/server/adb/AdbDebuggingManager;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;Lcom/android/server/adb/AdbDebuggingManager$Ticker;)V PLcom/android/server/adb/AdbDebuggingManager;->allowDebugging(ZLjava/lang/String;)V +PLcom/android/server/adb/AdbDebuggingManager;->allowWirelessDebugging(ZLjava/lang/String;)V PLcom/android/server/adb/AdbDebuggingManager;->clearDebuggingKeys()V PLcom/android/server/adb/AdbDebuggingManager;->createConfirmationIntent(Landroid/content/ComponentName;Ljava/util/List;)Landroid/content/Intent; PLcom/android/server/adb/AdbDebuggingManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V HSPLcom/android/server/adb/AdbDebuggingManager;->getAdbFile(Ljava/lang/String;)Ljava/io/File; PLcom/android/server/adb/AdbDebuggingManager;->getFingerprints(Ljava/lang/String;)Ljava/lang/String; PLcom/android/server/adb/AdbDebuggingManager;->lambda$static$0()J +PLcom/android/server/adb/AdbDebuggingManager;->sendBroadcastWithDebugPermission(Landroid/content/Context;Landroid/content/Intent;Landroid/os/UserHandle;)V PLcom/android/server/adb/AdbDebuggingManager;->sendPersistKeyStoreMessage()V +PLcom/android/server/adb/AdbDebuggingManager;->setAdbConnectionInfo(Lcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;)V PLcom/android/server/adb/AdbDebuggingManager;->setAdbEnabled(ZB)V PLcom/android/server/adb/AdbDebuggingManager;->startConfirmationActivity(Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/util/List;)Z PLcom/android/server/adb/AdbDebuggingManager;->startConfirmationForKey(Ljava/lang/String;Ljava/lang/String;)V +PLcom/android/server/adb/AdbDebuggingManager;->startConfirmationForNetwork(Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/adb/AdbDebuggingManager;->writeKeys(Ljava/lang/Iterable;)V PLcom/android/server/adb/AdbService$$ExternalSyntheticLambda0;-><init>(ZB)V HSPLcom/android/server/adb/AdbService$AdbConnectionPortListener;-><init>(Lcom/android/server/adb/AdbService;)V @@ -3909,9 +4031,13 @@ PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->startAdbdForTranspo PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->stopAdbdForTransport(B)V PLcom/android/server/adb/AdbService$AdbSettingsObserver$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/adb/AdbService$AdbSettingsObserver$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +PLcom/android/server/adb/AdbService$AdbSettingsObserver$$ExternalSyntheticLambda1;-><init>()V +PLcom/android/server/adb/AdbService$AdbSettingsObserver$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/adb/AdbService$AdbSettingsObserver;->$r8$lambda$0BNJsES12ohN-hM9rc-IHHCmT0w(Ljava/lang/Object;ZB)V +PLcom/android/server/adb/AdbService$AdbSettingsObserver;->$r8$lambda$_anrLRfFAjD1hzNXDKN7XRbjsWE(Ljava/lang/Object;ZB)V HSPLcom/android/server/adb/AdbService$AdbSettingsObserver;-><init>(Lcom/android/server/adb/AdbService;)V PLcom/android/server/adb/AdbService$AdbSettingsObserver;->lambda$onChange$0(Ljava/lang/Object;ZB)V +PLcom/android/server/adb/AdbService$AdbSettingsObserver;->lambda$onChange$1(Ljava/lang/Object;ZB)V PLcom/android/server/adb/AdbService$AdbSettingsObserver;->onChange(ZLandroid/net/Uri;I)V PLcom/android/server/adb/AdbService$Lifecycle$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/adb/AdbService$Lifecycle$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V @@ -3926,6 +4052,7 @@ PLcom/android/server/adb/AdbService;->-$$Nest$msetAdbdEnabledForTransport(Lcom/a HSPLcom/android/server/adb/AdbService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/adb/AdbService;-><init>(Landroid/content/Context;Lcom/android/server/adb/AdbService-IA;)V PLcom/android/server/adb/AdbService;->allowDebugging(ZLjava/lang/String;)V +PLcom/android/server/adb/AdbService;->allowWirelessDebugging(ZLjava/lang/String;)V PLcom/android/server/adb/AdbService;->bootCompleted()V PLcom/android/server/adb/AdbService;->clearDebuggingKeys()V HSPLcom/android/server/adb/AdbService;->containsFunction(Ljava/lang/String;Ljava/lang/String;)Z @@ -3956,13 +4083,15 @@ HSPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0;-><in HSPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;-><init>(ILjava/lang/String;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z -HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;)V -HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z +HSPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;)V +HSPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/alarm/Alarm;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda12;->test(Ljava/lang/Object;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda15;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z +PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V +PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda16;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda17;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda18;-><init>(I)V @@ -3972,7 +4101,7 @@ PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda19;->upda PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda1;-><init>(Landroid/util/IndentingPrintWriter;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda1;->accept(ILjava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V -PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V +HSPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda21;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda22;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z @@ -3988,6 +4117,8 @@ PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda6;-><init PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;)V HPLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda7;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z +PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V +PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda8;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V PLcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda9;->updateAlarmDelivery(Lcom/android/server/alarm/Alarm;)Z HSPLcom/android/server/alarm/AlarmManagerService$1;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V @@ -4009,7 +4140,7 @@ HPLcom/android/server/alarm/AlarmManagerService$5;->getNextAlarmClock(I)Landroid PLcom/android/server/alarm/AlarmManagerService$5;->getNextWakeFromIdleTime()J PLcom/android/server/alarm/AlarmManagerService$5;->hasScheduleExactAlarm(Ljava/lang/String;I)Z HSPLcom/android/server/alarm/AlarmManagerService$5;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V+]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; -HSPLcom/android/server/alarm/AlarmManagerService$5;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V+]Lcom/android/server/alarm/AlarmManagerService$Injector;Lcom/android/server/alarm/AlarmManagerService$Injector;]Lcom/android/server/SystemService;Lcom/android/server/alarm/AlarmManagerService;]Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTrackerImpl;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLcom/android/server/alarm/AlarmManagerService$5;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/SystemService;Lcom/android/server/alarm/AlarmManagerService;]Lcom/android/server/alarm/AlarmManagerService$Injector;Lcom/android/server/alarm/AlarmManagerService$Injector;]Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTrackerImpl;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; PLcom/android/server/alarm/AlarmManagerService$5;->setTime(J)Z PLcom/android/server/alarm/AlarmManagerService$5;->setTimeZone(Ljava/lang/String;)V PLcom/android/server/alarm/AlarmManagerService$6;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V @@ -4039,8 +4170,8 @@ HSPLcom/android/server/alarm/AlarmManagerService$AppStandbyTracker;-><init>(Lcom HPLcom/android/server/alarm/AlarmManagerService$AppStandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V HSPLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;-><init>(J)V PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->dump(Landroid/util/IndentingPrintWriter;J)V -PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->getNthLastWakeupForPackage(Ljava/lang/String;II)J -PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->getTotalWakeupsInWindow(Ljava/lang/String;I)I +HPLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->getNthLastWakeupForPackage(Ljava/lang/String;II)J +HPLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->getTotalWakeupsInWindow(Ljava/lang/String;I)I HPLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->recordAlarmForPackage(Ljava/lang/String;IJ)V PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->removeForPackage(Ljava/lang/String;I)V PLcom/android/server/alarm/AlarmManagerService$AppWakeupHistory;->removeForUser(I)V @@ -4055,6 +4186,7 @@ HSPLcom/android/server/alarm/AlarmManagerService$ClockReceiver;->scheduleTimeTic HSPLcom/android/server/alarm/AlarmManagerService$Constants;-><init>(Lcom/android/server/alarm/AlarmManagerService;Landroid/os/Handler;)V PLcom/android/server/alarm/AlarmManagerService$Constants;->dump(Landroid/util/IndentingPrintWriter;)V HSPLcom/android/server/alarm/AlarmManagerService$Constants;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V +PLcom/android/server/alarm/AlarmManagerService$Constants;->onTareEnabledStateChanged(Z)V HSPLcom/android/server/alarm/AlarmManagerService$Constants;->start()V HSPLcom/android/server/alarm/AlarmManagerService$Constants;->updateAllowWhileIdleWhitelistDurationLocked()V HSPLcom/android/server/alarm/AlarmManagerService$Constants;->updateTareSettings(Z)V @@ -4080,14 +4212,15 @@ HSPLcom/android/server/alarm/AlarmManagerService$Injector;->getAppOpsService()Lc HSPLcom/android/server/alarm/AlarmManagerService$Injector;->getCallingUid()I HSPLcom/android/server/alarm/AlarmManagerService$Injector;->getClockReceiver(Lcom/android/server/alarm/AlarmManagerService;)Lcom/android/server/alarm/AlarmManagerService$ClockReceiver; HSPLcom/android/server/alarm/AlarmManagerService$Injector;->getCurrentTimeMillis()J -HSPLcom/android/server/alarm/AlarmManagerService$Injector;->getElapsedRealtime()J +HPLcom/android/server/alarm/AlarmManagerService$Injector;->getElapsedRealtimeMillis()J PLcom/android/server/alarm/AlarmManagerService$Injector;->getNextAlarm(I)J HSPLcom/android/server/alarm/AlarmManagerService$Injector;->getSystemUiUid(Landroid/content/pm/PackageManagerInternal;)I HSPLcom/android/server/alarm/AlarmManagerService$Injector;->init()V +HSPLcom/android/server/alarm/AlarmManagerService$Injector;->initializeTimeIfRequired()V HSPLcom/android/server/alarm/AlarmManagerService$Injector;->isAlarmDriverPresent()Z HSPLcom/android/server/alarm/AlarmManagerService$Injector;->registerDeviceConfigListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V HSPLcom/android/server/alarm/AlarmManagerService$Injector;->setAlarm(IJ)V -PLcom/android/server/alarm/AlarmManagerService$Injector;->setKernelTime(J)V +PLcom/android/server/alarm/AlarmManagerService$Injector;->setCurrentTimeMillis(JILjava/lang/String;)V HSPLcom/android/server/alarm/AlarmManagerService$Injector;->waitForAlarm()I HSPLcom/android/server/alarm/AlarmManagerService$InteractiveStateReceiver;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V HPLcom/android/server/alarm/AlarmManagerService$InteractiveStateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V @@ -4098,13 +4231,15 @@ PLcom/android/server/alarm/AlarmManagerService$LocalService;->isIdling()Z HSPLcom/android/server/alarm/AlarmManagerService$LocalService;->registerInFlightListener(Lcom/android/server/AlarmManagerInternal$InFlightListener;)V HPLcom/android/server/alarm/AlarmManagerService$LocalService;->remove(Landroid/app/PendingIntent;)V PLcom/android/server/alarm/AlarmManagerService$LocalService;->removeAlarmsForUid(I)V +PLcom/android/server/alarm/AlarmManagerService$LocalService;->setTime(JILjava/lang/String;)V +PLcom/android/server/alarm/AlarmManagerService$LocalService;->setTimeZone(Ljava/lang/String;ILjava/lang/String;)V PLcom/android/server/alarm/AlarmManagerService$PriorityClass;-><init>(Lcom/android/server/alarm/AlarmManagerService;)V HPLcom/android/server/alarm/AlarmManagerService$RemovedAlarm;-><init>(Lcom/android/server/alarm/Alarm;IJJ)V PLcom/android/server/alarm/AlarmManagerService$RemovedAlarm;->dump(Landroid/util/IndentingPrintWriter;JLjava/text/SimpleDateFormat;)V HSPLcom/android/server/alarm/AlarmManagerService$RemovedAlarm;->isLoggable(I)Z PLcom/android/server/alarm/AlarmManagerService$RemovedAlarm;->removeReasonToString(I)Ljava/lang/String; HSPLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;-><init>(J)V -HPLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->cleanUpExpiredQuotas(J)V +HSPLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->cleanUpExpiredQuotas(J)V PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->dump(Landroid/util/IndentingPrintWriter;J)V PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->removeForPackage(Ljava/lang/String;I)V PLcom/android/server/alarm/AlarmManagerService$TemporaryQuotaReserve;->removeForUser(I)V @@ -4116,17 +4251,20 @@ PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$88dbbCLc3usZq9uXh8HT PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$9io6QdeDYV2YS5pwXJoQDuKuc1I(Lcom/android/server/alarm/AlarmManagerService;)V PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$BRdtDfJp_DVaDfyiNUNesx0bB1s(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$FeCQJIWQI1d16NQPR2DzMqsxi60(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z -HPLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$JBy6XOb_h-O7e0WMfNZ7tZX_U8c(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z +HSPLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$JBy6XOb_h-O7e0WMfNZ7tZX_U8c(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z HPLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$JH-XmYfGYe-PIF2hKt-ZYgFpmv0(Lcom/android/server/alarm/Alarm;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$LTqwrqHxMII_UopHPnwQuOqPddg(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z +PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$N74BgqXAXUrAL5ELn77NlKGZdxg(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z HPLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$NCM_bUC5QQRjHMPsXXpg4Z0KdwU(Lcom/android/server/alarm/AlarmManagerService;Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$OoLF68CZIa5esp7PEaGZPYEefYg(ILjava/lang/String;Lcom/android/server/alarm/Alarm;)Z HSPLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$ZIYHDpAE-ArJ9HUknNJnUs6dMk8(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/alarm/Alarm;)Z +PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$beLCLsGgVYRBxyuLoJ4vmrAmvfg(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$cXQZ9G6Tx5ME3iXOwvtwKoAjKvg(Landroid/util/IndentingPrintWriter;ILjava/lang/String;Landroid/util/ArrayMap;)V PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$qQoIheeyJ4NxnZpP1ymQjxNaQPY(Lcom/android/server/alarm/AlarmManagerService;)Lcom/android/server/alarm/AlarmStore; +PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$tBkF5E1qNUm7_8u3Sewmb6QXYOU(Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$vvI2GdXs8XKS9MToEcxoAP1in2Q(ILcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->$r8$lambda$x6vmXkQqLKftoeqBCKhhXEMcjAA(ILcom/android/server/alarm/Alarm;)Z -HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmActivityManagerInternal(Lcom/android/server/alarm/AlarmManagerService;)Landroid/app/ActivityManagerInternal; +HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmActivityManagerInternal(Lcom/android/server/alarm/AlarmManagerService;)Landroid/app/ActivityManagerInternal; PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmAffordabilityCache(Lcom/android/server/alarm/AlarmManagerService;)Landroid/util/SparseArrayMap; HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmAppStateTracker(Lcom/android/server/alarm/AlarmManagerService;)Lcom/android/server/AppStateTrackerImpl; PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmBackgroundIntent(Lcom/android/server/alarm/AlarmManagerService;)Landroid/content/Intent; @@ -4143,8 +4281,8 @@ HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmSendFinishCount(L PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fgetmTickHistory(Lcom/android/server/alarm/AlarmManagerService;)[J PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastTickReceived(Lcom/android/server/alarm/AlarmManagerService;J)V HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastTickSet(Lcom/android/server/alarm/AlarmManagerService;J)V -PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastTrigger(Lcom/android/server/alarm/AlarmManagerService;J)V -PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastWakeup(Lcom/android/server/alarm/AlarmManagerService;J)V +HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastTrigger(Lcom/android/server/alarm/AlarmManagerService;J)V +HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmLastWakeup(Lcom/android/server/alarm/AlarmManagerService;J)V PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmListenerCount(Lcom/android/server/alarm/AlarmManagerService;I)V HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmListenerFinishCount(Lcom/android/server/alarm/AlarmManagerService;I)V PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$fputmNextTickHistory(Lcom/android/server/alarm/AlarmManagerService;I)V @@ -4159,14 +4297,13 @@ PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$misIdlingImpl(Lcom/andr HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mnotifyBroadcastAlarmCompleteLocked(Lcom/android/server/alarm/AlarmManagerService;I)V PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mnotifyBroadcastAlarmPendingLocked(Lcom/android/server/alarm/AlarmManagerService;I)V PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$msendNextAlarmClockChanged(Lcom/android/server/alarm/AlarmManagerService;)V -PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mupdateNextAlarmClockLocked(Lcom/android/server/alarm/AlarmManagerService;)V +HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$mupdateNextAlarmClockLocked(Lcom/android/server/alarm/AlarmManagerService;)V HPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smgetAlarmAttributionUid(Lcom/android/server/alarm/Alarm;)I PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smgetNextAlarm(JI)J HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$sminit()J PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smisAllowedWhileIdleRestricted(Lcom/android/server/alarm/Alarm;)Z HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smisExactAlarmChangeEnabled(Ljava/lang/String;I)Z HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smset(JIJJ)I -PLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smsetKernelTime(JJ)I HSPLcom/android/server/alarm/AlarmManagerService;->-$$Nest$smwaitForAlarm(J)I HSPLcom/android/server/alarm/AlarmManagerService;-><clinit>()V HSPLcom/android/server/alarm/AlarmManagerService;-><init>(Landroid/content/Context;)V @@ -4176,14 +4313,14 @@ HSPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnBuck HPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnDeviceIdle(Lcom/android/server/alarm/Alarm;)Z HSPLcom/android/server/alarm/AlarmManagerService;->adjustDeliveryTimeBasedOnTareLocked(Lcom/android/server/alarm/Alarm;)Z+]Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;]Lcom/android/server/alarm/AlarmManagerService$Injector;Lcom/android/server/alarm/AlarmManagerService$Injector;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; PLcom/android/server/alarm/AlarmManagerService;->adjustIdleUntilTime(Lcom/android/server/alarm/Alarm;)Z -HPLcom/android/server/alarm/AlarmManagerService;->calculateDeliveryPriorities(Ljava/util/ArrayList;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/alarm/AlarmManagerService;->calculateDeliveryPriorities(Ljava/util/ArrayList;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/alarm/AlarmManagerService;->canAffordBillLocked(Lcom/android/server/alarm/Alarm;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/tare/EconomyManagerInternal;Lcom/android/server/tare/InternalResourceService$LocalService;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Ljava/lang/Boolean;Ljava/lang/Boolean; -HPLcom/android/server/alarm/AlarmManagerService;->checkAllowNonWakeupDelayLocked(J)Z +HSPLcom/android/server/alarm/AlarmManagerService;->checkAllowNonWakeupDelayLocked(J)Z HSPLcom/android/server/alarm/AlarmManagerService;->clampPositive(J)J HSPLcom/android/server/alarm/AlarmManagerService;->convertToElapsed(JI)J+]Lcom/android/server/alarm/AlarmManagerService$Injector;Lcom/android/server/alarm/AlarmManagerService$Injector; PLcom/android/server/alarm/AlarmManagerService;->currentNonWakeupFuzzLocked(J)J HSPLcom/android/server/alarm/AlarmManagerService;->decrementAlarmCount(II)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; -HPLcom/android/server/alarm/AlarmManagerService;->deliverAlarmsLocked(Ljava/util/ArrayList;J)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/alarm/AlarmManagerService$DeliveryTracker;Lcom/android/server/alarm/AlarmManagerService$DeliveryTracker;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; +HSPLcom/android/server/alarm/AlarmManagerService;->deliverAlarmsLocked(Ljava/util/ArrayList;J)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/alarm/AlarmManagerService$DeliveryTracker;Lcom/android/server/alarm/AlarmManagerService$DeliveryTracker;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; HPLcom/android/server/alarm/AlarmManagerService;->dumpAlarmList(Landroid/util/IndentingPrintWriter;Ljava/util/ArrayList;JLjava/text/SimpleDateFormat;)V PLcom/android/server/alarm/AlarmManagerService;->dumpImpl(Landroid/util/IndentingPrintWriter;)V PLcom/android/server/alarm/AlarmManagerService;->findAllUnrestrictedPendingBackgroundAlarmsLockedInner(Landroid/util/SparseArray;Ljava/util/ArrayList;Ljava/util/function/Predicate;)V @@ -4221,13 +4358,16 @@ PLcom/android/server/alarm/AlarmManagerService;->lambda$new$0()V PLcom/android/server/alarm/AlarmManagerService;->lambda$onBootPhase$7()Lcom/android/server/alarm/AlarmStore; PLcom/android/server/alarm/AlarmManagerService;->lambda$onUserStarting$6(I)V PLcom/android/server/alarm/AlarmManagerService;->lambda$reevaluateRtcAlarms$1(Lcom/android/server/alarm/Alarm;)Z +PLcom/android/server/alarm/AlarmManagerService;->lambda$removeAlarmsInternalLocked$14(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->lambda$removeAlarmsInternalLocked$15(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->lambda$removeExactAlarmsOnPermissionRevoked$13(ILjava/lang/String;Lcom/android/server/alarm/Alarm;)Z HSPLcom/android/server/alarm/AlarmManagerService;->lambda$removeLocked$16(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->lambda$removeLocked$17(ILcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->lambda$removeUserLocked$20(ILcom/android/server/alarm/Alarm;)Z HPLcom/android/server/alarm/AlarmManagerService;->lambda$reorderAlarmsBasedOnStandbyBuckets$4(Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; -HPLcom/android/server/alarm/AlarmManagerService;->lambda$reorderAlarmsBasedOnTare$5(Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; +HSPLcom/android/server/alarm/AlarmManagerService;->lambda$reorderAlarmsBasedOnTare$5(Landroid/util/ArraySet;Lcom/android/server/alarm/Alarm;)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; +PLcom/android/server/alarm/AlarmManagerService;->lambda$setImplLocked$10(Lcom/android/server/alarm/Alarm;)Z +PLcom/android/server/alarm/AlarmManagerService;->lambda$setImplLocked$11(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->lambda$setImplLocked$9(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->lambda$triggerAlarmsLocked$22(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/AlarmManagerService;->lookForPackageLocked(Ljava/lang/String;)Z @@ -4239,17 +4379,17 @@ HPLcom/android/server/alarm/AlarmManagerService;->notifyBroadcastAlarmPendingLoc HSPLcom/android/server/alarm/AlarmManagerService;->onBootPhase(I)V HSPLcom/android/server/alarm/AlarmManagerService;->onStart()V HSPLcom/android/server/alarm/AlarmManagerService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V -PLcom/android/server/alarm/AlarmManagerService;->reevaluateRtcAlarms()V +HSPLcom/android/server/alarm/AlarmManagerService;->reevaluateRtcAlarms()V HSPLcom/android/server/alarm/AlarmManagerService;->refreshExactAlarmCandidates()V HSPLcom/android/server/alarm/AlarmManagerService;->registerTareListener(Lcom/android/server/alarm/Alarm;)V HSPLcom/android/server/alarm/AlarmManagerService;->removeAlarmsInternalLocked(Ljava/util/function/Predicate;I)V+]Landroid/app/IAlarmListener;Landroid/app/IAlarmListener$Stub$Proxy;,Landroid/app/AlarmManager$ListenerWrapper;,Lcom/android/server/alarm/AlarmManagerService$3;]Lcom/android/server/alarm/AlarmManagerService$Injector;Lcom/android/server/alarm/AlarmManagerService$Injector;]Landroid/os/IBinder;Landroid/os/BinderProxy;,Landroid/app/AlarmManager$ListenerWrapper;,Lcom/android/server/alarm/AlarmManagerService$3;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/util/RingBuffer;Lcom/android/internal/util/RingBuffer;]Lcom/android/server/alarm/AlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Ljava/util/function/Predicate;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/os/IInterface;Landroid/app/IAlarmListener$Stub$Proxy;,Landroid/app/AlarmManager$ListenerWrapper;,Lcom/android/server/alarm/AlarmManagerService$3; PLcom/android/server/alarm/AlarmManagerService;->removeExactAlarmsOnPermissionRevoked(ILjava/lang/String;Z)V -HPLcom/android/server/alarm/AlarmManagerService;->removeImpl(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V +HSPLcom/android/server/alarm/AlarmManagerService;->removeImpl(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V PLcom/android/server/alarm/AlarmManagerService;->removeLocked(II)V HSPLcom/android/server/alarm/AlarmManagerService;->removeLocked(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;I)V+]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; PLcom/android/server/alarm/AlarmManagerService;->removeUserLocked(I)V HPLcom/android/server/alarm/AlarmManagerService;->reorderAlarmsBasedOnStandbyBuckets(Landroid/util/ArraySet;)Z -HPLcom/android/server/alarm/AlarmManagerService;->reorderAlarmsBasedOnTare(Landroid/util/ArraySet;)Z +HSPLcom/android/server/alarm/AlarmManagerService;->reorderAlarmsBasedOnTare(Landroid/util/ArraySet;)Z HPLcom/android/server/alarm/AlarmManagerService;->reportAlarmEventToTare(Lcom/android/server/alarm/Alarm;)V HSPLcom/android/server/alarm/AlarmManagerService;->rescheduleKernelAlarmsLocked()V+]Lcom/android/server/alarm/AlarmManagerService$Injector;Lcom/android/server/alarm/AlarmManagerService$Injector;]Lcom/android/server/alarm/AlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; PLcom/android/server/alarm/AlarmManagerService;->restoreRequestedTime(Lcom/android/server/alarm/Alarm;)Z @@ -4260,9 +4400,10 @@ HSPLcom/android/server/alarm/AlarmManagerService;->setImpl(IJJJLandroid/app/Pend HSPLcom/android/server/alarm/AlarmManagerService;->setImplLocked(IJJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;ILandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;Landroid/os/Bundle;I)V+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; HSPLcom/android/server/alarm/AlarmManagerService;->setImplLocked(Lcom/android/server/alarm/Alarm;)V+]Lcom/android/server/alarm/AlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; HSPLcom/android/server/alarm/AlarmManagerService;->setLocked(IJ)V+]Lcom/android/server/alarm/AlarmManagerService$Injector;Lcom/android/server/alarm/AlarmManagerService$Injector; -PLcom/android/server/alarm/AlarmManagerService;->setTimeImpl(J)Z +PLcom/android/server/alarm/AlarmManagerService;->setTimeImpl(JILjava/lang/String;)Z +PLcom/android/server/alarm/AlarmManagerService;->setTimeZoneImpl(Ljava/lang/String;ILjava/lang/String;)V HPLcom/android/server/alarm/AlarmManagerService;->setWakelockWorkSource(Landroid/os/WorkSource;ILjava/lang/String;Z)V -HPLcom/android/server/alarm/AlarmManagerService;->triggerAlarmsLocked(Ljava/util/ArrayList;J)I+]Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;]Lcom/android/server/alarm/AlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; +HSPLcom/android/server/alarm/AlarmManagerService;->triggerAlarmsLocked(Ljava/util/ArrayList;J)I+]Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;]Lcom/android/server/alarm/AlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService; HSPLcom/android/server/alarm/AlarmManagerService;->updateNextAlarmClockLocked()V+]Ljava/lang/Object;Landroid/app/AlarmManager$AlarmClockInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/alarm/AlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/alarm/AlarmManagerService;Lcom/android/server/alarm/AlarmManagerService;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; PLcom/android/server/alarm/AlarmManagerService;->updateNextAlarmInfoForUserLocked(ILandroid/app/AlarmManager$AlarmClockInfo;)V HSPLcom/android/server/alarm/LazyAlarmStore$$ExternalSyntheticLambda0;-><init>()V @@ -4270,15 +4411,15 @@ HSPLcom/android/server/alarm/LazyAlarmStore$$ExternalSyntheticLambda0;->applyAsL HSPLcom/android/server/alarm/LazyAlarmStore;-><clinit>()V HSPLcom/android/server/alarm/LazyAlarmStore;-><init>()V HSPLcom/android/server/alarm/LazyAlarmStore;->add(Lcom/android/server/alarm/Alarm;)V -HPLcom/android/server/alarm/LazyAlarmStore;->addAll(Ljava/util/ArrayList;)V +HSPLcom/android/server/alarm/LazyAlarmStore;->addAll(Ljava/util/ArrayList;)V PLcom/android/server/alarm/LazyAlarmStore;->asList()Ljava/util/ArrayList; PLcom/android/server/alarm/LazyAlarmStore;->dump(Landroid/util/IndentingPrintWriter;JLjava/text/SimpleDateFormat;)V HPLcom/android/server/alarm/LazyAlarmStore;->getCount(Ljava/util/function/Predicate;)I+]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Ljava/util/function/Predicate;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; HSPLcom/android/server/alarm/LazyAlarmStore;->getNextDeliveryTime()J+]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/alarm/LazyAlarmStore;->getNextWakeFromIdleAlarm()Lcom/android/server/alarm/Alarm; HSPLcom/android/server/alarm/LazyAlarmStore;->getNextWakeupDeliveryTime()J+]Lcom/android/internal/util/jobs/StatLogger;Lcom/android/internal/util/jobs/StatLogger;]Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLcom/android/server/alarm/LazyAlarmStore;->remove(Ljava/util/function/Predicate;)Ljava/util/ArrayList;+]Ljava/util/function/Predicate;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda13;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Runnable;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda3; -HPLcom/android/server/alarm/LazyAlarmStore;->removePendingAlarms(J)Ljava/util/ArrayList;+]Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;]Lcom/android/server/alarm/LazyAlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/alarm/LazyAlarmStore;->remove(Ljava/util/function/Predicate;)Ljava/util/ArrayList;+]Ljava/util/function/Predicate;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda10;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0;,Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda13;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Runnable;Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda3; +HSPLcom/android/server/alarm/LazyAlarmStore;->removePendingAlarms(J)Ljava/util/ArrayList;+]Lcom/android/server/alarm/Alarm;Lcom/android/server/alarm/Alarm;]Lcom/android/server/alarm/LazyAlarmStore;Lcom/android/server/alarm/LazyAlarmStore;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/alarm/LazyAlarmStore;->setAlarmClockRemovalListener(Ljava/lang/Runnable;)V HSPLcom/android/server/alarm/LazyAlarmStore;->size()I HSPLcom/android/server/alarm/LazyAlarmStore;->updateAlarmDeliveries(Lcom/android/server/alarm/AlarmStore$AlarmDeliveryCalculator;)Z+]Lcom/android/server/alarm/AlarmStore$AlarmDeliveryCalculator;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; @@ -4309,7 +4450,7 @@ PLcom/android/server/alarm/MetricsHelper$$ExternalSyntheticLambda8;->test(Ljava/ PLcom/android/server/alarm/MetricsHelper$$ExternalSyntheticLambda9;-><init>()V PLcom/android/server/alarm/MetricsHelper$$ExternalSyntheticLambda9;->test(Ljava/lang/Object;)Z PLcom/android/server/alarm/MetricsHelper;->$r8$lambda$3C8tzd-DjSGW_0qr6Lod5pR2PHY(Lcom/android/server/alarm/MetricsHelper;Ljava/util/function/Supplier;ILjava/util/List;)I -PLcom/android/server/alarm/MetricsHelper;->$r8$lambda$5QjJJRxSSpcoVMwg7zoe5z7TZsI(Lcom/android/server/alarm/Alarm;)Z +HPLcom/android/server/alarm/MetricsHelper;->$r8$lambda$5QjJJRxSSpcoVMwg7zoe5z7TZsI(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/MetricsHelper;->$r8$lambda$AfukGsVhXeCknr1_PdsGQ4ThMuc(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/MetricsHelper;->$r8$lambda$FmWMSOg285h_lJL-DdB_7ysaxfk(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/MetricsHelper;->$r8$lambda$HAJ0V_xBrkBXM9sia8YNIYprHIs(Lcom/android/server/alarm/Alarm;)Z @@ -4335,7 +4476,7 @@ PLcom/android/server/alarm/MetricsHelper;->lambda$registerPuller$6(Lcom/android/ PLcom/android/server/alarm/MetricsHelper;->lambda$registerPuller$7(Lcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/MetricsHelper;->lambda$registerPuller$8(JLcom/android/server/alarm/Alarm;)Z PLcom/android/server/alarm/MetricsHelper;->lambda$registerPuller$9(Lcom/android/server/alarm/Alarm;)Z -PLcom/android/server/alarm/MetricsHelper;->pushAlarmBatchDelivered(II)V +HSPLcom/android/server/alarm/MetricsHelper;->pushAlarmBatchDelivered(II)V HSPLcom/android/server/alarm/MetricsHelper;->pushAlarmScheduled(Lcom/android/server/alarm/Alarm;I)V HSPLcom/android/server/alarm/MetricsHelper;->reasonToStatsReason(I)I HSPLcom/android/server/alarm/MetricsHelper;->registerPuller(Ljava/util/function/Supplier;)V @@ -4408,29 +4549,31 @@ HSPLcom/android/server/am/ActiveServices;->bindServiceLocked(Landroid/app/IAppli HPLcom/android/server/am/ActiveServices;->bringDownDisabledPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;IZZZ)Z HSPLcom/android/server/am/ActiveServices;->bringDownServiceIfNeededLocked(Lcom/android/server/am/ServiceRecord;ZZZ)V+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/ActiveServices;->bringDownServiceLocked(Lcom/android/server/am/ServiceRecord;Z)V+]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ConnectionRecord;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison;]Lcom/android/server/am/ActiveServices$ServiceRestarter;Lcom/android/server/am/ActiveServices$ServiceRestarter;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/internal/app/procstats/ServiceState;Lcom/android/internal/app/procstats/ServiceState;]Landroid/app/IServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/IServiceConnection$Stub$Proxy;]Lcom/android/server/am/ActiveServices$ServiceMap;Lcom/android/server/am/ActiveServices$ServiceMap;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/IInterface;Landroid/app/IServiceConnection$Stub$Proxy; -HSPLcom/android/server/am/ActiveServices;->bringUpServiceInnerLocked(Lcom/android/server/am/ServiceRecord;IZZZZZ)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/am/ActiveServices;->bringUpServiceInnerLocked(Lcom/android/server/am/ServiceRecord;IZZZZZ)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison; HSPLcom/android/server/am/ActiveServices;->bringUpServiceLocked(Lcom/android/server/am/ServiceRecord;IZZZZZ)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; HSPLcom/android/server/am/ActiveServices;->bumpServiceExecutingLocked(Lcom/android/server/am/ServiceRecord;ZLjava/lang/String;I)Z+]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Lcom/android/internal/app/procstats/ServiceState;Lcom/android/internal/app/procstats/ServiceState;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; PLcom/android/server/am/ActiveServices;->canAllowWhileInUsePermissionInFgsLocked(IILjava/lang/String;)Z HPLcom/android/server/am/ActiveServices;->canBindingClientStartFgsLocked(I)Ljava/lang/String; +PLcom/android/server/am/ActiveServices;->canStartForegroundServiceLocked(IILjava/lang/String;)Z HSPLcom/android/server/am/ActiveServices;->cancelForegroundNotificationLocked(Lcom/android/server/am/ServiceRecord;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; HPLcom/android/server/am/ActiveServices;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V HPLcom/android/server/am/ActiveServices;->clearRestartingIfNeededLocked(Lcom/android/server/am/ServiceRecord;)V+]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Lcom/android/internal/app/procstats/ServiceState;Lcom/android/internal/app/procstats/ServiceState;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/am/ActiveServices;->collectPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;ZZLandroid/util/ArrayMap;)Z HPLcom/android/server/am/ActiveServices;->decActiveForegroundAppLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Lcom/android/server/am/ServiceRecord;)V -HSPLcom/android/server/am/ActiveServices;->deferServiceBringupIfFrozenLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;IIZZIZLandroid/os/IBinder;ZLandroid/app/IServiceConnection;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/am/ActiveServices;->deferServiceBringupIfFrozenLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;IIZZIZLandroid/os/IBinder;ZLandroid/app/IServiceConnection;)Z+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/ActiveServices;->dropFgsNotificationStateLocked(Lcom/android/server/am/ServiceRecord;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord; PLcom/android/server/am/ActiveServices;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V HPLcom/android/server/am/ActiveServices;->dumpService(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[I[Ljava/lang/String;IZ)Z HPLcom/android/server/am/ActiveServices;->dumpService(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ServiceRecord;[Ljava/lang/String;Z)V PLcom/android/server/am/ActiveServices;->fgsStopReasonToString(I)Ljava/lang/String; HPLcom/android/server/am/ActiveServices;->findServiceLocked(Landroid/content/ComponentName;Landroid/os/IBinder;I)Lcom/android/server/am/ServiceRecord;+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; -PLcom/android/server/am/ActiveServices;->forceStopPackageLocked(Ljava/lang/String;I)V +HPLcom/android/server/am/ActiveServices;->forceStopPackageLocked(Ljava/lang/String;I)V HPLcom/android/server/am/ActiveServices;->foregroundAppShownEnoughLocked(Lcom/android/server/am/ActiveServices$ActiveForegroundApp;J)Z HPLcom/android/server/am/ActiveServices;->foregroundServiceProcStateChangedLocked(Lcom/android/server/am/UidRecord;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; HSPLcom/android/server/am/ActiveServices;->getAllowMode(Landroid/content/Intent;Ljava/lang/String;)I+]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/am/ActiveServices;->getAppStateTracker()Lcom/android/server/AppStateTracker; HPLcom/android/server/am/ActiveServices;->getExtraRestartTimeInBetweenLocked()J +PLcom/android/server/am/ActiveServices;->getForegroundServiceTypeLocked(Landroid/content/ComponentName;Landroid/os/IBinder;)I HSPLcom/android/server/am/ActiveServices;->getHostingRecordTriggerType(Lcom/android/server/am/ServiceRecord;)Ljava/lang/String; HPLcom/android/server/am/ActiveServices;->getRunningServiceInfoLocked(IIIZZ)Ljava/util/List;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/am/ActiveServices;->getServiceByNameLocked(Landroid/content/ComponentName;I)Lcom/android/server/am/ServiceRecord;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; @@ -4440,12 +4583,12 @@ HPLcom/android/server/am/ActiveServices;->hasBackgroundServicesLocked(I)Z+]Landr HSPLcom/android/server/am/ActiveServices;->hasForegroundServiceNotificationLocked(Ljava/lang/String;ILjava/lang/String;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/app/Notification;Landroid/app/Notification; PLcom/android/server/am/ActiveServices;->isBgFgsRestrictionEnabled(Lcom/android/server/am/ServiceRecord;)Z PLcom/android/server/am/ActiveServices;->isFgsBgStart(I)Z -PLcom/android/server/am/ActiveServices;->isForegroundServiceAllowedInBackgroundRestricted(ILjava/lang/String;)Z +HPLcom/android/server/am/ActiveServices;->isForegroundServiceAllowedInBackgroundRestricted(ILjava/lang/String;)Z HPLcom/android/server/am/ActiveServices;->isForegroundServiceAllowedInBackgroundRestricted(Lcom/android/server/am/ProcessRecord;)Z PLcom/android/server/am/ActiveServices;->isPermissionGranted(Ljava/lang/String;II)Z HSPLcom/android/server/am/ActiveServices;->isServiceNeededLocked(Lcom/android/server/am/ServiceRecord;ZZ)Z+]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord; HPLcom/android/server/am/ActiveServices;->isServiceRestartBackoffEnabledLocked(Ljava/lang/String;)Z -HSPLcom/android/server/am/ActiveServices;->killServicesLocked(Lcom/android/server/am/ProcessRecord;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; +HSPLcom/android/server/am/ActiveServices;->killServicesLocked(Lcom/android/server/am/ProcessRecord;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; PLcom/android/server/am/ActiveServices;->lambda$attachApplicationLocked$1()V PLcom/android/server/am/ActiveServices;->lambda$bringDownDisabledPackageServicesLocked$2(Ljava/util/ArrayList;)V HPLcom/android/server/am/ActiveServices;->lambda$canBindingClientStartFgsLocked$4(ILandroid/util/ArraySet;Lcom/android/server/am/ProcessRecord;)Landroid/util/Pair;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -4462,14 +4605,14 @@ HPLcom/android/server/am/ActiveServices;->performRescheduleServiceRestartOnMemor HPLcom/android/server/am/ActiveServices;->performScheduleRestartLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;J)V HPLcom/android/server/am/ActiveServices;->performServiceRestartLocked(Lcom/android/server/am/ServiceRecord;)V PLcom/android/server/am/ActiveServices;->processStartTimedOutLocked(Lcom/android/server/am/ProcessRecord;)V -HSPLcom/android/server/am/ActiveServices;->publishServiceLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Landroid/os/IBinder;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/IServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/IServiceConnection$Stub$Proxy;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/IInterface;Landroid/app/IServiceConnection$Stub$Proxy; +HSPLcom/android/server/am/ActiveServices;->publishServiceLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Landroid/os/IBinder;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/app/IServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/IServiceConnection$Stub$Proxy;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/os/IInterface;Landroid/app/IServiceConnection$Stub$Proxy; HSPLcom/android/server/am/ActiveServices;->realStartServiceLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ProcessRecord;Landroid/app/IApplicationThread;ILcom/android/server/am/UidRecord;ZZ)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/ActiveServices;->registerAppOpCallbackLocked(Lcom/android/server/am/ServiceRecord;)V PLcom/android/server/am/ActiveServices;->registerForegroundServiceObserverLocked(ILandroid/app/IForegroundServiceObserver;)Z HSPLcom/android/server/am/ActiveServices;->removeConnectionLocked(Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/wm/ActivityServiceConnectionsHolder;Z)V+]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ConnectionRecord;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/internal/app/procstats/ServiceState;Lcom/android/internal/app/procstats/ServiceState;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Landroid/app/IServiceConnection;Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/IServiceConnection$Stub$Proxy;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/wm/ActivityServiceConnectionsHolder;Lcom/android/server/wm/ActivityServiceConnectionsHolder;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/IInterface;Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/IServiceConnection$Stub$Proxy; PLcom/android/server/am/ActiveServices;->removeServiceNotificationDeferralsLocked(Ljava/lang/String;I)V PLcom/android/server/am/ActiveServices;->removeServiceRestartBackoffEnabledLocked(Ljava/lang/String;)V -HSPLcom/android/server/am/ActiveServices;->requestServiceBindingLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;ZZ)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; +HSPLcom/android/server/am/ActiveServices;->requestServiceBindingLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;ZZ)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/Intent$FilterComparison;Landroid/content/Intent$FilterComparison;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/ActiveServices;->requestServiceBindingsLocked(Lcom/android/server/am/ServiceRecord;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; HSPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;ILandroid/content/Intent;ZIZLandroid/app/IServiceConnection;)Z+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HPLcom/android/server/am/ActiveServices;->requestUpdateActiveForegroundAppsLocked(Lcom/android/server/am/ActiveServices$ServiceMap;J)V @@ -4477,13 +4620,13 @@ HPLcom/android/server/am/ActiveServices;->rescheduleServiceRestartIfPossibleLock HPLcom/android/server/am/ActiveServices;->rescheduleServiceRestartOnMemoryPressureIfNeededLocked(IILjava/lang/String;J)V HSPLcom/android/server/am/ActiveServices;->resetFgsRestrictionLocked(Lcom/android/server/am/ServiceRecord;)V HSPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; -HSPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/am/ComponentAliasResolver;Lcom/android/server/am/ComponentAliasResolver;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/am/ActiveServices$ServiceRestarter;Lcom/android/server/am/ActiveServices$ServiceRestarter;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ComponentAliasResolver$Resolution;Lcom/android/server/am/ComponentAliasResolver$Resolution;]Lcom/android/server/firewall/IntentFirewall;Lcom/android/server/firewall/IntentFirewall;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/am/ComponentAliasResolver;Lcom/android/server/am/ComponentAliasResolver;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/am/ActiveServices$ServiceRestarter;Lcom/android/server/am/ActiveServices$ServiceRestarter;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ComponentAliasResolver$Resolution;Lcom/android/server/am/ComponentAliasResolver$Resolution;]Lcom/android/server/firewall/IntentFirewall;Lcom/android/server/firewall/IntentFirewall;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Landroid/content/Intent;Landroid/content/Intent; PLcom/android/server/am/ActiveServices;->schedulePendingServiceStartLocked(Ljava/lang/String;I)V HPLcom/android/server/am/ActiveServices;->scheduleServiceForegroundTransitionTimeoutLocked(Lcom/android/server/am/ServiceRecord;)V HPLcom/android/server/am/ActiveServices;->scheduleServiceRestartLocked(Lcom/android/server/am/ServiceRecord;Z)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ServiceRecord$StartItem;Lcom/android/server/am/ServiceRecord$StartItem;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/ActiveServices;->scheduleServiceTimeoutLocked(Lcom/android/server/am/ProcessRecord;)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; -HSPLcom/android/server/am/ActiveServices;->sendServiceArgsLocked(Lcom/android/server/am/ServiceRecord;ZZ)V+]Landroid/content/pm/ParceledListSlice;Landroid/content/pm/ParceledListSlice;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ServiceRecord$StartItem;Lcom/android/server/am/ServiceRecord$StartItem;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/uri/UriGrantsManagerInternal;Lcom/android/server/uri/UriGrantsManagerService$LocalService;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy; -HSPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;IIIZ)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/am/ActiveServices;->sendServiceArgsLocked(Lcom/android/server/am/ServiceRecord;ZZ)V+]Landroid/content/pm/ParceledListSlice;Landroid/content/pm/ParceledListSlice;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/ServiceRecord$StartItem;Lcom/android/server/am/ServiceRecord$StartItem;]Lcom/android/server/uri/UriGrantsManagerInternal;Lcom/android/server/uri/UriGrantsManagerService$LocalService; +HSPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;IIIZ)V+]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;ZZZ)V+]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Lcom/android/internal/app/procstats/ServiceState;Lcom/android/internal/app/procstats/ServiceState;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; PLcom/android/server/am/ActiveServices;->serviceForegroundTimeout(Lcom/android/server/am/ServiceRecord;)V HPLcom/android/server/am/ActiveServices;->serviceProcessGoneLocked(Lcom/android/server/am/ServiceRecord;Z)V @@ -4492,7 +4635,7 @@ HSPLcom/android/server/am/ActiveServices;->setAllowListWhileInUsePermissionInFgs HSPLcom/android/server/am/ActiveServices;->setFgsRestrictionLocked(Ljava/lang/String;IILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;IZ)V+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; HPLcom/android/server/am/ActiveServices;->setServiceForegroundInnerLocked(Lcom/android/server/am/ServiceRecord;ILandroid/app/Notification;II)V HPLcom/android/server/am/ActiveServices;->setServiceForegroundLocked(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V -HSPLcom/android/server/am/ActiveServices;->shouldAllowFgsStartForegroundNoBindingCheckLocked(IIILjava/lang/String;Lcom/android/server/am/ServiceRecord;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; +HSPLcom/android/server/am/ActiveServices;->shouldAllowFgsStartForegroundNoBindingCheckLocked(IIILjava/lang/String;Lcom/android/server/am/ServiceRecord;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; HSPLcom/android/server/am/ActiveServices;->shouldAllowFgsStartForegroundWithBindingCheckLocked(ILjava/lang/String;IILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;I)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/ActiveServices;->shouldAllowFgsWhileInUsePermissionLocked(Ljava/lang/String;IILcom/android/server/am/ServiceRecord;Z)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/ActiveServices;->shouldShowFgsNotificationLocked(Lcom/android/server/am/ServiceRecord;)Z @@ -4504,7 +4647,7 @@ HSPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/ HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName; HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;IZLandroid/os/IBinder;)Landroid/content/ComponentName;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; PLcom/android/server/am/ActiveServices;->stopAllForegroundServicesLocked(ILjava/lang/String;)V -HSPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/ActiveServices$ServiceMap;Lcom/android/server/am/ActiveServices$ServiceMap;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ActiveServices$ServiceMap;Lcom/android/server/am/ActiveServices$ServiceMap;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/ActiveServices;->stopServiceAndUpdateAllowlistManagerLocked(Lcom/android/server/am/ServiceRecord;)V+]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord; HPLcom/android/server/am/ActiveServices;->stopServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I HPLcom/android/server/am/ActiveServices;->stopServiceLocked(Lcom/android/server/am/ServiceRecord;Z)V @@ -4548,6 +4691,7 @@ HSPLcom/android/server/am/ActivityManagerConstants$1;->onPropertiesChanged(Landr HSPLcom/android/server/am/ActivityManagerConstants$2;-><init>(Lcom/android/server/am/ActivityManagerConstants;)V HSPLcom/android/server/am/ActivityManagerConstants$2;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/am/ActivityManagerConstants;->-$$Nest$mupdateComponentAliases(Lcom/android/server/am/ActivityManagerConstants;)V +HSPLcom/android/server/am/ActivityManagerConstants;->-$$Nest$mupdateEnforceReceiverExportedFlagRequirement(Lcom/android/server/am/ActivityManagerConstants;)V HSPLcom/android/server/am/ActivityManagerConstants;->-$$Nest$mupdateMaxCachedProcesses(Lcom/android/server/am/ActivityManagerConstants;)V HSPLcom/android/server/am/ActivityManagerConstants;->-$$Nest$mupdateNoKillCachedProcessesPostBootCompletedDurationMillis(Lcom/android/server/am/ActivityManagerConstants;)V HSPLcom/android/server/am/ActivityManagerConstants;->-$$Nest$mupdateNoKillCachedProcessesUntilBootCompleted(Lcom/android/server/am/ActivityManagerConstants;)V @@ -4562,6 +4706,7 @@ HSPLcom/android/server/am/ActivityManagerConstants;->start(Landroid/content/Cont HSPLcom/android/server/am/ActivityManagerConstants;->updateActivityStartsLoggingEnabled()V HSPLcom/android/server/am/ActivityManagerConstants;->updateComponentAliases()V HSPLcom/android/server/am/ActivityManagerConstants;->updateConstants()V +HSPLcom/android/server/am/ActivityManagerConstants;->updateEnforceReceiverExportedFlagRequirement()V HSPLcom/android/server/am/ActivityManagerConstants;->updateForegroundServiceStartsLoggingEnabled()V HSPLcom/android/server/am/ActivityManagerConstants;->updateMaxCachedProcesses()V HSPLcom/android/server/am/ActivityManagerConstants;->updateNoKillCachedProcessesPostBootCompletedDurationMillis()V @@ -4576,20 +4721,33 @@ HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda12;->ru HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda13;-><init>(Ljava/lang/StringBuilder;Landroid/content/pm/IPackageManager;I)V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda15;->run()V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/am/ActivityManagerService;)V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/ActivityManagerService;)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/ActivityManagerService;JJZZ)V +HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/util/LinkedList;)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda19;->run()V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;-><init>(Ljava/io/PrintWriter;JJ)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/am/ActivityManagerService;)V -PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda21;->run()V +HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda21;->run()V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/am/ActivityManagerService;)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda22;->run()V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/am/ProcessRecord;JJJIJJ)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda24;->accept(Ljava/lang/Object;)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda25;-><init>(Landroid/util/SparseArray;[Landroid/os/Debug$MemoryInfo;ZLcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;[J[J[JLjava/util/ArrayList;[J[J[J[J[J[J[J[J[Ljava/util/ArrayList;[J)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda25;->accept(Ljava/lang/Object;)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;JJJI)V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda26;->run()V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/am/ProcessRecord;JJJIJJ)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;)V +HPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda33;-><init>(Lcom/android/server/am/ActivityManagerService;JZLcom/android/server/am/ProcessRecord;IJ)V +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;)Ljava/lang/Object; +PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda37;-><init>(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V PLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;)V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda3;-><init>(Landroid/hardware/display/DisplayManagerInternal;)V HSPLcom/android/server/am/ActivityManagerService$$ExternalSyntheticLambda3;->run()V @@ -4655,6 +4813,7 @@ PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->onPropertiesC HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->registerObserver()V HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->update()V PLcom/android/server/am/ActivityManagerService$ImportanceToken;-><init>(Lcom/android/server/am/ActivityManagerService;ILandroid/os/IBinder;Ljava/lang/String;)V +HSPLcom/android/server/am/ActivityManagerService$Injector;->-$$Nest$fputmUserController(Lcom/android/server/am/ActivityManagerService$Injector;Lcom/android/server/am/UserController;)V HSPLcom/android/server/am/ActivityManagerService$Injector;-><init>(Landroid/content/Context;)V HSPLcom/android/server/am/ActivityManagerService$Injector;->ensureHasNetworkManagementInternal()Z HSPLcom/android/server/am/ActivityManagerService$Injector;->getAppOpsService(Ljava/io/File;Landroid/os/Handler;)Lcom/android/server/appop/AppOpsService; @@ -4691,6 +4850,7 @@ HSPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastGlobalC HSPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntent(Landroid/content/Intent;Landroid/content/IIntentReceiver;[Ljava/lang/String;ZI[ILjava/util/function/BiFunction;Landroid/os/Bundle;)I HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZLandroid/os/IBinder;[I)I+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; PLcom/android/server/am/ActivityManagerService$LocalService;->canAllowWhileInUsePermissionInFgs(IILjava/lang/String;)Z +PLcom/android/server/am/ActivityManagerService$LocalService;->canStartForegroundService(IILjava/lang/String;)Z HSPLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;+]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper; PLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderUriPermission(Landroid/net/Uri;III)I PLcom/android/server/am/ActivityManagerService$LocalService;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V @@ -4703,7 +4863,7 @@ PLcom/android/server/am/ActivityManagerService$LocalService;->ensureNotSpecialUs PLcom/android/server/am/ActivityManagerService$LocalService;->finishBooting()V PLcom/android/server/am/ActivityManagerService$LocalService;->getActivityInfoForUser(Landroid/content/pm/ActivityInfo;I)Landroid/content/pm/ActivityInfo; PLcom/android/server/am/ActivityManagerService$LocalService;->getActivityPresentationInfo(Landroid/os/IBinder;)Landroid/content/pm/ActivityPresentationInfo; -PLcom/android/server/am/ActivityManagerService$LocalService;->getBootTimeTempAllowListDuration()J +HSPLcom/android/server/am/ActivityManagerService$LocalService;->getBootTimeTempAllowListDuration()J PLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentProfileIds()[I HSPLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentUserId()I+]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController; PLcom/android/server/am/ActivityManagerService$LocalService;->getInstrumentationSourceUid(I)I @@ -4717,7 +4877,7 @@ PLcom/android/server/am/ActivityManagerService$LocalService;->getPendingIntentSt PLcom/android/server/am/ActivityManagerService$LocalService;->getPushMessagingOverQuotaBehavior()I HPLcom/android/server/am/ActivityManagerService$LocalService;->getRestrictionLevel(I)I HPLcom/android/server/am/ActivityManagerService$LocalService;->getRestrictionLevel(Ljava/lang/String;I)I -PLcom/android/server/am/ActivityManagerService$LocalService;->getServiceStartForegroundTimeout()I +HPLcom/android/server/am/ActivityManagerService$LocalService;->getServiceStartForegroundTimeout()I PLcom/android/server/am/ActivityManagerService$LocalService;->getTaskIdForActivity(Landroid/os/IBinder;Z)I HSPLcom/android/server/am/ActivityManagerService$LocalService;->getUidProcessState(I)I+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/ActivityManagerService$LocalService;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I @@ -4747,6 +4907,7 @@ HSPLcom/android/server/am/ActivityManagerService$LocalService;->isUidActive(I)Z+ HPLcom/android/server/am/ActivityManagerService$LocalService;->isUserRunning(II)Z HSPLcom/android/server/am/ActivityManagerService$LocalService;->killAllBackgroundProcessesExcept(II)V PLcom/android/server/am/ActivityManagerService$LocalService;->killForegroundAppsForUser(I)V +PLcom/android/server/am/ActivityManagerService$LocalService;->killProcess(Ljava/lang/String;ILjava/lang/String;)V PLcom/android/server/am/ActivityManagerService$LocalService;->killProcessesForRemovedTask(Ljava/util/ArrayList;)V PLcom/android/server/am/ActivityManagerService$LocalService;->lambda$disconnectActivityFromServices$1(Lcom/android/server/wm/ActivityServiceConnectionsHolder;Ljava/lang/Object;)V PLcom/android/server/am/ActivityManagerService$LocalService;->lambda$hasRunningForegroundService$2(IILcom/android/server/am/ProcessRecord;)Ljava/lang/Boolean; @@ -4785,10 +4946,9 @@ HPLcom/android/server/am/ActivityManagerService$LocalService;->startServiceInPac PLcom/android/server/am/ActivityManagerService$LocalService;->tempAllowWhileInUsePermissionInFgs(IJ)V PLcom/android/server/am/ActivityManagerService$LocalService;->tempAllowlistForPendingIntent(IIIJIILjava/lang/String;)V HPLcom/android/server/am/ActivityManagerService$LocalService;->trimApplications()V -HPLcom/android/server/am/ActivityManagerService$LocalService;->updateActivityUsageStats(Landroid/content/ComponentName;IILandroid/os/IBinder;Landroid/content/ComponentName;)V HPLcom/android/server/am/ActivityManagerService$LocalService;->updateBatteryStats(Landroid/content/ComponentName;IIZ)V HPLcom/android/server/am/ActivityManagerService$LocalService;->updateCpuStats()V -HPLcom/android/server/am/ActivityManagerService$LocalService;->updateDeviceIdleTempAllowlist([IIZJIILjava/lang/String;I)V+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/FgsTempAllowList;Lcom/android/server/am/FgsTempAllowList; +HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateDeviceIdleTempAllowlist([IIZJIILjava/lang/String;I)V+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/FgsTempAllowList;Lcom/android/server/am/FgsTempAllowList; PLcom/android/server/am/ActivityManagerService$LocalService;->updateForegroundTimeIfOnBattery(Ljava/lang/String;IJ)V PLcom/android/server/am/ActivityManagerService$LocalService;->updateOomAdj()V HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateOomLevelsForDisplay(I)V @@ -4804,7 +4964,7 @@ PLcom/android/server/am/ActivityManagerService$MainHandler;->$r8$lambda$nQbn-iak HSPLcom/android/server/am/ActivityManagerService$MainHandler;->$r8$lambda$tnqzrvfbfhw0qbzF4Zpa6LsnUNU(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BindServiceEventListener;)V HSPLcom/android/server/am/ActivityManagerService$MainHandler;->$r8$lambda$y3Zh24d1IG7n6Ujgxim6Oc7DVPo(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BroadcastEventListener;)V HSPLcom/android/server/am/ActivityManagerService$MainHandler;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;)V -HSPLcom/android/server/am/ActivityManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler; +HSPLcom/android/server/am/ActivityManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; PLcom/android/server/am/ActivityManagerService$MainHandler;->lambda$handleMessage$0(Lcom/android/server/am/ProcessRecord;)V HSPLcom/android/server/am/ActivityManagerService$MainHandler;->lambda$handleMessage$1(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BroadcastEventListener;)V+]Landroid/app/ActivityManagerInternal$BroadcastEventListener;Lcom/android/server/am/AppBroadcastEventsTracker; HSPLcom/android/server/am/ActivityManagerService$MainHandler;->lambda$handleMessage$2(Landroid/os/Message;Landroid/app/ActivityManagerInternal$BindServiceEventListener;)V+]Landroid/app/ActivityManagerInternal$BindServiceEventListener;Lcom/android/server/am/AppBindServiceEventsTracker; @@ -4822,7 +4982,7 @@ PLcom/android/server/am/ActivityManagerService$PackageAssociationInfo;->getAllow PLcom/android/server/am/ActivityManagerService$PackageAssociationInfo;->isDebuggable()Z PLcom/android/server/am/ActivityManagerService$PackageAssociationInfo;->isPackageAssociationAllowed(Ljava/lang/String;)Z PLcom/android/server/am/ActivityManagerService$PackageAssociationInfo;->setDebuggable(Z)V -HPLcom/android/server/am/ActivityManagerService$PendingTempAllowlist;-><init>(IJILjava/lang/String;II)V +HSPLcom/android/server/am/ActivityManagerService$PendingTempAllowlist;-><init>(IJILjava/lang/String;II)V HSPLcom/android/server/am/ActivityManagerService$PermissionController;-><init>(Lcom/android/server/am/ActivityManagerService;)V HSPLcom/android/server/am/ActivityManagerService$PermissionController;->checkPermission(Ljava/lang/String;II)Z HPLcom/android/server/am/ActivityManagerService$PermissionController;->getPackagesForUid(I)[Ljava/lang/String; @@ -4845,7 +5005,7 @@ HSPLcom/android/server/am/ActivityManagerService$SdkSandboxSettings;-><init>(Lan HSPLcom/android/server/am/ActivityManagerService$SdkSandboxSettings;->isBroadcastReceiverRestrictionsEnforced()Z HSPLcom/android/server/am/ActivityManagerService$SdkSandboxSettings;->registerObserver()V HSPLcom/android/server/am/ActivityManagerService$UiHandler;-><init>(Lcom/android/server/am/ActivityManagerService;)V -HSPLcom/android/server/am/ActivityManagerService$UiHandler;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/am/AppErrors;Lcom/android/server/am/AppErrors;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; +HSPLcom/android/server/am/ActivityManagerService$UiHandler;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/AppErrors;Lcom/android/server/am/AppErrors; HSPLcom/android/server/am/ActivityManagerService;->$r8$lambda$0MUCQPSj0khY7CSsocrnTh55H9M(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/am/ActivityManagerService;->$r8$lambda$2WweV4ZlzWdWugjgv4Qek4UBmVU(Lcom/android/server/am/ProcessRecord;Landroid/os/Debug$MemoryInfo;JLcom/android/server/am/ProcessProfileRecord;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V PLcom/android/server/am/ActivityManagerService;->$r8$lambda$7ZmQvIcxyH5t0jsDMc3U06dyXyE(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V @@ -4899,6 +5059,7 @@ HSPLcom/android/server/am/ActivityManagerService;->addPidLocked(Lcom/android/ser HSPLcom/android/server/am/ActivityManagerService;->addServiceToMap(Landroid/util/ArrayMap;Ljava/lang/String;)V HSPLcom/android/server/am/ActivityManagerService;->appDiedLocked(Lcom/android/server/am/ProcessRecord;ILandroid/app/IApplicationThread;ZLjava/lang/String;)V PLcom/android/server/am/ActivityManagerService;->appDiedLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V +PLcom/android/server/am/ActivityManagerService;->appNotResponding(Lcom/android/server/am/ProcessRecord;Lcom/android/internal/os/TimeoutRecord;)V HPLcom/android/server/am/ActivityManagerService;->appRestrictedInBackgroundLOSP(ILjava/lang/String;I)I+]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/ActivityManagerService;->appServicesRestrictedInBackgroundLOSP(ILjava/lang/String;I)I PLcom/android/server/am/ActivityManagerService;->appendBasicMemEntry(Ljava/lang/StringBuilder;IIJJLjava/lang/String;)V @@ -4907,7 +5068,7 @@ PLcom/android/server/am/ActivityManagerService;->appendMemBucket(Ljava/lang/Stri PLcom/android/server/am/ActivityManagerService;->appendMemInfo(Ljava/lang/StringBuilder;Lcom/android/server/am/ProcessMemInfo;)V PLcom/android/server/am/ActivityManagerService;->appendtoANRFile(Ljava/lang/String;Ljava/lang/String;)I HSPLcom/android/server/am/ActivityManagerService;->attachApplication(Landroid/app/IApplicationThread;J)V -HSPLcom/android/server/am/ActivityManagerService;->attachApplicationLocked(Landroid/app/IApplicationThread;IIJ)Z+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord;]Lcom/android/server/contentcapture/ContentCaptureManagerInternal;Lcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Lcom/android/server/graphics/fonts/FontManagerInternal;Lcom/android/server/graphics/fonts/FontManagerService$Lifecycle$1;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat;]Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$PidMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/am/CoreSettingsObserver;Lcom/android/server/am/CoreSettingsObserver;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/HostingRecord;Lcom/android/server/am/HostingRecord;]Landroid/view/autofill/AutofillManagerInternal;Lcom/android/server/autofill/AutofillManagerService$LocalService;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowProcessController;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/am/ActivityManagerService;->attachApplicationLocked(Landroid/app/IApplicationThread;IIJ)Z+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord;]Lcom/android/server/contentcapture/ContentCaptureManagerInternal;Lcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Lcom/android/server/graphics/fonts/FontManagerInternal;Lcom/android/server/graphics/fonts/FontManagerService$Lifecycle$1;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat;]Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$PidMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/am/CoreSettingsObserver;Lcom/android/server/am/CoreSettingsObserver;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/HostingRecord;Lcom/android/server/am/HostingRecord;]Landroid/view/autofill/AutofillManagerInternal;Lcom/android/server/autofill/AutofillManagerService$LocalService;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowProcessController;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy; HPLcom/android/server/am/ActivityManagerService;->backgroundServicesFinishedLocked(I)V+]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueue;,Lcom/android/server/am/BroadcastQueueImpl; HPLcom/android/server/am/ActivityManagerService;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;I)V HSPLcom/android/server/am/ActivityManagerService;->batteryNeedsCpuUpdate()V @@ -4924,7 +5085,7 @@ PLcom/android/server/am/ActivityManagerService;->bootAnimationComplete()V HSPLcom/android/server/am/ActivityManagerService;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I HPLcom/android/server/am/ActivityManagerService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZLandroid/os/IBinder;[I)I+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;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;ZZIIIII)I+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; -HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;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;ZZIIIIIZLandroid/os/IBinder;[ILjava/util/function/BiFunction;)I+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Lcom/android/server/IntentResolver;Lcom/android/server/am/ActivityManagerService$3;]Landroid/net/Uri;Landroid/net/Uri$OpaqueUri;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/IntentFilter;Lcom/android/server/am/BroadcastFilter;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/lang/String;Ljava/lang/String;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord; +HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;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;ZZIIIIIZLandroid/os/IBinder;[ILjava/util/function/BiFunction;)I+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Lcom/android/server/IntentResolver;Lcom/android/server/am/ActivityManagerService$3;]Landroid/net/Uri;Landroid/net/Uri$OpaqueUri;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/IntentFilter;Lcom/android/server/am/BroadcastFilter;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/lang/String;Ljava/lang/String;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/uri/UriGrantsManagerInternal;Lcom/android/server/uri/UriGrantsManagerService$LocalService;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/am/ActivityManagerService;->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/BaseBundle;Landroid/os/Bundle;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/ActivityManagerService;->broadcastQueueForFlags(I)Lcom/android/server/am/BroadcastQueue; HSPLcom/android/server/am/ActivityManagerService;->broadcastQueueForFlags(ILjava/lang/Object;)Lcom/android/server/am/BroadcastQueue;+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; @@ -4994,7 +5155,7 @@ HSPLcom/android/server/am/ActivityManagerService;->filterNonExportedComponents(L HSPLcom/android/server/am/ActivityManagerService;->findAppProcess(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord; PLcom/android/server/am/ActivityManagerService;->finishBooting()V PLcom/android/server/am/ActivityManagerService;->finishForceStopPackageLocked(Ljava/lang/String;I)V -HPLcom/android/server/am/ActivityManagerService;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueue;,Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HPLcom/android/server/am/ActivityManagerService;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;,Lcom/android/server/am/BroadcastQueue;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; PLcom/android/server/am/ActivityManagerService;->forceStopAppZygoteLocked(Ljava/lang/String;II)V PLcom/android/server/am/ActivityManagerService;->forceStopPackage(Ljava/lang/String;I)V PLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;ILjava/lang/String;)V @@ -5013,6 +5174,7 @@ HSPLcom/android/server/am/ActivityManagerService;->getContentProvider(Landroid/a HSPLcom/android/server/am/ActivityManagerService;->getContentProviderHelper()Lcom/android/server/am/ContentProviderHelper; HSPLcom/android/server/am/ActivityManagerService;->getCurrentUser()Landroid/content/pm/UserInfo; HSPLcom/android/server/am/ActivityManagerService;->getCurrentUserId()I+]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController; +PLcom/android/server/am/ActivityManagerService;->getForegroundServiceType(Landroid/content/ComponentName;Landroid/os/IBinder;)I HPLcom/android/server/am/ActivityManagerService;->getHistoricalProcessExitReasons(Ljava/lang/String;III)Landroid/content/pm/ParceledListSlice; HSPLcom/android/server/am/ActivityManagerService;->getInfoForIntentSender(Landroid/content/IIntentSender;)Landroid/app/ActivityManager$PendingIntentInfo;+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HPLcom/android/server/am/ActivityManagerService;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent; @@ -5033,8 +5195,8 @@ HSPLcom/android/server/am/ActivityManagerService;->getProcessRecordLocked(Ljava/ PLcom/android/server/am/ActivityManagerService;->getProcessStatesAndOomScoresForPIDs([I[I[I)V HPLcom/android/server/am/ActivityManagerService;->getProcessesInErrorState()Ljava/util/List; HPLcom/android/server/am/ActivityManagerService;->getProviderMimeTypeAsync(Landroid/net/Uri;ILandroid/os/RemoteCallback;)V+]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper; -HSPLcom/android/server/am/ActivityManagerService;->getRecordForAppLOSP(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;+]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; -HSPLcom/android/server/am/ActivityManagerService;->getRecordForAppLOSP(Landroid/os/IBinder;)Lcom/android/server/am/ProcessRecord;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/internal/app/ProcessMap;Lcom/android/server/am/ProcessList$MyProcessMap;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; +HSPLcom/android/server/am/ActivityManagerService;->getRecordForAppLOSP(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; +HSPLcom/android/server/am/ActivityManagerService;->getRecordForAppLOSP(Landroid/os/IBinder;)Lcom/android/server/am/ProcessRecord;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/internal/app/ProcessMap;Lcom/android/server/am/ProcessList$MyProcessMap;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; HPLcom/android/server/am/ActivityManagerService;->getRunningAppProcesses()Ljava/util/List;+]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/ActivityManagerService;->getRunningUserIds()[I+]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/ActivityManagerService;->getServices(II)Ljava/util/List; @@ -5042,6 +5204,7 @@ HSPLcom/android/server/am/ActivityManagerService;->getShortAction(Ljava/lang/Str HSPLcom/android/server/am/ActivityManagerService;->getTagForIntentSender(Landroid/content/IIntentSender;Ljava/lang/String;)Ljava/lang/String;+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/ActivityManagerService;->getTagForIntentSenderLocked(Lcom/android/server/am/PendingIntentRecord;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; PLcom/android/server/am/ActivityManagerService;->getTaskForActivity(Landroid/os/IBinder;Z)I +PLcom/android/server/am/ActivityManagerService;->getTasks(I)Ljava/util/List; HSPLcom/android/server/am/ActivityManagerService;->getTopApp()Lcom/android/server/am/ProcessRecord;+]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService; PLcom/android/server/am/ActivityManagerService;->getUidFromIntent(Landroid/content/Intent;)I HSPLcom/android/server/am/ActivityManagerService;->getUidProcessState(ILjava/lang/String;)I @@ -5086,11 +5249,12 @@ HSPLcom/android/server/am/ActivityManagerService;->isUidActive(ILjava/lang/Strin HSPLcom/android/server/am/ActivityManagerService;->isUidActiveLOSP(I)Z+]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList; HPLcom/android/server/am/ActivityManagerService;->isUserAMonkey()Z HSPLcom/android/server/am/ActivityManagerService;->isUserRunning(II)Z -PLcom/android/server/am/ActivityManagerService;->isValidSingletonCall(II)Z +HPLcom/android/server/am/ActivityManagerService;->isValidSingletonCall(II)Z HSPLcom/android/server/am/ActivityManagerService;->killAllBackgroundProcessesExcept(II)V PLcom/android/server/am/ActivityManagerService;->killAppAtUsersRequest(Lcom/android/server/am/ProcessRecord;)V PLcom/android/server/am/ActivityManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V PLcom/android/server/am/ActivityManagerService;->killApplicationProcess(Ljava/lang/String;I)V +PLcom/android/server/am/ActivityManagerService;->killBackgroundProcesses(Ljava/lang/String;I)V PLcom/android/server/am/ActivityManagerService;->killUid(IILjava/lang/String;)V PLcom/android/server/am/ActivityManagerService;->killUidForPermissionChange(IILjava/lang/String;)V HSPLcom/android/server/am/ActivityManagerService;->lambda$appendDropBoxProcessHeaders$11(Ljava/lang/StringBuilder;Landroid/content/pm/IPackageManager;ILjava/lang/String;)V @@ -5112,10 +5276,11 @@ HSPLcom/android/server/am/ActivityManagerService;->lambda$scheduleUpdateBinderHe PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$7(Landroid/os/PowerSaveState;)V PLcom/android/server/am/ActivityManagerService;->lambda$updateAppProcessCpuTimeLPr$21(Lcom/android/server/am/ProcessRecord;JJJI)V PLcom/android/server/am/ActivityManagerService;->lambda$updatePhantomProcessCpuTimeLPr$23(JZLcom/android/server/am/ProcessRecord;IJLcom/android/server/am/PhantomProcessRecord;)Ljava/lang/Boolean; +PLcom/android/server/am/ActivityManagerService;->launchBugReportHandlerApp()Z HSPLcom/android/server/am/ActivityManagerService;->logStrictModeViolationToDropBox(Lcom/android/server/am/ProcessRecord;Landroid/os/StrictMode$ViolationInfo;)V PLcom/android/server/am/ActivityManagerService;->maybeLogUserspaceRebootEvent()V PLcom/android/server/am/ActivityManagerService;->maybePruneOldTraces(Ljava/io/File;)V -PLcom/android/server/am/ActivityManagerService;->monitor()V +HPLcom/android/server/am/ActivityManagerService;->monitor()V HPLcom/android/server/am/ActivityManagerService;->noteAlarmFinish(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V HPLcom/android/server/am/ActivityManagerService;->noteAlarmStart(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;)V HSPLcom/android/server/am/ActivityManagerService;->noteUidProcessState(III)V+]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; @@ -5129,13 +5294,14 @@ HPLcom/android/server/am/ActivityManagerService;->performIdleMaintenance()V HSPLcom/android/server/am/ActivityManagerService;->processClass(Lcom/android/server/am/ProcessRecord;)Ljava/lang/String; HSPLcom/android/server/am/ActivityManagerService;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V HSPLcom/android/server/am/ActivityManagerService;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/content/Intent;Landroid/content/Intent; -HPLcom/android/server/am/ActivityManagerService;->pushTempAllowlist()V+]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;]Lcom/android/server/am/PendingTempAllowlists;Lcom/android/server/am/PendingTempAllowlists; +HSPLcom/android/server/am/ActivityManagerService;->pushTempAllowlist()V+]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;]Lcom/android/server/am/PendingTempAllowlists;Lcom/android/server/am/PendingTempAllowlists; HPLcom/android/server/am/ActivityManagerService;->queryIntentComponentsForIntentSender(Landroid/content/IIntentSender;I)Landroid/content/pm/ParceledListSlice; HPLcom/android/server/am/ActivityManagerService;->refContentProvider(Landroid/os/IBinder;II)Z+]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper; PLcom/android/server/am/ActivityManagerService;->registerForegroundServiceObserver(Landroid/app/IForegroundServiceObserver;)Z HPLcom/android/server/am/ActivityManagerService;->registerIntentSenderCancelListenerEx(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)Z HSPLcom/android/server/am/ActivityManagerService;->registerProcessObserver(Landroid/app/IProcessObserver;)V -HSPLcom/android/server/am/ActivityManagerService;->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;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;,Lcom/android/server/am/BroadcastFilter;]Lcom/android/server/am/ActivityManagerService$SdkSandboxSettings;Lcom/android/server/am/ActivityManagerService$SdkSandboxSettings;]Lcom/android/server/am/ReceiverList;Lcom/android/server/am/ReceiverList;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy;]Ljava/util/AbstractCollection;Lcom/android/server/am/ReceiverList;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueue;,Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/am/PackageList;Lcom/android/server/am/PackageList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/IntentResolver;Lcom/android/server/am/ActivityManagerService$3;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;,Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy; +HSPLcom/android/server/am/ActivityManagerService;->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;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;,Lcom/android/server/am/BroadcastFilter;]Lcom/android/server/am/ActivityManagerService$SdkSandboxSettings;Lcom/android/server/am/ActivityManagerService$SdkSandboxSettings;]Lcom/android/server/am/ReceiverList;Lcom/android/server/am/ReceiverList;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy;]Ljava/util/AbstractCollection;Lcom/android/server/am/ReceiverList;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;,Lcom/android/server/am/BroadcastQueue;]Lcom/android/server/am/PackageList;Lcom/android/server/am/PackageList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/IntentResolver;Lcom/android/server/am/ActivityManagerService$3;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;,Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy; +PLcom/android/server/am/ActivityManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V HSPLcom/android/server/am/ActivityManagerService;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V HSPLcom/android/server/am/ActivityManagerService;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V HPLcom/android/server/am/ActivityManagerService;->removeContentProvider(Landroid/os/IBinder;Z)V+]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper; @@ -5165,7 +5331,7 @@ HPLcom/android/server/am/ActivityManagerService;->sendIntentSender(Landroid/cont PLcom/android/server/am/ActivityManagerService;->sendPackageBroadcastLocked(I[Ljava/lang/String;I)V HSPLcom/android/server/am/ActivityManagerService;->serviceDoneExecuting(Landroid/os/IBinder;III)V+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; HPLcom/android/server/am/ActivityManagerService;->setActivityLocusContext(Landroid/content/ComponentName;Landroid/content/LocusId;Landroid/os/IBinder;)V -HPLcom/android/server/am/ActivityManagerService;->setAppIdTempAllowlistStateLSP(IZ)V +HSPLcom/android/server/am/ActivityManagerService;->setAppIdTempAllowlistStateLSP(IZ)V HSPLcom/android/server/am/ActivityManagerService;->setAppOpsPolicy(Landroid/app/AppOpsManagerInternal$CheckOpsDelegate;)V HSPLcom/android/server/am/ActivityManagerService;->setContentCaptureManager(Lcom/android/server/contentcapture/ContentCaptureManagerInternal;)V PLcom/android/server/am/ActivityManagerService;->setDebugApp(Ljava/lang/String;ZZ)V @@ -5179,7 +5345,7 @@ HSPLcom/android/server/am/ActivityManagerService;->setRenderThread(I)V HPLcom/android/server/am/ActivityManagerService;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V HSPLcom/android/server/am/ActivityManagerService;->setSystemProcess()V HSPLcom/android/server/am/ActivityManagerService;->setSystemServiceManager(Lcom/android/server/SystemServiceManager;)V -HPLcom/android/server/am/ActivityManagerService;->setUidTempAllowlistStateLSP(IZ)V +HSPLcom/android/server/am/ActivityManagerService;->setUidTempAllowlistStateLSP(IZ)V HSPLcom/android/server/am/ActivityManagerService;->setUsageStatsManager(Landroid/app/usage/UsageStatsManagerInternal;)V HSPLcom/android/server/am/ActivityManagerService;->setVoiceInteractionManagerProvider(Landroid/app/ActivityManagerInternal$VoiceInteractionManagerProvider;)V HSPLcom/android/server/am/ActivityManagerService;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V @@ -5205,20 +5371,21 @@ PLcom/android/server/am/ActivityManagerService;->stringifyKBSize(J)Ljava/lang/St PLcom/android/server/am/ActivityManagerService;->stringifySize(JI)Ljava/lang/String; HSPLcom/android/server/am/ActivityManagerService;->systemReady(Ljava/lang/Runnable;Lcom/android/server/utils/TimingsTraceAndSlog;)V PLcom/android/server/am/ActivityManagerService;->tempAllowlistForPendingIntentLocked(IIIJIILjava/lang/String;)V -HPLcom/android/server/am/ActivityManagerService;->tempAllowlistUidLocked(IJILjava/lang/String;II)V +HSPLcom/android/server/am/ActivityManagerService;->tempAllowlistUidLocked(IJILjava/lang/String;II)V HSPLcom/android/server/am/ActivityManagerService;->traceBegin(JLjava/lang/String;Ljava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HPLcom/android/server/am/ActivityManagerService;->trimApplications(ZI)V -HPLcom/android/server/am/ActivityManagerService;->trimApplicationsLocked(ZI)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; +HPLcom/android/server/am/ActivityManagerService;->trimApplicationsLocked(ZI)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; PLcom/android/server/am/ActivityManagerService;->uidOnBackgroundAllowlistLOSP(I)Z HPLcom/android/server/am/ActivityManagerService;->unbindBackupAgent(Landroid/content/pm/ApplicationInfo;)V HPLcom/android/server/am/ActivityManagerService;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/am/ActivityManagerService;->unbindService(Landroid/app/IServiceConnection;)Z+]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices; PLcom/android/server/am/ActivityManagerService;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z +PLcom/android/server/am/ActivityManagerService;->unlockUser2(ILandroid/os/IProgressListener;)Z HPLcom/android/server/am/ActivityManagerService;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V HPLcom/android/server/am/ActivityManagerService;->unregisterReceiver(Landroid/content/IIntentReceiver;)V +PLcom/android/server/am/ActivityManagerService;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V PLcom/android/server/am/ActivityManagerService;->unregisterUidObserver(Landroid/app/IUidObserver;)V PLcom/android/server/am/ActivityManagerService;->unstableProviderDied(Landroid/os/IBinder;)V -HPLcom/android/server/am/ActivityManagerService;->updateActivityUsageStats(Landroid/content/ComponentName;IILandroid/os/IBinder;Landroid/content/ComponentName;)V HPLcom/android/server/am/ActivityManagerService;->updateAppProcessCpuTimeLPr(JZJILcom/android/server/am/ProcessRecord;)V HSPLcom/android/server/am/ActivityManagerService;->updateApplicationInfoLOSP(Ljava/util/List;ZI)V PLcom/android/server/am/ActivityManagerService;->updateAssociationForApp(Landroid/content/pm/ApplicationInfo;)V @@ -5255,6 +5422,7 @@ PLcom/android/server/am/ActivityManagerShellCommand;-><init>(Lcom/android/server PLcom/android/server/am/ActivityManagerShellCommand;->makeIntent(I)Landroid/content/Intent; PLcom/android/server/am/ActivityManagerShellCommand;->onCommand(Ljava/lang/String;)I PLcom/android/server/am/ActivityManagerShellCommand;->runForceStop(Ljava/io/PrintWriter;)I +PLcom/android/server/am/ActivityManagerShellCommand;->runGetConfig(Ljava/io/PrintWriter;)I PLcom/android/server/am/ActivityManagerShellCommand;->runSendBroadcast(Ljava/io/PrintWriter;)I PLcom/android/server/am/ActivityManagerShellCommand;->runStartActivity(Ljava/io/PrintWriter;)I PLcom/android/server/am/ActivityManagerUtils;-><clinit>()V @@ -5312,7 +5480,7 @@ HSPLcom/android/server/am/AppBatteryExemptionTracker;-><init>(Landroid/content/C HSPLcom/android/server/am/AppBatteryExemptionTracker;-><init>(Landroid/content/Context;Lcom/android/server/am/AppRestrictionController;Ljava/lang/reflect/Constructor;Ljava/lang/Object;)V PLcom/android/server/am/AppBatteryExemptionTracker;->createAppStateEvents(ILjava/lang/String;)Lcom/android/server/am/AppBatteryExemptionTracker$UidBatteryStates; PLcom/android/server/am/AppBatteryExemptionTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V -HPLcom/android/server/am/AppBatteryExemptionTracker;->getUidBatteryExemptedUsageSince(IJJI)Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;+]Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/BaseAppStateTracker$Injector;]Lcom/android/server/am/AppBatteryTracker$BatteryUsage;Lcom/android/server/am/AppBatteryTracker$BatteryUsage;,Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;]Lcom/android/server/am/AppBatteryExemptionTracker$UidBatteryStates;Lcom/android/server/am/AppBatteryExemptionTracker$UidBatteryStates;]Lcom/android/server/am/BaseAppStatePolicy;Lcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;]Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;]Lcom/android/server/am/AppRestrictionController;Lcom/android/server/am/AppRestrictionController;]Lcom/android/server/am/UidProcessMap;Lcom/android/server/am/UidProcessMap; +HPLcom/android/server/am/AppBatteryExemptionTracker;->getUidBatteryExemptedUsageSince(IJJI)Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;+]Lcom/android/server/am/BaseAppStateTracker$Injector;Lcom/android/server/am/BaseAppStateTracker$Injector;]Lcom/android/server/am/AppBatteryTracker$BatteryUsage;Lcom/android/server/am/AppBatteryTracker$BatteryUsage;,Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;]Lcom/android/server/am/BaseAppStatePolicy;Lcom/android/server/am/AppBatteryExemptionTracker$AppBatteryExemptionPolicy;]Lcom/android/server/am/AppBatteryExemptionTracker$UidBatteryStates;Lcom/android/server/am/AppBatteryExemptionTracker$UidBatteryStates;]Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;Lcom/android/server/am/AppBatteryTracker$ImmutableBatteryUsage;]Lcom/android/server/am/AppRestrictionController;Lcom/android/server/am/AppRestrictionController;]Lcom/android/server/am/UidProcessMap;Lcom/android/server/am/UidProcessMap; HSPLcom/android/server/am/AppBatteryExemptionTracker;->lambda$onSystemReady$0(Lcom/android/server/am/BaseAppStateTracker;)V HPLcom/android/server/am/AppBatteryExemptionTracker;->onStateChange(ILjava/lang/String;ZJI)V HSPLcom/android/server/am/AppBatteryExemptionTracker;->onSystemReady()V @@ -5476,6 +5644,9 @@ PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda14;->apply(Lj PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V +PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda16;->run()V +HPLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/AppExitInfoTracker;ILjava/util/ArrayList;ILjava/lang/Integer;Ljava/lang/Integer;)V +HPLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda1;-><init>()V HPLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/AppExitInfoTracker;ILjava/util/ArrayList;I)V HPLcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; @@ -5552,7 +5723,7 @@ PLcom/android/server/am/AppExitInfoTracker;->copyToGzFile(Ljava/io/File;Ljava/io PLcom/android/server/am/AppExitInfoTracker;->dumpHistoryProcessExitInfo(Ljava/io/PrintWriter;Ljava/lang/String;)V HPLcom/android/server/am/AppExitInfoTracker;->dumpHistoryProcessExitInfoLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/util/SparseArray;Landroid/icu/text/SimpleDateFormat;)V HSPLcom/android/server/am/AppExitInfoTracker;->findAndRemoveFromSparse2dArray(Landroid/util/SparseArray;II)Ljava/lang/Object; -HSPLcom/android/server/am/AppExitInfoTracker;->forEachPackageLocked(Ljava/util/function/BiFunction;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/BiFunction;Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda15;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda2;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda5;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda16;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda12;]Ljava/lang/Integer;Ljava/lang/Integer;]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap; +HSPLcom/android/server/am/AppExitInfoTracker;->forEachPackageLocked(Ljava/util/function/BiFunction;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/BiFunction;Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda15;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda2;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda5;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda16;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda12;,Lcom/android/server/am/AppExitInfoTracker$$ExternalSyntheticLambda17;]Ljava/lang/Integer;Ljava/lang/Integer;]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap; PLcom/android/server/am/AppExitInfoTracker;->forEachSparse2dArray(Landroid/util/SparseArray;Ljava/util/function/Consumer;)V HSPLcom/android/server/am/AppExitInfoTracker;->getExitInfo(Ljava/lang/String;IIILjava/util/ArrayList;)V+]Lcom/android/server/am/AppExitInfoTracker;Lcom/android/server/am/AppExitInfoTracker;]Lcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;Lcom/android/server/am/AppExitInfoTracker$AppExitInfoContainer;]Lcom/android/internal/app/ProcessMap;Lcom/android/internal/app/ProcessMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/AppExitInfoTracker;->getExitInfoLocked(Ljava/lang/String;II)Landroid/app/ApplicationExitInfo; @@ -5787,7 +5958,7 @@ HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmProcessCpuInitLatch(Lcom/an HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmProcessCpuMutexFree(Lcom/android/server/am/AppProfiler;)Ljava/util/concurrent/atomic/AtomicBoolean; HSPLcom/android/server/am/AppProfiler;->-$$Nest$fgetmProcessCpuTracker(Lcom/android/server/am/AppProfiler;)Lcom/android/internal/os/ProcessCpuTracker; PLcom/android/server/am/AppProfiler;->-$$Nest$fgetmService(Lcom/android/server/am/AppProfiler;)Lcom/android/server/am/ActivityManagerService; -PLcom/android/server/am/AppProfiler;->-$$Nest$mcollectPssInBackground(Lcom/android/server/am/AppProfiler;)V +HPLcom/android/server/am/AppProfiler;->-$$Nest$mcollectPssInBackground(Lcom/android/server/am/AppProfiler;)V PLcom/android/server/am/AppProfiler;->-$$Nest$mhandleMemoryPressureChangedLocked(Lcom/android/server/am/AppProfiler;II)V HSPLcom/android/server/am/AppProfiler;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;Lcom/android/server/am/LowMemDetector;)V PLcom/android/server/am/AppProfiler;->addProcessToGcListLPf(Lcom/android/server/am/ProcessRecord;)V @@ -5833,7 +6004,7 @@ HSPLcom/android/server/am/AppProfiler;->setAllowLowerMemLevelLocked(Z)V HSPLcom/android/server/am/AppProfiler;->setCpuInfoService()V PLcom/android/server/am/AppProfiler;->setDumpHeapDebugLimit(Ljava/lang/String;IJLjava/lang/String;)V HSPLcom/android/server/am/AppProfiler;->setupProfilerInfoLocked(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ActiveInstrumentation;)Landroid/app/ProfilerInfo; -HSPLcom/android/server/am/AppProfiler;->trimMemoryUiHiddenIfNecessaryLSP(Lcom/android/server/am/ProcessRecord;)V+]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler; +HSPLcom/android/server/am/AppProfiler;->trimMemoryUiHiddenIfNecessaryLSP(Lcom/android/server/am/ProcessRecord;)V+]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler; HSPLcom/android/server/am/AppProfiler;->updateCpuStats()V+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Ljava/lang/Object;Lcom/android/server/am/AppProfiler$ProcessCpuThread;]Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/concurrent/atomic/AtomicLong; HSPLcom/android/server/am/AppProfiler;->updateCpuStatsNow()V+]Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$PidMap;]Lcom/android/internal/os/ProcessCpuTracker;Lcom/android/internal/os/ProcessCpuTracker;]Lcom/android/server/am/PhantomProcessList;Lcom/android/server/am/PhantomProcessList;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/concurrent/atomic/AtomicLong;]Lcom/android/server/am/BatteryStatsService;Lcom/android/server/am/BatteryStatsService;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord; HSPLcom/android/server/am/AppProfiler;->updateLowMemStateLSP(III)Z+]Landroid/os/Handler;Lcom/android/server/am/AppProfiler$BgHandler;]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Landroid/os/Message;Landroid/os/Message;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/LowMemDetector;Lcom/android/server/am/LowMemDetector; @@ -5843,8 +6014,13 @@ PLcom/android/server/am/AppProfiler;->writeMemWatchProcessToProtoLPf(Landroid/ut PLcom/android/server/am/AppProfiler;->writeMemoryLevelsToProtoLocked(Landroid/util/proto/ProtoOutputStream;)V PLcom/android/server/am/AppProfiler;->writeProcessesToGcToProto(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;)V PLcom/android/server/am/AppProfiler;->writeProfileDataToProtoLocked(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;)V +HSPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/AppRestrictionController;)V HSPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda2;-><init>(ILjava/lang/String;I)V HSPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V +PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/AppRestrictionController;)V +PLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda3;->run()V +HPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/AppRestrictionController;ILcom/android/server/usage/AppStandbyInternal;I)V +HPLcom/android/server/am/AppRestrictionController$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/server/am/AppRestrictionController$1;-><init>(Lcom/android/server/am/AppRestrictionController;)V HPLcom/android/server/am/AppRestrictionController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/am/AppRestrictionController$2;-><init>(Lcom/android/server/am/AppRestrictionController;)V @@ -5992,7 +6168,7 @@ PLcom/android/server/am/AppRestrictionController;->dump(Ljava/io/PrintWriter;Lja PLcom/android/server/am/AppRestrictionController;->fetchCarrierPrivilegedAppsCPL()V HSPLcom/android/server/am/AppRestrictionController;->forEachTracker(Ljava/util/function/Consumer;)V HSPLcom/android/server/am/AppRestrictionController;->getBackgroundHandler()Landroid/os/Handler; -HSPLcom/android/server/am/AppRestrictionController;->getBackgroundRestrictionExemptionReason(I)I+]Lcom/android/server/am/AppRestrictionController$Injector;Lcom/android/server/am/AppRestrictionController$Injector;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Ljava/util/Set;Ljava/util/Collections$EmptySet;]Lcom/android/server/am/AppRestrictionController;Lcom/android/server/am/AppRestrictionController;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/am/AppRestrictionController;->getBackgroundRestrictionExemptionReason(I)I+]Lcom/android/server/am/AppRestrictionController$Injector;Lcom/android/server/am/AppRestrictionController$Injector;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Ljava/util/Set;Ljava/util/Collections$EmptySet;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/AppRestrictionController;Lcom/android/server/am/AppRestrictionController; PLcom/android/server/am/AppRestrictionController;->getCompositeMediaPlaybackDurations(Ljava/lang/String;IJJ)J PLcom/android/server/am/AppRestrictionController;->getExemptionReasonStatsd(II)I PLcom/android/server/am/AppRestrictionController;->getForegroundServiceTotalDurationsSince(Ljava/lang/String;IJJI)J @@ -6027,7 +6203,7 @@ HPLcom/android/server/am/AppRestrictionController;->isExemptedFromSysConfig(Ljav HPLcom/android/server/am/AppRestrictionController;->isOnDeviceIdleAllowlist(I)Z HPLcom/android/server/am/AppRestrictionController;->isOnSystemDeviceIdleAllowlist(I)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/am/AppRestrictionController;->isRoleHeldByUid(Ljava/lang/String;I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HPLcom/android/server/am/AppRestrictionController;->isSystemModule(Ljava/lang/String;)Z+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Lcom/android/server/am/AppRestrictionController$Injector;Lcom/android/server/am/AppRestrictionController$Injector;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File; +HPLcom/android/server/am/AppRestrictionController;->isSystemModule(Ljava/lang/String;)Z+]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/am/AppRestrictionController$Injector;Lcom/android/server/am/AppRestrictionController$Injector;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File; HSPLcom/android/server/am/AppRestrictionController;->lambda$dispatchAppRestrictionLevelChanges$2(ILjava/lang/String;ILandroid/app/ActivityManagerInternal$AppBackgroundRestrictionListener;)V HSPLcom/android/server/am/AppRestrictionController;->lambda$handleUidActive$9(ILcom/android/server/usage/AppStandbyInternal;ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V HSPLcom/android/server/am/AppRestrictionController;->lambda$onSystemReady$0()V @@ -6218,11 +6394,12 @@ PLcom/android/server/am/BaseErrorDialog;->onStop()V PLcom/android/server/am/BaseErrorDialog;->setEnabled(Z)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IIJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda0;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda100;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda100;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda100;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda102;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V -HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda102;->run()V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda102;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda102;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda103;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda103;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda104;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V @@ -6244,111 +6421,170 @@ PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda16;-><init>( HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda16;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/am/BatteryStatsService;IZIIJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda17;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda18;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ZJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda19;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda1;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda20;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/am/BatteryStatsService;IJIJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda21;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda22;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/am/BatteryStatsService;ZIJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda23;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda24;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda24;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda25;-><init>(Ljava/util/concurrent/CountDownLatch;)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda25;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda26;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/am/BatteryStatsService;JJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda27;->run()V -HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;->run()V -HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda29;->run()V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;-><init>(Lcom/android/server/am/BatteryStatsService;ZJ)V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;JJ)V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda29;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda30;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda31;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/am/BatteryStatsService;IILjava/lang/String;Ljava/lang/String;IJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda31;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda32;-><init>(Lcom/android/server/am/BatteryStatsService;IJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda32;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda33;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda33;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda34;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda34;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda35;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Ljava/lang/String;IJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda35;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda36;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda36;-><init>(Lcom/android/server/am/BatteryStatsService;II)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda36;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda37;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/telephony/SignalStrength;JJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda37;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda38;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda39;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda39;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/BatteryStatsService;IZJJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda3;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda40;-><init>(Lcom/android/server/am/BatteryStatsService;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda40;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda41;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda41;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda42;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;JJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda42;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda43;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;JJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda43;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda44;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda44;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda45;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda45;->run()V -HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda46;->run()V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda46;-><init>(Lcom/android/server/am/BatteryStatsService;IIJJ)V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda46;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda47;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;JJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda47;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda48;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda48;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda49;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda4;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda50;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda50;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda50;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda51;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;Landroid/os/WorkSource;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda51;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda52;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;JJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda52;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda53;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda53;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda54;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda55;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda54;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda54;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda55;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda55;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda56;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda56;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda57;-><init>(Lcom/android/server/am/BatteryStatsService;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda57;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda58;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Landroid/os/WorkSource;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda58;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda59;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ZJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda59;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda5;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda60;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Landroid/os/WorkSource;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda60;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda61;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda62;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda62;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda63;-><init>(Lcom/android/server/am/BatteryStatsService;IJIJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda63;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda64;-><init>(Lcom/android/server/am/BatteryStatsService;IJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda64;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda65;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda65;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda66;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda66;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda67;-><init>(Lcom/android/server/am/BatteryStatsService;II)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda67;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda68;-><init>(Lcom/android/server/am/BatteryStatsService;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda68;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda69;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda6;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda70;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda70;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda70;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda71;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda71;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda71;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda72;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda73;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda73;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda73;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda73;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda75;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda75;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda76;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda78;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda76;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;JJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda76;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda77;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda77;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda78;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/PowerSaveState;JJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda78;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda79;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda79;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda7;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda80;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda81;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda81;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda82;-><init>(Lcom/android/server/am/BatteryStatsService;IJJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda82;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda83;-><init>(Lcom/android/server/am/BatteryStatsService;)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda83;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda84;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;JJ)V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda84;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda85;-><init>(Lcom/android/server/am/BatteryStatsService;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda85;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda86;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;[I)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda86;->run()V PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda87;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda88;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;J)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda88;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda89;->run()V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda8;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda90;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda91;-><init>(Lcom/android/server/am/BatteryStatsService;Landroid/os/WorkSource;JJ)V HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda91;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda92;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda93;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda92;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;IJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda92;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda93;-><init>(Lcom/android/server/am/BatteryStatsService;IJJJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda93;->run()V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda94;->run()V -PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda95;->run()V -HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda96;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda95;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda95;->run()V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda96;-><init>(Lcom/android/server/am/BatteryStatsService;)V +HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda96;->run()V +PLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda97;-><init>(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda97;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda98;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda98;->run()V +HPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda99;-><init>(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V HSPLcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda99;->run()V HSPLcom/android/server/am/BatteryStatsService$1;-><init>(Lcom/android/server/am/BatteryStatsService;)V HPLcom/android/server/am/BatteryStatsService$1;->interfaceClassDataActivityChanged(IZJI)V @@ -6413,12 +6649,13 @@ HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$RWU61Ka7zm9022tMfT209J HSPLcom/android/server/am/BatteryStatsService;->$r8$lambda$S6yftCQQiOHD_m1tY-NXSWfcBoM(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJJJJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$S89WVhV2FLKPEzmbv3kjBO4ChRg(Lcom/android/server/am/BatteryStatsService;IJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$S8sht4PcVeZ5ntYFOOYly2DXizM(Lcom/android/server/am/BatteryStatsService;IIJJJ)V +PLcom/android/server/am/BatteryStatsService;->$r8$lambda$SOiAOzUkw9wUgix5oeGcVSHp6xc(Lcom/android/server/am/BatteryStatsService;JJ)V HSPLcom/android/server/am/BatteryStatsService;->$r8$lambda$SPsQZYURQt6LsnbttcdFzU9BdmQ(Lcom/android/server/am/BatteryStatsService;IIJJ)V HSPLcom/android/server/am/BatteryStatsService;->$r8$lambda$TIkKaMJpHsP3p4WZjICR4yk2KNw(Lcom/android/server/am/BatteryStatsService;)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$TW0fn6Fwob1ftDzggTvTeL88e_U(Lcom/android/server/am/BatteryStatsService;IJJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$TaD80T0KfmTuenSo_Eb0P6C23sU(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;IJJ)V HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$Uc72kaYWnB452VquAhbUH1Wc61E(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;JJ)V -PLcom/android/server/am/BatteryStatsService;->$r8$lambda$WjTw-lhr-hYdByDp_KhGdjDKoao(Lcom/android/server/am/BatteryStatsService;JJJ)V +HSPLcom/android/server/am/BatteryStatsService;->$r8$lambda$WjTw-lhr-hYdByDp_KhGdjDKoao(Lcom/android/server/am/BatteryStatsService;JJJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$XUGlQUm0Lj8_UzwhHw0CuZiNcTY(Lcom/android/server/am/BatteryStatsService;IJJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$YEYQLc5bNv078ftbn6QYFhPWW5A(Lcom/android/server/am/BatteryStatsService;ZIJJ)V HSPLcom/android/server/am/BatteryStatsService;->$r8$lambda$YGIVmASaoTlf9BiNWQ308V_nw7U(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;Ljava/lang/String;JJ)V @@ -6437,6 +6674,7 @@ HPLcom/android/server/am/BatteryStatsService;->$r8$lambda$g8kGiaZDv38qQBzGzVvrn- PLcom/android/server/am/BatteryStatsService;->$r8$lambda$gmev1-BwCGbLsnfSSb7qCbQ_OWk(Lcom/android/server/am/BatteryStatsService;IJJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$gn7bIn5qOvv9XgKiAvolI3SpdvI(Lcom/android/server/am/BatteryStatsService;IJJ)V HSPLcom/android/server/am/BatteryStatsService;->$r8$lambda$h8x6o9upQzsAxj9qeRERGr3yyh4(Lcom/android/server/am/BatteryStatsService;IILjava/lang/String;Ljava/lang/String;IJJ)V +PLcom/android/server/am/BatteryStatsService;->$r8$lambda$hXXk5LOMoq4wrnrjsnrbfcQ0vW8(Lcom/android/server/am/BatteryStatsService;JJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$hz1NYqq0cpD98Z9MTzJg0WISuQk(Lcom/android/server/am/BatteryStatsService;Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;JJ)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$i9I9AkZ7GkMCJrn_094QM2Bu5Ik(Lcom/android/server/am/BatteryStatsService;ILjava/lang/String;J)V PLcom/android/server/am/BatteryStatsService;->$r8$lambda$jgrpNidgVGaILuQ3hrDbWKA9Uns(Lcom/android/server/am/BatteryStatsService;IJJ)V @@ -6471,16 +6709,18 @@ HSPLcom/android/server/am/BatteryStatsService;-><init>(Landroid/content/Context; HSPLcom/android/server/am/BatteryStatsService;->addIsolatedUid(II)V HPLcom/android/server/am/BatteryStatsService;->awaitCompletion()V+]Landroid/os/Handler;Landroid/os/Handler;]Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch; PLcom/android/server/am/BatteryStatsService;->awaitUninterruptibly(Ljava/util/concurrent/Future;)V +PLcom/android/server/am/BatteryStatsService;->computeBatteryScreenOffRealtimeMs()J PLcom/android/server/am/BatteryStatsService;->computeChargeTimeRemaining()J HPLcom/android/server/am/BatteryStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/am/BatteryStatsService;->dumpHelp(Ljava/io/PrintWriter;)V HSPLcom/android/server/am/BatteryStatsService;->fillLowPowerStats(Lcom/android/internal/os/RpmStats;)V+]Lcom/android/internal/os/RpmStats$PowerStateSubsystem;Lcom/android/internal/os/RpmStats$PowerStateSubsystem;]Lcom/android/internal/os/RpmStats;Lcom/android/internal/os/RpmStats;]Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;]Landroid/power/PowerStatsInternal;Lcom/android/server/powerstats/PowerStatsService$LocalService;]Ljava/util/Map;Ljava/util/HashMap; HSPLcom/android/server/am/BatteryStatsService;->fillRailDataStats(Lcom/android/internal/os/RailStats;)V HSPLcom/android/server/am/BatteryStatsService;->getActiveStatistics()Lcom/android/server/power/stats/BatteryStatsImpl; -PLcom/android/server/am/BatteryStatsService;->getBatteryUsageStats(Ljava/util/List;)Ljava/util/List; +HPLcom/android/server/am/BatteryStatsService;->getBatteryUsageStats(Ljava/util/List;)Ljava/util/List; PLcom/android/server/am/BatteryStatsService;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats; PLcom/android/server/am/BatteryStatsService;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats; HPLcom/android/server/am/BatteryStatsService;->getHealthStatsForUidLocked(I)Landroid/os/health/HealthStatsParceler; +PLcom/android/server/am/BatteryStatsService;->getScreenOffDischargeMah()J HSPLcom/android/server/am/BatteryStatsService;->getService()Lcom/android/internal/app/IBatteryStats; PLcom/android/server/am/BatteryStatsService;->getServiceType()I HSPLcom/android/server/am/BatteryStatsService;->getSubsystemLowPowerStats()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;]Landroid/power/PowerStatsInternal;Lcom/android/server/powerstats/PowerStatsService$LocalService;]Ljava/util/Map;Ljava/util/HashMap; @@ -6498,7 +6738,7 @@ HPLcom/android/server/am/BatteryStatsService;->lambda$noteBleScanStarted$87(Land HPLcom/android/server/am/BatteryStatsService;->lambda$noteBleScanStopped$88(Landroid/os/WorkSource;ZJJ)V HPLcom/android/server/am/BatteryStatsService;->lambda$noteChangeWakelockFromSource$25(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V HPLcom/android/server/am/BatteryStatsService;->lambda$noteConnectivityChanged$42(ILjava/lang/String;JJ)V -PLcom/android/server/am/BatteryStatsService;->lambda$noteCurrentTimeChanged$98(JJJ)V +HSPLcom/android/server/am/BatteryStatsService;->lambda$noteCurrentTimeChanged$98(JJJ)V PLcom/android/server/am/BatteryStatsService;->lambda$noteDeviceIdleMode$84(ILjava/lang/String;IJJ)V HSPLcom/android/server/am/BatteryStatsService;->lambda$noteEvent$13(ILjava/lang/String;IJJ)V PLcom/android/server/am/BatteryStatsService;->lambda$noteFlashlightOff$58(IJJ)V @@ -6531,6 +6771,8 @@ HSPLcom/android/server/am/BatteryStatsService;->lambda$noteProcessDied$100(II)V HSPLcom/android/server/am/BatteryStatsService;->lambda$noteProcessFinish$11(Ljava/lang/String;IJJ)V HSPLcom/android/server/am/BatteryStatsService;->lambda$noteProcessStart$8(Ljava/lang/String;IJJ)V PLcom/android/server/am/BatteryStatsService;->lambda$noteResetAudio$55(JJ)V +PLcom/android/server/am/BatteryStatsService;->lambda$noteResetCamera$61(JJ)V +PLcom/android/server/am/BatteryStatsService;->lambda$noteResetFlashlight$62(JJ)V HSPLcom/android/server/am/BatteryStatsService;->lambda$noteScreenBrightness$38(IJJ)V HSPLcom/android/server/am/BatteryStatsService;->lambda$noteScreenState$37(IJJJ)V HSPLcom/android/server/am/BatteryStatsService;->lambda$noteServiceStartLaunch$104(ILjava/lang/String;Ljava/lang/String;JJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv; @@ -6589,7 +6831,7 @@ PLcom/android/server/am/BatteryStatsService;->noteBluetoothOff(IILjava/lang/Stri HSPLcom/android/server/am/BatteryStatsService;->noteBluetoothOn(IILjava/lang/String;)V HPLcom/android/server/am/BatteryStatsService;->noteChangeWakelockFromSource(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V PLcom/android/server/am/BatteryStatsService;->noteConnectivityChanged(ILjava/lang/String;)V -PLcom/android/server/am/BatteryStatsService;->noteCurrentTimeChanged()V +HSPLcom/android/server/am/BatteryStatsService;->noteCurrentTimeChanged()V HPLcom/android/server/am/BatteryStatsService;->noteDeviceIdleMode(ILjava/lang/String;I)V HSPLcom/android/server/am/BatteryStatsService;->noteEvent(ILjava/lang/String;I)V PLcom/android/server/am/BatteryStatsService;->noteFlashlightOff(I)V @@ -6622,6 +6864,8 @@ HSPLcom/android/server/am/BatteryStatsService;->noteProcessDied(II)V HSPLcom/android/server/am/BatteryStatsService;->noteProcessFinish(Ljava/lang/String;I)V HSPLcom/android/server/am/BatteryStatsService;->noteProcessStart(Ljava/lang/String;I)V PLcom/android/server/am/BatteryStatsService;->noteResetAudio()V +PLcom/android/server/am/BatteryStatsService;->noteResetCamera()V +PLcom/android/server/am/BatteryStatsService;->noteResetFlashlight()V HSPLcom/android/server/am/BatteryStatsService;->noteScreenBrightness(I)V HSPLcom/android/server/am/BatteryStatsService;->noteScreenState(I)V HSPLcom/android/server/am/BatteryStatsService;->noteServiceStartLaunch(ILjava/lang/String;Ljava/lang/String;)V+]Landroid/os/Handler;Landroid/os/Handler; @@ -6648,8 +6892,8 @@ HPLcom/android/server/am/BatteryStatsService;->noteVibratorOff(I)V HPLcom/android/server/am/BatteryStatsService;->noteVibratorOn(IJ)V HPLcom/android/server/am/BatteryStatsService;->noteWakeUp(Ljava/lang/String;I)V HPLcom/android/server/am/BatteryStatsService;->noteWakupAlarm(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V -PLcom/android/server/am/BatteryStatsService;->noteWifiMulticastDisabled(I)V -PLcom/android/server/am/BatteryStatsService;->noteWifiMulticastEnabled(I)V +HPLcom/android/server/am/BatteryStatsService;->noteWifiMulticastDisabled(I)V +HPLcom/android/server/am/BatteryStatsService;->noteWifiMulticastEnabled(I)V PLcom/android/server/am/BatteryStatsService;->noteWifiOff()V PLcom/android/server/am/BatteryStatsService;->noteWifiOn()V HPLcom/android/server/am/BatteryStatsService;->noteWifiRadioPowerState(IJI)V @@ -6676,11 +6920,15 @@ HSPLcom/android/server/am/BatteryStatsService;->systemServicesReady()V HPLcom/android/server/am/BatteryStatsService;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler; HPLcom/android/server/am/BatteryStatsService;->updateBatteryStatsOnActivityUsage(Ljava/lang/String;Ljava/lang/String;IIZ)V HPLcom/android/server/am/BatteryStatsService;->updateForegroundTimeIfOnBattery(Ljava/lang/String;IJ)V +PLcom/android/server/am/BroadcastConstants$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/BroadcastConstants;)V +PLcom/android/server/am/BroadcastConstants$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/am/BroadcastConstants$SettingsObserver;-><init>(Lcom/android/server/am/BroadcastConstants;Landroid/os/Handler;)V +PLcom/android/server/am/BroadcastConstants;->$r8$lambda$9VSMzHigOEc4jzf5GHMd625VvDA(Lcom/android/server/am/BroadcastConstants;Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/am/BroadcastConstants;-><clinit>()V HSPLcom/android/server/am/BroadcastConstants;-><init>(Ljava/lang/String;)V -PLcom/android/server/am/BroadcastConstants;->dump(Ljava/io/PrintWriter;)V HSPLcom/android/server/am/BroadcastConstants;->startObserving(Landroid/os/Handler;Landroid/content/ContentResolver;)V +PLcom/android/server/am/BroadcastConstants;->updateDeviceConfigConstants(Landroid/provider/DeviceConfig$Properties;)V +PLcom/android/server/am/BroadcastConstants;->updateSettingsConstants()V HSPLcom/android/server/am/BroadcastDispatcher$1;-><init>(Lcom/android/server/am/BroadcastDispatcher;)V HPLcom/android/server/am/BroadcastDispatcher$1;->broadcastAlarmComplete(I)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/am/BroadcastDispatcher$1;->broadcastAlarmPending(I)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -6693,7 +6941,7 @@ PLcom/android/server/am/BroadcastDispatcher$Deferrals;->dumpLocked(Lcom/android/ PLcom/android/server/am/BroadcastDispatcher$Deferrals;->size()I PLcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;->-$$Nest$mgetBootCompletedBroadcastsUidsSize(Lcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;Ljava/lang/String;)I HSPLcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;-><init>(I)V -HSPLcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;->dequeueDeferredBootCompletedBroadcast(Landroid/util/SparseArray;Landroid/util/SparseBooleanArray;Z)Lcom/android/server/am/BroadcastRecord;+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;->dequeueDeferredBootCompletedBroadcast(Landroid/util/SparseArray;Landroid/util/SparseBooleanArray;Z)Lcom/android/server/am/BroadcastRecord;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray; HSPLcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;->dequeueDeferredBootCompletedBroadcast(Z)Lcom/android/server/am/BroadcastRecord; PLcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;->dump(Lcom/android/server/am/BroadcastDispatcher$Dumper;Ljava/lang/String;)V PLcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V @@ -6723,7 +6971,7 @@ HSPLcom/android/server/am/BroadcastDispatcher;->dequeueDeferredBootCompletedBroa PLcom/android/server/am/BroadcastDispatcher;->describeStateLocked()Ljava/lang/String; PLcom/android/server/am/BroadcastDispatcher;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V PLcom/android/server/am/BroadcastDispatcher;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/text/SimpleDateFormat;)Z -HSPLcom/android/server/am/BroadcastDispatcher;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V+]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord;]Lcom/android/server/am/BroadcastDispatcher;Lcom/android/server/am/BroadcastDispatcher;]Lcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;Lcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/am/BroadcastDispatcher;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord;]Lcom/android/server/am/BroadcastDispatcher;Lcom/android/server/am/BroadcastDispatcher;]Lcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser;Lcom/android/server/am/BroadcastDispatcher$DeferredBootCompletedBroadcastPerUser; HSPLcom/android/server/am/BroadcastDispatcher;->findUidLocked(I)Lcom/android/server/am/BroadcastDispatcher$Deferrals; HSPLcom/android/server/am/BroadcastDispatcher;->findUidLocked(ILjava/util/ArrayList;)Lcom/android/server/am/BroadcastDispatcher$Deferrals;+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/BroadcastDispatcher;->getActiveBroadcastLocked()Lcom/android/server/am/BroadcastRecord; @@ -6752,12 +7000,11 @@ PLcom/android/server/am/BroadcastFilter;->dumpBroadcastFilterState(Ljava/io/Prin PLcom/android/server/am/BroadcastFilter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V PLcom/android/server/am/BroadcastFilter;->dumpInReceiverList(Ljava/io/PrintWriter;Landroid/util/Printer;Ljava/lang/String;)V HPLcom/android/server/am/BroadcastFilter;->toString()Ljava/lang/String; -HSPLcom/android/server/am/BroadcastHistory;-><clinit>()V -HSPLcom/android/server/am/BroadcastHistory;-><init>()V HSPLcom/android/server/am/BroadcastHistory;->addBroadcastToHistoryLocked(Lcom/android/server/am/BroadcastRecord;)V+]Lcom/android/server/am/BroadcastHistory;Lcom/android/server/am/BroadcastHistory;]Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord; PLcom/android/server/am/BroadcastHistory;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V PLcom/android/server/am/BroadcastHistory;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/text/SimpleDateFormat;ZZ)Z HSPLcom/android/server/am/BroadcastHistory;->ringAdvance(III)I +HSPLcom/android/server/am/BroadcastQueue;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;Ljava/lang/String;Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastHistory;)V HPLcom/android/server/am/BroadcastQueue;->backgroundServicesFinishedLocked(I)V HSPLcom/android/server/am/BroadcastQueue;->start(Landroid/content/ContentResolver;)V PLcom/android/server/am/BroadcastQueue;->toString()Ljava/lang/String; @@ -6773,13 +7020,13 @@ HSPLcom/android/server/am/BroadcastQueueImpl;->addBroadcastToHistoryLocked(Lcom/ HPLcom/android/server/am/BroadcastQueueImpl;->backgroundServicesFinishedLocked(I)V+]Lcom/android/server/am/BroadcastDispatcher;Lcom/android/server/am/BroadcastDispatcher; PLcom/android/server/am/BroadcastQueueImpl;->broadcastTimeoutLocked(Z)V HPLcom/android/server/am/BroadcastQueueImpl;->cancelBroadcastTimeoutLocked()V+]Landroid/os/Handler;Lcom/android/server/am/BroadcastQueueImpl$BroadcastHandler; +PLcom/android/server/am/BroadcastQueueImpl;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;I)Z HPLcom/android/server/am/BroadcastQueueImpl;->createBroadcastTraceTitle(Lcom/android/server/am/BroadcastRecord;I)Ljava/lang/String;+]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/content/Intent;Landroid/content/Intent; -HSPLcom/android/server/am/BroadcastQueueImpl;->deliverToRegisteredReceiverLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;ZI)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer;]Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastSkipPolicy;]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy; +HSPLcom/android/server/am/BroadcastQueueImpl;->deliverToRegisteredReceiverLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;ZI)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer;]Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastSkipPolicy;]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/IIntentReceiver;Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;,Landroid/content/IIntentReceiver$Stub$Proxy;]Ljava/util/function/BiFunction;Lcom/android/server/om/OverlayManagerService$$ExternalSyntheticLambda4;]Landroid/content/Intent;Landroid/content/Intent; PLcom/android/server/am/BroadcastQueueImpl;->describeStateLocked()Ljava/lang/String; PLcom/android/server/am/BroadcastQueueImpl;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V -PLcom/android/server/am/BroadcastQueueImpl;->dumpLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;Z)Z HSPLcom/android/server/am/BroadcastQueueImpl;->enqueueBroadcastHelper(Lcom/android/server/am/BroadcastRecord;)V -HSPLcom/android/server/am/BroadcastQueueImpl;->enqueueBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V+]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/am/BroadcastQueueImpl;->enqueueBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V+]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord; HSPLcom/android/server/am/BroadcastQueueImpl;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V HSPLcom/android/server/am/BroadcastQueueImpl;->enqueueParallelBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V HPLcom/android/server/am/BroadcastQueueImpl;->finishReceiverLocked(Lcom/android/server/am/BroadcastRecord;ILjava/lang/String;Landroid/os/Bundle;ZZ)Z+]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Lcom/android/server/am/BroadcastDispatcher;Lcom/android/server/am/BroadcastDispatcher;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; @@ -6799,12 +7046,14 @@ HSPLcom/android/server/am/BroadcastQueueImpl;->maybeReportBroadcastDispatchedEve HSPLcom/android/server/am/BroadcastQueueImpl;->maybeScheduleTempAllowlistLocked(ILcom/android/server/am/BroadcastRecord;Landroid/app/BroadcastOptions;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; PLcom/android/server/am/BroadcastQueueImpl;->nextSplitTokenLocked()I HSPLcom/android/server/am/BroadcastQueueImpl;->onApplicationAttachedLocked(Lcom/android/server/am/ProcessRecord;)Z+]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl; +HPLcom/android/server/am/BroadcastQueueImpl;->onApplicationCleanupLocked(Lcom/android/server/am/ProcessRecord;)V +PLcom/android/server/am/BroadcastQueueImpl;->onApplicationProblemLocked(Lcom/android/server/am/ProcessRecord;)V HSPLcom/android/server/am/BroadcastQueueImpl;->performReceiveLocked(Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZIIIJJ)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/IIntentReceiver;megamorphic_types]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/content/Intent;Landroid/content/Intent; PLcom/android/server/am/BroadcastQueueImpl;->postActivityStartTokenRemoval(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V -HSPLcom/android/server/am/BroadcastQueueImpl;->prepareReceiverIntent(Landroid/content/Intent;Landroid/os/Bundle;)Landroid/content/Intent; -HPLcom/android/server/am/BroadcastQueueImpl;->processCurBroadcastLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/ProcessRecord;)V+]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; +HSPLcom/android/server/am/BroadcastQueueImpl;->prepareReceiverIntent(Landroid/content/Intent;Landroid/os/Bundle;)Landroid/content/Intent;+]Landroid/content/Intent;Landroid/content/Intent; +HPLcom/android/server/am/BroadcastQueueImpl;->processCurBroadcastLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/ProcessRecord;)V+]Lcom/android/server/am/ProcessReceiverRecord;Lcom/android/server/am/ProcessReceiverRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/am/BroadcastQueueImpl;->processNextBroadcast(Z)V+]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl; -HSPLcom/android/server/am/BroadcastQueueImpl;->processNextBroadcastLocked(ZZ)V+]Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$PidMap;]Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/server/am/ProcessErrorStateRecord;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/BroadcastDispatcher;Lcom/android/server/am/BroadcastDispatcher;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastSkipPolicy;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/internal/app/ProcessMap;Lcom/android/server/am/ProcessList$MyProcessMap;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; +HSPLcom/android/server/am/BroadcastQueueImpl;->processNextBroadcastLocked(ZZ)V+]Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$PidMap;]Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/server/am/ProcessErrorStateRecord;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/BroadcastDispatcher;Lcom/android/server/am/BroadcastDispatcher;]Lcom/android/server/am/BroadcastQueueImpl;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastSkipPolicy;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/ImmutableCollections$ListN;]Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/internal/app/ProcessMap;Lcom/android/server/am/ProcessList$MyProcessMap;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; HSPLcom/android/server/am/BroadcastQueueImpl;->replaceBroadcastLocked(Ljava/util/ArrayList;Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;)Lcom/android/server/am/BroadcastRecord; PLcom/android/server/am/BroadcastQueueImpl;->replaceOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)Lcom/android/server/am/BroadcastRecord; HSPLcom/android/server/am/BroadcastQueueImpl;->replaceParallelBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)Lcom/android/server/am/BroadcastRecord; @@ -6818,10 +7067,12 @@ HSPLcom/android/server/am/BroadcastQueueImpl;->updateUidReadyForBootCompletedBro HSPLcom/android/server/am/BroadcastRecord;-><clinit>()V HSPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZLandroid/os/IBinder;ZLjava/util/function/BiFunction;)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Landroid/content/Intent;Landroid/content/Intent; HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastRecord;Landroid/content/Intent;)V+]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/am/BroadcastRecord;->applySingletonPolicy(Lcom/android/server/am/ActivityManagerService;)V+]Ljava/util/List;Ljava/util/ImmutableCollections$ListN;,Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/BroadcastRecord;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z +PLcom/android/server/am/BroadcastRecord;->deliveryStateToString(I)Ljava/lang/String; HPLcom/android/server/am/BroadcastRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/text/SimpleDateFormat;)V PLcom/android/server/am/BroadcastRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V -PLcom/android/server/am/BroadcastRecord;->getHostingRecordTriggerType()Ljava/lang/String; +HPLcom/android/server/am/BroadcastRecord;->getHostingRecordTriggerType()Ljava/lang/String; HSPLcom/android/server/am/BroadcastRecord;->getReceiverUid(Ljava/lang/Object;)I HSPLcom/android/server/am/BroadcastRecord;->maybeStripForHistory()Lcom/android/server/am/BroadcastRecord; PLcom/android/server/am/BroadcastRecord;->splitDeferredBootCompletedBroadcastLocked(Landroid/app/ActivityManagerInternal;I)Landroid/util/SparseArray; @@ -6834,7 +7085,7 @@ HPLcom/android/server/am/BroadcastSkipPolicy;->noteOpForManifestReceiver(ILcom/a HPLcom/android/server/am/BroadcastSkipPolicy;->noteOpForManifestReceiverInner(ILcom/android/server/am/BroadcastRecord;Landroid/content/pm/ResolveInfo;Landroid/content/ComponentName;Ljava/lang/String;)Z HSPLcom/android/server/am/BroadcastSkipPolicy;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;I)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/BroadcastSkipPolicy;->shouldSkip(Lcom/android/server/am/BroadcastRecord;Landroid/content/pm/ResolveInfo;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastSkipPolicy;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/firewall/IntentFirewall;Lcom/android/server/firewall/IntentFirewall;]Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/server/am/ProcessErrorStateRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/Intent;Landroid/content/Intent;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager; -HSPLcom/android/server/am/BroadcastSkipPolicy;->shouldSkip(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastSkipPolicy;]Lcom/android/server/firewall/IntentFirewall;Lcom/android/server/firewall/IntentFirewall;]Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/server/am/ProcessErrorStateRecord;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/am/BroadcastSkipPolicy;->shouldSkip(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/BroadcastSkipPolicy;Lcom/android/server/am/BroadcastSkipPolicy;]Lcom/android/server/firewall/IntentFirewall;Lcom/android/server/firewall/IntentFirewall;]Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/server/am/ProcessErrorStateRecord;]Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastQueueImpl;]Landroid/app/BroadcastOptions;Landroid/app/BroadcastOptions;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/BroadcastStats$1;-><init>()V HPLcom/android/server/am/BroadcastStats$1;->compare(Lcom/android/server/am/BroadcastStats$ActionEntry;Lcom/android/server/am/BroadcastStats$ActionEntry;)I HPLcom/android/server/am/BroadcastStats$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I @@ -6846,6 +7097,21 @@ HSPLcom/android/server/am/BroadcastStats;-><init>()V HPLcom/android/server/am/BroadcastStats;->addBackgroundCheckViolation(Ljava/lang/String;Ljava/lang/String;)V HSPLcom/android/server/am/BroadcastStats;->addBroadcast(Ljava/lang/String;Ljava/lang/String;IIJ)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; HPLcom/android/server/am/BroadcastStats;->dumpStats(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Z +PLcom/android/server/am/BugReportHandlerUtil$BugreportHandlerResponseBroadcastReceiver;-><init>(Ljava/lang/String;I)V +PLcom/android/server/am/BugReportHandlerUtil$BugreportHandlerResponseBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +PLcom/android/server/am/BugReportHandlerUtil;->-$$Nest$smlaunchBugReportHandlerApp(Landroid/content/Context;Ljava/lang/String;I)V +PLcom/android/server/am/BugReportHandlerUtil;->getBugReportHandlerAppReceivers(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/List; +PLcom/android/server/am/BugReportHandlerUtil;->getBugReportHandlerAppResponseReceivers(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/List; +PLcom/android/server/am/BugReportHandlerUtil;->getCustomBugReportHandlerApp(Landroid/content/Context;)Ljava/lang/String; +PLcom/android/server/am/BugReportHandlerUtil;->getCustomBugReportHandlerUser(Landroid/content/Context;)I +PLcom/android/server/am/BugReportHandlerUtil;->getDefaultBugReportHandlerApp(Landroid/content/Context;)Ljava/lang/String; +PLcom/android/server/am/BugReportHandlerUtil;->isBugReportHandlerEnabled(Landroid/content/Context;)Z +PLcom/android/server/am/BugReportHandlerUtil;->isBugreportWhitelistedApp(Ljava/lang/String;)Z +PLcom/android/server/am/BugReportHandlerUtil;->isShellApp(Ljava/lang/String;)Z +PLcom/android/server/am/BugReportHandlerUtil;->isValidBugReportHandlerApp(Ljava/lang/String;)Z +PLcom/android/server/am/BugReportHandlerUtil;->launchBugReportHandlerApp(Landroid/content/Context;)Z +PLcom/android/server/am/BugReportHandlerUtil;->launchBugReportHandlerApp(Landroid/content/Context;Ljava/lang/String;I)V +PLcom/android/server/am/BugReportHandlerUtil;->resetCustomBugreportHandlerAppAndUser(Landroid/content/Context;)V HSPLcom/android/server/am/CacheOomRanker$1;-><init>(Lcom/android/server/am/CacheOomRanker;)V PLcom/android/server/am/CacheOomRanker$1;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/am/CacheOomRanker$CacheUseComparator;-><init>()V @@ -6924,7 +7190,7 @@ HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->freezeProcess(Lcom/a PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->getUnfreezeReasonCode(I)I HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->handleMessage(Landroid/os/Message;)V PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->onBlockingFileLock(I)V -PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->reportUnfreeze(IILjava/lang/String;I)V +HPLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->reportUnfreeze(IILjava/lang/String;I)V PLcom/android/server/am/CachedAppOptimizer$FreezeHandler;->rescheduleFreeze(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V HSPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;)V HSPLcom/android/server/am/CachedAppOptimizer$MemCompactionHandler;-><init>(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$MemCompactionHandler-IA;)V @@ -6961,12 +7227,12 @@ HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mgetPerProcessAggregatedCo HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mgetPerSourceAggregatedCompactStat(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$CompactSource;)Lcom/android/server/am/CachedAppOptimizer$AggregatedSourceCompactionStats;+]Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer; PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mresolveCompactActionForProfile(Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer$CompactProfile;)Lcom/android/server/am/CachedAppOptimizer$CompactAction; PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mupdateCompactStatsdSampleRate(Lcom/android/server/am/CachedAppOptimizer;)V +PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mupdateFreezerDebounceTimeout(Lcom/android/server/am/CachedAppOptimizer;)V PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mupdateFullDeltaRssThrottle(Lcom/android/server/am/CachedAppOptimizer;)V PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mupdateFullRssThrottle(Lcom/android/server/am/CachedAppOptimizer;)V PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mupdateProcStateThrottle(Lcom/android/server/am/CachedAppOptimizer;)V PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$mupdateUseCompaction(Lcom/android/server/am/CachedAppOptimizer;)V HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smcompactProcess(II)V -PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smfreezeBinder(IZ)I PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smgetBinderFreezeInfo(I)I PLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smgetMemoryFreedCompaction()J HPLcom/android/server/am/CachedAppOptimizer;->-$$Nest$smgetUsedZramMemory()J @@ -6997,7 +7263,7 @@ PLcom/android/server/am/CachedAppOptimizer;->onWakefulnessChanged(I)V HSPLcom/android/server/am/CachedAppOptimizer;->parseProcStateThrottle(Ljava/lang/String;)Z HPLcom/android/server/am/CachedAppOptimizer;->resolveCompactActionForProfile(Lcom/android/server/am/CachedAppOptimizer$CompactProfile;)Lcom/android/server/am/CachedAppOptimizer$CompactAction; HPLcom/android/server/am/CachedAppOptimizer;->shouldCompactBFGS(Lcom/android/server/am/ProcessRecord;J)Z -PLcom/android/server/am/CachedAppOptimizer;->shouldCompactPersistent(Lcom/android/server/am/ProcessRecord;J)Z +HPLcom/android/server/am/CachedAppOptimizer;->shouldCompactPersistent(Lcom/android/server/am/ProcessRecord;J)Z HPLcom/android/server/am/CachedAppOptimizer;->traceAppFreeze(Ljava/lang/String;IZ)V HSPLcom/android/server/am/CachedAppOptimizer;->unfreezeAppInternalLSP(Lcom/android/server/am/ProcessRecord;I)V+]Landroid/os/Handler;Lcom/android/server/am/CachedAppOptimizer$FreezeHandler;]Lcom/android/server/am/ProcessCachedOptimizerRecord;Lcom/android/server/am/ProcessCachedOptimizerRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; HSPLcom/android/server/am/CachedAppOptimizer;->unfreezeAppLSP(Lcom/android/server/am/ProcessRecord;I)V+]Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer; @@ -7017,6 +7283,8 @@ HSPLcom/android/server/am/CachedAppOptimizer;->updateUseCompaction()V HSPLcom/android/server/am/CachedAppOptimizer;->updateUseFreezer()V HSPLcom/android/server/am/CachedAppOptimizer;->useCompaction()Z HSPLcom/android/server/am/CachedAppOptimizer;->useFreezer()Z +HPLcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda1;-><init>(Landroid/content/pm/ResolveInfo;)V +HSPLcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/ComponentAliasResolver;)V HSPLcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda3;-><init>(Landroid/content/Intent;Ljava/lang/String;III)V HSPLcom/android/server/am/ComponentAliasResolver$1;-><init>(Lcom/android/server/am/ComponentAliasResolver;)V HSPLcom/android/server/am/ComponentAliasResolver$Resolution;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V @@ -7084,9 +7352,9 @@ HPLcom/android/server/am/ContentProviderHelper;->decProviderCountLocked(Lcom/and PLcom/android/server/am/ContentProviderHelper;->dumpProvider(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZ)Z PLcom/android/server/am/ContentProviderHelper;->dumpProvidersLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V HSPLcom/android/server/am/ContentProviderHelper;->generateApplicationProvidersLocked(Lcom/android/server/am/ProcessRecord;)Ljava/util/List;+]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/am/ProviderMap;Lcom/android/server/am/ProviderMap;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Landroid/content/pm/ParceledListSlice;Landroid/content/pm/ParceledListSlice;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ProcessProviderRecord;Lcom/android/server/am/ProcessProviderRecord;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; -HSPLcom/android/server/am/ContentProviderHelper;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;+]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; +HSPLcom/android/server/am/ContentProviderHelper;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;+]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HPLcom/android/server/am/ContentProviderHelper;->getContentProviderExternalUnchecked(Ljava/lang/String;Landroid/os/IBinder;ILjava/lang/String;I)Landroid/app/ContentProviderHolder; -HSPLcom/android/server/am/ContentProviderHelper;->getContentProviderImpl(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;ZI)Landroid/app/ContentProviderHolder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Ljava/lang/Object;Lcom/android/server/am/ContentProviderRecord;]Lcom/android/server/am/ProviderMap;Lcom/android/server/am/ProviderMap;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ContentProviderRecord;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessProviderRecord;Lcom/android/server/am/ProcessProviderRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/am/ContentProviderHelper;->getContentProviderImpl(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;ZI)Landroid/app/ContentProviderHolder;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Ljava/lang/Object;Lcom/android/server/am/ContentProviderRecord;]Lcom/android/server/am/ProviderMap;Lcom/android/server/am/ProviderMap;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ContentProviderRecord;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessProviderRecord;Lcom/android/server/am/ProcessProviderRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy; PLcom/android/server/am/ContentProviderHelper;->getProviderInfoLocked(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo; PLcom/android/server/am/ContentProviderHelper;->getProviderMap()Lcom/android/server/am/ProviderMap; HPLcom/android/server/am/ContentProviderHelper;->getProviderMimeTypeAsync(Landroid/net/Uri;ILandroid/os/RemoteCallback;)V+]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Landroid/os/RemoteCallback;Landroid/os/RemoteCallback;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; @@ -7109,6 +7377,7 @@ HPLcom/android/server/am/ContentProviderHelper;->removeContentProvider(Landroid/ HPLcom/android/server/am/ContentProviderHelper;->removeContentProviderExternalUnchecked(Ljava/lang/String;Landroid/os/IBinder;I)V HPLcom/android/server/am/ContentProviderHelper;->removeDyingProviderLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ContentProviderRecord;Z)Z+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Object;Lcom/android/server/am/ContentProviderRecord;]Lcom/android/server/am/ProviderMap;Lcom/android/server/am/ProviderMap;]Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ContentProviderConnection;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord;]Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ContentProviderRecord;]Ljava/lang/String;Ljava/lang/String;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Lcom/android/server/am/ContentProviderHelper;Lcom/android/server/am/ContentProviderHelper;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessProviderRecord;Lcom/android/server/am/ProcessProviderRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/IInterface;Landroid/content/ContentProviderProxy; HSPLcom/android/server/am/ContentProviderHelper;->requestTargetProviderPermissionsReviewIfNeededLocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/am/ProcessRecord;ILandroid/content/Context;)Z +PLcom/android/server/am/ContentProviderHelper;->resolveParentUserIdForCloneProfile(I)I PLcom/android/server/am/ContentProviderHelper;->unstableProviderDied(Landroid/os/IBinder;)V HSPLcom/android/server/am/ContentProviderRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ProviderInfo;Landroid/content/pm/ApplicationInfo;Landroid/content/ComponentName;Z)V+]Landroid/content/ComponentName;Landroid/content/ComponentName; PLcom/android/server/am/ContentProviderRecord;->addExternalProcessHandleLocked(Landroid/os/IBinder;ILjava/lang/String;)V @@ -7171,6 +7440,10 @@ HSPLcom/android/server/am/DropboxRateLimiter;->errorKey(Ljava/lang/String;Ljava/ HSPLcom/android/server/am/DropboxRateLimiter;->maybeRemoveExpiredRecords(J)V PLcom/android/server/am/DropboxRateLimiter;->recentlyDroppedCount(Lcom/android/server/am/DropboxRateLimiter$ErrorRecord;)I HSPLcom/android/server/am/DropboxRateLimiter;->shouldRateLimit(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/am/DropboxRateLimiter$RateLimitResult; +PLcom/android/server/am/ErrorDialogController$$ExternalSyntheticLambda1;-><init>()V +PLcom/android/server/am/ErrorDialogController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V +PLcom/android/server/am/ErrorDialogController$$ExternalSyntheticLambda3;-><init>()V +PLcom/android/server/am/ErrorDialogController$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V PLcom/android/server/am/ErrorDialogController$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/am/ErrorDialogController;Ljava/util/List;Ljava/util/function/Consumer;)V PLcom/android/server/am/ErrorDialogController$$ExternalSyntheticLambda5;->run()V PLcom/android/server/am/ErrorDialogController;->$r8$lambda$Vkf0tocZxbQ1ZBsu-Au2YBCGSko(Lcom/android/server/am/ErrorDialogController;)V @@ -7216,7 +7489,7 @@ HSPLcom/android/server/am/EventLogTags;->writeBootProgressAmsReady(J)V PLcom/android/server/am/EventLogTags;->writeBootProgressEnableScreen(J)V HSPLcom/android/server/am/EventLogTags;->writeConfigurationChanged(I)V HSPLcom/android/server/am/FgsTempAllowList;-><init>()V -HPLcom/android/server/am/FgsTempAllowList;->add(IJLjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Long;Ljava/lang/Long; +HSPLcom/android/server/am/FgsTempAllowList;->add(IJLjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Long;Ljava/lang/Long; PLcom/android/server/am/FgsTempAllowList;->forEach(Ljava/util/function/BiConsumer;)V HSPLcom/android/server/am/FgsTempAllowList;->get(I)Landroid/util/Pair;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Long;Ljava/lang/Long; HPLcom/android/server/am/FgsTempAllowList;->isAllowed(I)Z @@ -7228,7 +7501,7 @@ HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->writePid(Landroid/os/he HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->writePkg(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats$Uid$Pkg;)V HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeProc(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats$Uid$Proc;)V HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeServ(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats$Uid$Pkg$Serv;)V -HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeUid(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats;Landroid/os/BatteryStats$Uid;)V+]Ljava/util/Map$Entry;Landroid/util/MapCollections$MapIterator;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/HealthStatsBatteryStatsWriter;Lcom/android/server/am/HealthStatsBatteryStatsWriter;]Landroid/os/health/HealthStatsWriter;Landroid/os/health/HealthStatsWriter;]Landroid/os/BatteryStats$Uid$Wakelock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/BatteryStats$ControllerActivityCounter;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet;]Landroid/os/BatteryStats$LongCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;,Lcom/android/server/power/stats/BatteryStatsImpl$1;,Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;]Landroid/os/BatteryStats$Uid$Sensor;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;]Ljava/util/Iterator;Landroid/util/MapCollections$MapIterator; +HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeUid(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats;Landroid/os/BatteryStats$Uid;)V+]Ljava/util/Map$Entry;Landroid/util/MapCollections$MapIterator;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/am/HealthStatsBatteryStatsWriter;Lcom/android/server/am/HealthStatsBatteryStatsWriter;]Landroid/os/health/HealthStatsWriter;Landroid/os/health/HealthStatsWriter;]Landroid/os/BatteryStats$Uid$Wakelock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/BatteryStats$ControllerActivityCounter;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet;]Landroid/os/BatteryStats$LongCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;,Lcom/android/server/power/stats/BatteryStatsImpl$1;,Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;]Landroid/os/BatteryStats$Uid$Sensor;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;]Ljava/util/Iterator;Landroid/util/MapCollections$MapIterator; HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;)V HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;)V HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;I)V @@ -7321,6 +7594,8 @@ HSPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda0;-><init>(Lcom/an HSPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HSPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/OomAdjuster;)V HSPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V +HSPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda3;-><init>()V +HPLcom/android/server/am/OomAdjuster$$ExternalSyntheticLambda3;->handleMessage(Landroid/os/Message;)Z HSPLcom/android/server/am/OomAdjuster$1;-><init>(Lcom/android/server/am/OomAdjuster;)V HSPLcom/android/server/am/OomAdjuster$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;-><init>(Lcom/android/server/am/OomAdjuster;)V @@ -7339,7 +7614,7 @@ HSPLcom/android/server/am/OomAdjuster;->applyOomAdjLSP(Lcom/android/server/am/Pr HSPLcom/android/server/am/OomAdjuster;->assignCachedAdjIfNecessary(Ljava/util/ArrayList;)V+]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/OomAdjuster;->checkAndEnqueueOomAdjTargetLocked(Lcom/android/server/am/ProcessRecord;)Z HSPLcom/android/server/am/OomAdjuster;->collectReachableProcessesLocked(Landroid/util/ArraySet;Ljava/util/ArrayList;Lcom/android/server/am/ActiveUids;)Z+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ProcessProviderRecord;Lcom/android/server/am/ProcessProviderRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLcom/android/server/am/OomAdjuster;->computeOomAdjLSP(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJZZ)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ConnectionRecord;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ContentProviderConnection;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ContentProviderRecord;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ProcessCachedOptimizerRecord;Lcom/android/server/am/ProcessCachedOptimizerRecord;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;]Lcom/android/server/am/ProcessProviderRecord;Lcom/android/server/am/ProcessProviderRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/am/OomAdjuster;->computeOomAdjLSP(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJZZ)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ConnectionRecord;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ContentProviderConnection;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ContentProviderRecord;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Lcom/android/server/am/ProcessCachedOptimizerRecord;Lcom/android/server/am/ProcessCachedOptimizerRecord;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ProcessProviderRecord;Lcom/android/server/am/ProcessProviderRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/OomAdjuster;->createAdjusterThread()Lcom/android/server/ServiceThread; PLcom/android/server/am/OomAdjuster;->dumpCacheOomRankerSettings(Ljava/io/PrintWriter;)V PLcom/android/server/am/OomAdjuster;->dumpCachedAppOptimizerSettings(Ljava/io/PrintWriter;)V @@ -7362,23 +7637,23 @@ HSPLcom/android/server/am/OomAdjuster;->performUpdateOomAdjLSP(Lcom/android/serv HSPLcom/android/server/am/OomAdjuster;->performUpdateOomAdjLSP(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;JI)Z+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; HSPLcom/android/server/am/OomAdjuster;->performUpdateOomAdjPendingTargetsLocked(I)V+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/OomAdjProfiler;Lcom/android/server/am/OomAdjProfiler;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/OomAdjuster;->removeOomAdjTargetLocked(Lcom/android/server/am/ProcessRecord;Z)V -HPLcom/android/server/am/OomAdjuster;->setAppIdTempAllowlistStateLSP(IZ)V+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord; +HSPLcom/android/server/am/OomAdjuster;->setAppIdTempAllowlistStateLSP(IZ)V+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord; HSPLcom/android/server/am/OomAdjuster;->setAttachingSchedGroupLSP(Lcom/android/server/am/ProcessRecord;)V -HPLcom/android/server/am/OomAdjuster;->setUidTempAllowlistStateLSP(IZ)V +HSPLcom/android/server/am/OomAdjuster;->setUidTempAllowlistStateLSP(IZ)V HSPLcom/android/server/am/OomAdjuster;->shouldKillExcessiveProcesses(J)Z+]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController; HSPLcom/android/server/am/OomAdjuster;->shouldSkipDueToCycle(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessStateRecord;IIZ)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord; -HSPLcom/android/server/am/OomAdjuster;->updateAndTrimProcessLSP(JJJLcom/android/server/am/ActiveUids;I)Z+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord; +HSPLcom/android/server/am/OomAdjuster;->updateAndTrimProcessLSP(JJJLcom/android/server/am/ActiveUids;I)Z+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLcom/android/server/am/OomAdjuster;->updateAppFreezeStateLSP(Lcom/android/server/am/ProcessRecord;I)V+]Lcom/android/server/am/CachedAppOptimizer;Lcom/android/server/am/CachedAppOptimizer;]Lcom/android/server/am/ProcessCachedOptimizerRecord;Lcom/android/server/am/ProcessCachedOptimizerRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord; HSPLcom/android/server/am/OomAdjuster;->updateAppUidRecIfNecessaryLSP(Lcom/android/server/am/ProcessRecord;)V+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; HSPLcom/android/server/am/OomAdjuster;->updateAppUidRecLSP(Lcom/android/server/am/ProcessRecord;)V+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/am/ProcessServiceRecord;Lcom/android/server/am/ProcessServiceRecord;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; HSPLcom/android/server/am/OomAdjuster;->updateKeepWarmIfNecessaryForProcessLocked(Lcom/android/server/am/ProcessRecord;)V -HSPLcom/android/server/am/OomAdjuster;->updateOomAdjInnerLSP(ILcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;Lcom/android/server/am/ActiveUids;ZZ)V+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Lcom/android/server/am/CacheOomRanker;Lcom/android/server/am/CacheOomRanker;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ProcessCachedOptimizerRecord;Lcom/android/server/am/ProcessCachedOptimizerRecord;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/OomAdjProfiler;Lcom/android/server/am/OomAdjProfiler;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler; +HSPLcom/android/server/am/OomAdjuster;->updateOomAdjInnerLSP(ILcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;Lcom/android/server/am/ActiveUids;ZZ)V+]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/AppProfiler;Lcom/android/server/am/AppProfiler;]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Lcom/android/server/am/CacheOomRanker;Lcom/android/server/am/CacheOomRanker;]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Lcom/android/server/am/ProcessCachedOptimizerRecord;Lcom/android/server/am/ProcessCachedOptimizerRecord;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/OomAdjProfiler;Lcom/android/server/am/OomAdjProfiler;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler; HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLSP(I)V+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster; HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLSP(Lcom/android/server/am/ProcessRecord;I)Z+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster; HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(I)V HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;I)Z+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster; HSPLcom/android/server/am/OomAdjuster;->updateOomAdjPendingTargetsLocked(I)V+]Lcom/android/server/am/OomAdjuster;Lcom/android/server/am/OomAdjuster;]Landroid/util/ArraySet;Landroid/util/ArraySet; -HSPLcom/android/server/am/OomAdjuster;->updateUidsLSP(Lcom/android/server/am/ActiveUids;J)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; +HSPLcom/android/server/am/OomAdjuster;->updateUidsLSP(Lcom/android/server/am/ActiveUids;J)V+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/PackageList;-><init>(Lcom/android/server/am/ProcessRecord;)V HPLcom/android/server/am/PackageList;->clear()V HSPLcom/android/server/am/PackageList;->containsKey(Ljava/lang/Object;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; @@ -7435,7 +7710,7 @@ PLcom/android/server/am/PendingIntentRecord;->isPendingIntentBalAllowedByCaller( PLcom/android/server/am/PendingIntentRecord;->isPendingIntentBalAllowedByCaller(Landroid/os/Bundle;)Z PLcom/android/server/am/PendingIntentRecord;->isPendingIntentBalAllowedByPermission(Landroid/app/ActivityOptions;)Z HPLcom/android/server/am/PendingIntentRecord;->registerCancelListenerLocked(Lcom/android/internal/os/IResultReceiver;)V -HPLcom/android/server/am/PendingIntentRecord;->sendInner(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/IIntentReceiver;Landroid/app/PendingIntent$FinishedDispatcher;,Landroid/content/IIntentReceiver$Stub$Proxy;]Landroid/app/ActivityOptions;Landroid/app/ActivityOptions;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/PendingIntentController;Lcom/android/server/am/PendingIntentController;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/wm/SafeActivityOptions;Lcom/android/server/wm/SafeActivityOptions;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController; +HPLcom/android/server/am/PendingIntentRecord;->sendInner(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Lcom/android/server/wm/SafeActivityOptions;Lcom/android/server/wm/SafeActivityOptions;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Landroid/content/IIntentReceiver;Landroid/app/PendingIntent$FinishedDispatcher;,Landroid/content/IIntentReceiver$Stub$Proxy;]Landroid/app/ActivityOptions;Landroid/app/ActivityOptions;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/am/PendingIntentController;Lcom/android/server/am/PendingIntentController;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService;]Landroid/content/Intent;Landroid/content/Intent; HPLcom/android/server/am/PendingIntentRecord;->sendWithResult(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I HPLcom/android/server/am/PendingIntentRecord;->setAllowBgActivityStarts(Landroid/os/IBinder;I)V+]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/am/PendingIntentRecord;->setAllowlistDurationLocked(Landroid/os/IBinder;JIILjava/lang/String;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; @@ -7449,10 +7724,10 @@ HSPLcom/android/server/am/PendingStartActivityUids;->isPendingTopUid(I)Z+]Landro HSPLcom/android/server/am/PendingTempAllowlists;-><init>(Lcom/android/server/am/ActivityManagerService;)V HPLcom/android/server/am/PendingTempAllowlists;->get(I)Lcom/android/server/am/ActivityManagerService$PendingTempAllowlist; HSPLcom/android/server/am/PendingTempAllowlists;->indexOfKey(I)I -HPLcom/android/server/am/PendingTempAllowlists;->put(ILcom/android/server/am/ActivityManagerService$PendingTempAllowlist;)V -HPLcom/android/server/am/PendingTempAllowlists;->removeAt(I)V -HPLcom/android/server/am/PendingTempAllowlists;->size()I -HPLcom/android/server/am/PendingTempAllowlists;->valueAt(I)Lcom/android/server/am/ActivityManagerService$PendingTempAllowlist; +HSPLcom/android/server/am/PendingTempAllowlists;->put(ILcom/android/server/am/ActivityManagerService$PendingTempAllowlist;)V +HSPLcom/android/server/am/PendingTempAllowlists;->removeAt(I)V +HSPLcom/android/server/am/PendingTempAllowlists;->size()I +HSPLcom/android/server/am/PendingTempAllowlists;->valueAt(I)Lcom/android/server/am/ActivityManagerService$PendingTempAllowlist; PLcom/android/server/am/PersistentConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/PersistentConnection;)V PLcom/android/server/am/PersistentConnection$$ExternalSyntheticLambda0;->run()V PLcom/android/server/am/PersistentConnection$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/PersistentConnection;)V @@ -7515,7 +7790,7 @@ PLcom/android/server/am/PhantomProcessList;->dump(Ljava/io/PrintWriter;Ljava/lan PLcom/android/server/am/PhantomProcessList;->dumpPhantomeProcessLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/util/SparseArray;)V HPLcom/android/server/am/PhantomProcessList;->forEachPhantomProcessOfApp(Lcom/android/server/am/ProcessRecord;Ljava/util/function/Function;)V HPLcom/android/server/am/PhantomProcessList;->getCgroupFilePath(II)Ljava/lang/String; -HPLcom/android/server/am/PhantomProcessList;->getOrCreatePhantomProcessIfNeededLocked(Ljava/lang/String;IIZ)Lcom/android/server/am/PhantomProcessRecord;+]Lcom/android/server/am/PhantomProcessList;Lcom/android/server/am/PhantomProcessList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/Handler;Lcom/android/server/am/ProcessList$KillHandler;]Lcom/android/server/am/PhantomProcessRecord;Lcom/android/server/am/PhantomProcessRecord;]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;]Landroid/os/Looper;Landroid/os/Looper;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; +HPLcom/android/server/am/PhantomProcessList;->getOrCreatePhantomProcessIfNeededLocked(Ljava/lang/String;IIZ)Lcom/android/server/am/PhantomProcessRecord;+]Landroid/os/Handler;Lcom/android/server/am/ProcessList$KillHandler;]Lcom/android/server/am/PhantomProcessList;Lcom/android/server/am/PhantomProcessList;]Lcom/android/server/am/PhantomProcessRecord;Lcom/android/server/am/PhantomProcessRecord;]Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/Looper;Landroid/os/Looper;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord; HPLcom/android/server/am/PhantomProcessList;->getProcessName(I)Ljava/lang/String; HPLcom/android/server/am/PhantomProcessList;->isAppProcess(I)Z+]Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$PidMap; HPLcom/android/server/am/PhantomProcessList;->lookForPhantomProcessesLocked()V+]Lcom/android/server/am/ActivityManagerService$PidMap;Lcom/android/server/am/ActivityManagerService$PidMap;]Lcom/android/server/am/PhantomProcessList;Lcom/android/server/am/PhantomProcessList;]Landroid/util/SparseArray;Landroid/util/SparseArray; @@ -7620,6 +7895,14 @@ PLcom/android/server/am/ProcessErrorStateRecord;->setNotRespondingReport(Landroi PLcom/android/server/am/ProcessErrorStateRecord;->startAppProblemLSP()V HSPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/ProcessList;J)V HSPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V +HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V +HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda1;->run()V +HSPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda2;-><init>(ZLjava/util/List;Lcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;)V +HSPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V +HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V +HPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda3;->run()V +HSPLcom/android/server/am/ProcessList$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/ProcessList;)V +PLcom/android/server/am/ProcessList$$ExternalSyntheticLambda4;->onFileDescriptorEvents(Ljava/io/FileDescriptor;I)I HSPLcom/android/server/am/ProcessList$1;-><init>(Lcom/android/server/am/ProcessList;)V HPLcom/android/server/am/ProcessList$1;->handleUnsolicitedMessage(Ljava/io/DataInputStream;I)Z PLcom/android/server/am/ProcessList$1;->isReplyExpected(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;I)Z @@ -7675,14 +7958,16 @@ PLcom/android/server/am/ProcessList;->dumpOomLocked(Ljava/io/FileDescriptor;Ljav HPLcom/android/server/am/ProcessList;->dumpProcessOomList(Ljava/io/PrintWriter;Lcom/android/server/am/ActivityManagerService;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Z PLcom/android/server/am/ProcessList;->dumpProcessesLSP(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;I)V HSPLcom/android/server/am/ProcessList;->enqueueProcessChangeItemLocked(II)Lcom/android/server/am/ActivityManagerService$ProcessChangeItem;+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$UiHandler;]Landroid/os/Message;Landroid/os/Message;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HPLcom/android/server/am/ProcessList;->fillInProcMemInfoLOSP(Lcom/android/server/am/ProcessRecord;Landroid/app/ActivityManager$RunningAppProcessInfo;I)V+]Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/WindowProcessController;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord; +HPLcom/android/server/am/ProcessList;->fillInProcMemInfoLOSP(Lcom/android/server/am/ProcessRecord;Landroid/app/ActivityManager$RunningAppProcessInfo;I)V+]Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/WindowProcessController;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/ProcessList;->findAppProcessLOSP(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Lcom/android/internal/app/ProcessMap;Lcom/android/server/am/ProcessList$MyProcessMap;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; HSPLcom/android/server/am/ProcessList;->forEachLruProcessesLOSP(ZLjava/util/function/Consumer;)V+]Ljava/util/function/Consumer;megamorphic_types]Ljava/util/ArrayList;Ljava/util/ArrayList; +PLcom/android/server/am/ProcessList;->freezeBinderAndPackageCgroup(Ljava/util/ArrayList;I)V +PLcom/android/server/am/ProcessList;->freezePackageCgroup(IZ)Z HPLcom/android/server/am/ProcessList;->getBlockStateForUid(Lcom/android/server/am/UidRecord;)I PLcom/android/server/am/ProcessList;->getCachedRestoreThresholdKb()J HPLcom/android/server/am/ProcessList;->getIsolatedProcessesLocked(I)Ljava/util/List; HSPLcom/android/server/am/ProcessList;->getLRURecordForAppLOSP(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;+]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; -HSPLcom/android/server/am/ProcessList;->getLRURecordForAppLOSP(Landroid/os/IBinder;)Lcom/android/server/am/ProcessRecord;+]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; +HSPLcom/android/server/am/ProcessList;->getLRURecordForAppLOSP(Landroid/os/IBinder;)Lcom/android/server/am/ProcessRecord;+]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/IApplicationThread;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread;]Landroid/os/IInterface;Landroid/app/IApplicationThread$Stub$Proxy;,Landroid/app/ActivityThread$ApplicationThread; PLcom/android/server/am/ProcessList;->getLmkdKillCount(II)Ljava/lang/Integer; HSPLcom/android/server/am/ProcessList;->getLruProcessesLOSP()Ljava/util/ArrayList; PLcom/android/server/am/ProcessList;->getLruSeqLOSP()I @@ -7695,10 +7980,10 @@ HPLcom/android/server/am/ProcessList;->getOrCreateIsolatedUidRangeLocked(Landroi HSPLcom/android/server/am/ProcessList;->getPackageAppDataInfoMap(Landroid/content/pm/PackageManagerInternal;[Ljava/lang/String;I)Ljava/util/Map;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Map;Landroid/util/ArrayMap;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/am/ProcessList;->getProcessNamesLOSP()Lcom/android/server/am/ProcessList$MyProcessMap; HSPLcom/android/server/am/ProcessList;->getProcessRecordLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/app/ProcessMap;Lcom/android/server/am/ProcessList$MyProcessMap; -HPLcom/android/server/am/ProcessList;->getRunningAppProcessesLOSP(ZIZII)Ljava/util/List;+]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/server/am/ProcessErrorStateRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet; +HPLcom/android/server/am/ProcessList;->getRunningAppProcessesLOSP(ZIZII)Ljava/util/List;+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ProcessErrorStateRecord;Lcom/android/server/am/ProcessErrorStateRecord;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/am/ProcessList;->getUidProcStateLOSP(I)I+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids;]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord; HSPLcom/android/server/am/ProcessList;->getUidRecordLOSP(I)Lcom/android/server/am/UidRecord;+]Lcom/android/server/am/ActiveUids;Lcom/android/server/am/ActiveUids; -PLcom/android/server/am/ProcessList;->handleDyingAppDeathLocked(Lcom/android/server/am/ProcessRecord;I)Z +HPLcom/android/server/am/ProcessList;->handleDyingAppDeathLocked(Lcom/android/server/am/ProcessRecord;I)Z HSPLcom/android/server/am/ProcessList;->handlePrecedingAppDiedLocked(Lcom/android/server/am/ProcessRecord;)Z PLcom/android/server/am/ProcessList;->handlePredecessorProcDied(Lcom/android/server/am/ProcessRecord;)V HSPLcom/android/server/am/ProcessList;->handleProcessStart(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V @@ -7716,9 +8001,9 @@ HSPLcom/android/server/am/ProcessList;->killAllBackgroundProcessesExceptLSP(II)V HSPLcom/android/server/am/ProcessList;->killAppIfBgRestrictedAndCachedIdleLocked(Lcom/android/server/am/ProcessRecord;J)J HSPLcom/android/server/am/ProcessList;->killAppIfBgRestrictedAndCachedIdleLocked(Lcom/android/server/am/UidRecord;)V HPLcom/android/server/am/ProcessList;->killAppZygoteIfNeededLocked(Landroid/os/AppZygote;Z)V -PLcom/android/server/am/ProcessList;->killAppZygotesLocked(Ljava/lang/String;IIZ)V +HPLcom/android/server/am/ProcessList;->killAppZygotesLocked(Ljava/lang/String;IIZ)V PLcom/android/server/am/ProcessList;->killPackageProcessesLSP(Ljava/lang/String;IIIIILjava/lang/String;)Z -HPLcom/android/server/am/ProcessList;->killPackageProcessesLSP(Ljava/lang/String;IIIZZZZZZIILjava/lang/String;)Z +HPLcom/android/server/am/ProcessList;->killPackageProcessesLSP(Ljava/lang/String;IIIZZZZZZIILjava/lang/String;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/PackageList;Lcom/android/server/am/PackageList;]Lcom/android/server/am/ProcessStateRecord;Lcom/android/server/am/ProcessStateRecord;]Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessList;]Lcom/android/internal/app/ProcessMap;Lcom/android/server/am/ProcessList$MyProcessMap;]Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/ProcessList;->killProcessGroup(II)V HSPLcom/android/server/am/ProcessList;->lambda$handleProcessStart$1(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V HSPLcom/android/server/am/ProcessList;->lambda$killAppIfBgRestrictedAndCachedIdleLocked$4(JLcom/android/server/am/ProcessRecord;)V @@ -7741,7 +8026,8 @@ HSPLcom/android/server/am/ProcessList;->registerProcessObserver(Landroid/app/IPr HSPLcom/android/server/am/ProcessList;->remove(I)V HSPLcom/android/server/am/ProcessList;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V HPLcom/android/server/am/ProcessList;->removeProcessFromAppZygoteLocked(Lcom/android/server/am/ProcessRecord;)V -PLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZIILjava/lang/String;)Z +HPLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZIILjava/lang/String;)Z +PLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZIILjava/lang/String;Z)Z PLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZILjava/lang/String;)Z HSPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord; HSPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord; @@ -7767,9 +8053,12 @@ HSPLcom/android/server/am/ProcessList;->writeLmkd(Ljava/nio/ByteBuffer;Ljava/nio PLcom/android/server/am/ProcessList;->writeProcessOomListToProto(Landroid/util/proto/ProtoOutputStream;JLcom/android/server/am/ActivityManagerService;Ljava/util/List;ZLjava/lang/String;)Z PLcom/android/server/am/ProcessList;->writeProcessesToProtoLSP(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;)V PLcom/android/server/am/ProcessMemInfo;-><init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V -HPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HSPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/am/ProcessProfileRecord;Lcom/android/internal/app/procstats/ProcessState;Lcom/android/server/am/ProcessStatsService;Lcom/android/internal/app/procstats/ProcessState;)V +HSPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V HPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda1;-><init>(Lcom/android/internal/app/procstats/ProcessState;)V HPLcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V +HPLcom/android/server/am/ProcessProfileRecord;->$r8$lambda$QTd8xCin9bCWly26ECoZMLzrBiI(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V +HSPLcom/android/server/am/ProcessProfileRecord;->$r8$lambda$gMSRqiaQl1ZX_TCkNdU2zdeYX6c(Lcom/android/server/am/ProcessProfileRecord;Lcom/android/internal/app/procstats/ProcessState;Lcom/android/server/am/ProcessStatsService;Lcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V HSPLcom/android/server/am/ProcessProfileRecord;-><init>(Lcom/android/server/am/ProcessRecord;)V HSPLcom/android/server/am/ProcessProfileRecord;->abortNextPssTime()V HSPLcom/android/server/am/ProcessProfileRecord;->abortNextPssTime(Lcom/android/server/am/ProcessList$ProcStateMemTracker;)V @@ -7808,6 +8097,8 @@ HPLcom/android/server/am/ProcessProfileRecord;->getThread()Landroid/app/IApplica HPLcom/android/server/am/ProcessProfileRecord;->getTrimMemoryLevel()I HSPLcom/android/server/am/ProcessProfileRecord;->hasPendingUiClean()Z HSPLcom/android/server/am/ProcessProfileRecord;->init(J)V +HSPLcom/android/server/am/ProcessProfileRecord;->lambda$onProcessActive$0(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/server/am/ProcessStatsService;Lcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V +HPLcom/android/server/am/ProcessProfileRecord;->lambda$onProcessInactive$1(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V HSPLcom/android/server/am/ProcessProfileRecord;->onProcessActive(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessStatsService;)V HSPLcom/android/server/am/ProcessProfileRecord;->onProcessInactive(Lcom/android/server/am/ProcessStatsService;)V PLcom/android/server/am/ProcessProfileRecord;->reportExcessiveCpu()V @@ -7858,9 +8149,12 @@ HSPLcom/android/server/am/ProcessReceiverRecord;->numberOfReceivers()I+]Landroid HSPLcom/android/server/am/ProcessReceiverRecord;->onCleanupApplicationRecordLocked()V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HPLcom/android/server/am/ProcessReceiverRecord;->removeCurReceiver(Lcom/android/server/am/BroadcastRecord;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/am/ProcessReceiverRecord;->removeReceiver(Lcom/android/server/am/ReceiverList;)V +PLcom/android/server/am/ProcessRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/internal/app/procstats/ProcessState;)V +PLcom/android/server/am/ProcessRecord$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V +PLcom/android/server/am/ProcessRecord;->$r8$lambda$fvyQ_-q7VyByBaAuCAYngNOCuUU(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V HSPLcom/android/server/am/ProcessRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)V HPLcom/android/server/am/ProcessRecord;->addOrUpdateAllowBackgroundActivityStartsToken(Landroid/os/Binder;Landroid/os/IBinder;)V -HSPLcom/android/server/am/ProcessRecord;->addPackage(Ljava/lang/String;JLcom/android/server/am/ProcessStatsService;)Z+]Lcom/android/server/am/PackageList;Lcom/android/server/am/PackageList;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord;]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessState; +HSPLcom/android/server/am/ProcessRecord;->addPackage(Ljava/lang/String;JLcom/android/server/am/ProcessStatsService;)Z+]Lcom/android/server/am/ProcessStatsService;Lcom/android/server/am/ProcessStatsService;]Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessState;]Lcom/android/server/am/PackageList;Lcom/android/server/am/PackageList;]Lcom/android/server/am/ProcessProfileRecord;Lcom/android/server/am/ProcessProfileRecord; HPLcom/android/server/am/ProcessRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/am/ProcessRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V HPLcom/android/server/am/ProcessRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V @@ -7883,7 +8177,7 @@ PLcom/android/server/am/ProcessRecord;->getPackageListWithVersionCode()Ljava/uti HSPLcom/android/server/am/ProcessRecord;->getPid()I HSPLcom/android/server/am/ProcessRecord;->getPkgDeps()Landroid/util/ArraySet; HSPLcom/android/server/am/ProcessRecord;->getPkgList()Lcom/android/server/am/PackageList; -PLcom/android/server/am/ProcessRecord;->getProcessClassEnum()I +HPLcom/android/server/am/ProcessRecord;->getProcessClassEnum()I HSPLcom/android/server/am/ProcessRecord;->getRenderThreadTid()I HSPLcom/android/server/am/ProcessRecord;->getSeInfo()Ljava/lang/String; HSPLcom/android/server/am/ProcessRecord;->getStartElapsedTime()J @@ -7911,8 +8205,11 @@ HSPLcom/android/server/am/ProcessRecord;->isRemoved()Z PLcom/android/server/am/ProcessRecord;->isUnlocked()Z PLcom/android/server/am/ProcessRecord;->isUsingWrapper()Z PLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;IIZ)V +PLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;IIZZ)V PLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;IZ)V HPLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;Ljava/lang/String;IIZ)V +HPLcom/android/server/am/ProcessRecord;->killLocked(Ljava/lang/String;Ljava/lang/String;IIZZ)V +PLcom/android/server/am/ProcessRecord;->lambda$resetPackageList$0(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)V HSPLcom/android/server/am/ProcessRecord;->makeActive(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessStatsService;)V HSPLcom/android/server/am/ProcessRecord;->makeInactive(Lcom/android/server/am/ProcessStatsService;)V HSPLcom/android/server/am/ProcessRecord;->onCleanupApplicationRecordLSP(Lcom/android/server/am/ProcessStatsService;ZZ)Z @@ -8150,7 +8447,7 @@ PLcom/android/server/am/ProcessStatsService;->addSysMemUsageLocked(JJJJJ)V PLcom/android/server/am/ProcessStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/am/ProcessStatsService;->dumpAggregatedStats(Landroid/util/proto/ProtoOutputStream;JIJ)V PLcom/android/server/am/ProcessStatsService;->dumpAggregatedStats(Ljava/io/PrintWriter;JJLjava/lang/String;ZZZZZI)V -PLcom/android/server/am/ProcessStatsService;->dumpInner(Ljava/io/PrintWriter;[Ljava/lang/String;)V +HPLcom/android/server/am/ProcessStatsService;->dumpInner(Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/am/ProcessStatsService;->dumpProto(Ljava/io/FileDescriptor;)V HPLcom/android/server/am/ProcessStatsService;->getCommittedFilesLF(IZZ)Ljava/util/ArrayList; PLcom/android/server/am/ProcessStatsService;->getCommittedStatsMerged(JIZLjava/util/List;Lcom/android/internal/app/procstats/ProcessStats;)J @@ -8180,7 +8477,7 @@ PLcom/android/server/am/ProviderMap$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/am/ProviderMap$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLcom/android/server/am/ProviderMap;-><init>(Lcom/android/server/am/ActivityManagerService;)V PLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZILjava/util/ArrayList;)Z -HPLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZLjava/util/HashMap;Ljava/util/ArrayList;)Z+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Collection;Ljava/util/HashMap$Values;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/Iterator;Ljava/util/HashMap$ValueIterator;]Ljava/util/Set;Landroid/util/ArraySet; +HPLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZLjava/util/HashMap;Ljava/util/ArrayList;)Z+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Collection;Ljava/util/HashMap$Values;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/Iterator;Ljava/util/HashMap$ValueIterator;]Ljava/util/Set;Landroid/util/ArraySet;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/am/ProviderMap;->dumpProvider(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZ)Z HPLcom/android/server/am/ProviderMap;->dumpProvider(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ContentProviderRecord;[Ljava/lang/String;Z)V HPLcom/android/server/am/ProviderMap;->dumpProvidersByClassLocked(Ljava/io/PrintWriter;ZLjava/lang/String;Ljava/lang/String;ZLjava/util/HashMap;)Z @@ -8200,7 +8497,7 @@ HSPLcom/android/server/am/ReceiverList;-><init>(Lcom/android/server/am/ActivityM HSPLcom/android/server/am/ReceiverList;->containsFilter(Landroid/content/IntentFilter;)Z+]Ljava/util/AbstractCollection;Lcom/android/server/am/ReceiverList;]Ljava/util/AbstractList;Lcom/android/server/am/ReceiverList; HPLcom/android/server/am/ReceiverList;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V HPLcom/android/server/am/ReceiverList;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V -PLcom/android/server/am/ReceiverList;->dumpLocal(Ljava/io/PrintWriter;Ljava/lang/String;)V +HPLcom/android/server/am/ReceiverList;->dumpLocal(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/am/ReceiverList;->equals(Ljava/lang/Object;)Z HSPLcom/android/server/am/ReceiverList;->hashCode()I HPLcom/android/server/am/ReceiverList;->toString()Ljava/lang/String; @@ -8218,6 +8515,7 @@ HSPLcom/android/server/am/ServiceRecord$StartItem;-><init>(Lcom/android/server/a PLcom/android/server/am/ServiceRecord$StartItem;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJ)V PLcom/android/server/am/ServiceRecord$StartItem;->getUriPermissionsLocked()Lcom/android/server/uri/UriPermissionOwner; HPLcom/android/server/am/ServiceRecord$StartItem;->removeUriPermissionsLocked()V +PLcom/android/server/am/ServiceRecord$StartItem;->toString()Ljava/lang/String; PLcom/android/server/am/ServiceRecord;->$r8$lambda$nAQIb51kQiu1uSwcVuTz7LaRGa8(Lcom/android/server/am/ServiceRecord;)V PLcom/android/server/am/ServiceRecord;->-$$Nest$msignalForegroundServiceNotification(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;IIZ)V HSPLcom/android/server/am/ServiceRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;ILandroid/content/Intent$FilterComparison;Landroid/content/pm/ServiceInfo;ZLjava/lang/Runnable;Ljava/lang/String;ILjava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ServiceRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName; @@ -8327,7 +8625,7 @@ HSPLcom/android/server/am/UidRecord;->isSetIdle()Z HSPLcom/android/server/am/UidRecord;->noteProcAdjChanged()V HSPLcom/android/server/am/UidRecord;->removeProcess(Lcom/android/server/am/ProcessRecord;)V HSPLcom/android/server/am/UidRecord;->reset()V+]Lcom/android/server/am/UidRecord;Lcom/android/server/am/UidRecord; -HPLcom/android/server/am/UidRecord;->setCurAllowListed(Z)V +HSPLcom/android/server/am/UidRecord;->setCurAllowListed(Z)V HSPLcom/android/server/am/UidRecord;->setCurCapability(I)V HSPLcom/android/server/am/UidRecord;->setCurProcState(I)V HSPLcom/android/server/am/UidRecord;->setEphemeral(Z)V @@ -8353,10 +8651,13 @@ PLcom/android/server/am/UserController$$ExternalSyntheticLambda13;-><init>(Lcom/ PLcom/android/server/am/UserController$$ExternalSyntheticLambda13;->run()V PLcom/android/server/am/UserController$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/am/UserController;Lcom/android/server/am/UserState;Z)V PLcom/android/server/am/UserController$$ExternalSyntheticLambda14;->run()V +PLcom/android/server/am/UserController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/am/UserController;ILcom/android/server/am/UserState;Z)V PLcom/android/server/am/UserController$$ExternalSyntheticLambda2;->run()V +PLcom/android/server/am/UserController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/am/UserController;ILjava/lang/Runnable;)V PLcom/android/server/am/UserController$$ExternalSyntheticLambda3;->run()V PLcom/android/server/am/UserController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/am/UserController;I)V PLcom/android/server/am/UserController$$ExternalSyntheticLambda4;->run()V +PLcom/android/server/am/UserController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/am/UserController;ILjava/util/List;)V PLcom/android/server/am/UserController$$ExternalSyntheticLambda6;->run()V PLcom/android/server/am/UserController$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/am/UserController;)V PLcom/android/server/am/UserController$$ExternalSyntheticLambda7;->run()V @@ -8380,7 +8681,7 @@ PLcom/android/server/am/UserController$Injector;->activityManagerForceStopPackag PLcom/android/server/am/UserController$Injector;->activityManagerOnUserStopped(I)V PLcom/android/server/am/UserController$Injector;->batteryStatsServiceNoteEvent(ILjava/lang/String;I)V HSPLcom/android/server/am/UserController$Injector;->broadcastIntent(Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I -HSPLcom/android/server/am/UserController$Injector;->checkCallingPermission(Ljava/lang/String;)I +HSPLcom/android/server/am/UserController$Injector;->checkCallingPermission(Ljava/lang/String;)I+]Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActivityManagerService; HSPLcom/android/server/am/UserController$Injector;->checkComponentPermission(Ljava/lang/String;IIIZ)I PLcom/android/server/am/UserController$Injector;->checkPermissionForPreflight(Ljava/lang/String;IILjava/lang/String;)Z PLcom/android/server/am/UserController$Injector;->clearBroadcastQueueForUser(I)V @@ -8441,6 +8742,7 @@ PLcom/android/server/am/UserController;->dumpDebug(Landroid/util/proto/ProtoOutp PLcom/android/server/am/UserController;->enforceShellRestriction(Ljava/lang/String;I)V HSPLcom/android/server/am/UserController;->ensureNotSpecialUser(I)V HSPLcom/android/server/am/UserController;->exists(I)Z+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/am/UserController$Injector;Lcom/android/server/am/UserController$Injector; +PLcom/android/server/am/UserController;->expandUserId(I)[I PLcom/android/server/am/UserController;->finishUserBoot(Lcom/android/server/am/UserState;)V PLcom/android/server/am/UserController;->finishUserBoot(Lcom/android/server/am/UserState;Landroid/content/IIntentReceiver;)V PLcom/android/server/am/UserController;->finishUserStopped(Lcom/android/server/am/UserState;Z)V @@ -8463,7 +8765,7 @@ PLcom/android/server/am/UserController;->getTemporaryAppAllowlistBroadcastOption HSPLcom/android/server/am/UserController;->getUserInfo(I)Landroid/content/pm/UserInfo; PLcom/android/server/am/UserController;->getUsers()[I PLcom/android/server/am/UserController;->getUsersToStopLU(I)[I -HSPLcom/android/server/am/UserController;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I+]Lcom/android/server/am/UserController$Injector;Lcom/android/server/am/UserController$Injector;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController; +HSPLcom/android/server/am/UserController;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I+]Lcom/android/server/am/UserController$Injector;Lcom/android/server/am/UserController$Injector;]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; PLcom/android/server/am/UserController;->handleMessage(Landroid/os/Message;)Z HSPLcom/android/server/am/UserController;->hasStartedUserState(I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray; PLcom/android/server/am/UserController;->hasUserRestriction(Ljava/lang/String;I)Z @@ -8488,13 +8790,13 @@ PLcom/android/server/am/UserController;->lambda$stopSingleUserLU$8(ILjava/lang/R PLcom/android/server/am/UserController;->logUserJourneyInfo(Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;I)V PLcom/android/server/am/UserController;->logUserLifecycleEvent(III)V PLcom/android/server/am/UserController;->maybeUnlockUser(I)Z +PLcom/android/server/am/UserController;->maybeUnlockUser(ILandroid/os/IProgressListener;)Z PLcom/android/server/am/UserController;->notifyFinished(ILandroid/os/IProgressListener;)V HSPLcom/android/server/am/UserController;->onSystemReady()V HSPLcom/android/server/am/UserController;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V PLcom/android/server/am/UserController;->reportOnUserCompletedEvent(Ljava/lang/Integer;)V PLcom/android/server/am/UserController;->scheduleOnUserCompletedEvent(III)V PLcom/android/server/am/UserController;->scheduleStartProfiles()V -PLcom/android/server/am/UserController;->sendBootCompleted(Landroid/content/IIntentReceiver;)V PLcom/android/server/am/UserController;->sendForegroundProfileChanged(I)V PLcom/android/server/am/UserController;->sendLockedBootCompletedBroadcast(Landroid/content/IIntentReceiver;I)V HSPLcom/android/server/am/UserController;->sendUserSwitchBroadcasts(II)V @@ -8512,8 +8814,7 @@ PLcom/android/server/am/UserController;->startUserNoChecks(IIZLandroid/os/IProgr PLcom/android/server/am/UserController;->stopSingleUserLU(IZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)V PLcom/android/server/am/UserController;->stopUser(IZZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)I PLcom/android/server/am/UserController;->stopUsersLU(IZZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)I -PLcom/android/server/am/UserController;->unlockUser(I[BLandroid/os/IProgressListener;)Z -PLcom/android/server/am/UserController;->unlockUserCleared(I[BLandroid/os/IProgressListener;)Z +PLcom/android/server/am/UserController;->unlockUser(ILandroid/os/IProgressListener;)Z HSPLcom/android/server/am/UserController;->unsafeConvertIncomingUser(I)I+]Lcom/android/server/am/UserController;Lcom/android/server/am/UserController; HSPLcom/android/server/am/UserController;->updateCurrentProfileIds()V HSPLcom/android/server/am/UserController;->updateStartedUserArrayLU()V @@ -8525,21 +8826,43 @@ PLcom/android/server/am/UserState;->setState(I)V PLcom/android/server/am/UserState;->setState(II)Z PLcom/android/server/am/UserState;->stateToProtoEnum(I)I PLcom/android/server/am/UserState;->stateToString(I)Ljava/lang/String; +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService$$ExternalSyntheticLambda0;-><init>(Landroid/os/RemoteCallback;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService$$ExternalSyntheticLambda2;-><init>(Ljava/util/function/Consumer;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService$$ExternalSyntheticLambda2;->onResult(Landroid/os/Bundle;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->$r8$lambda$lxVClSV6bpqwpgndXre2faDqGKg(Ljava/util/function/Consumer;Landroid/os/Bundle;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->$r8$lambda$q4W88n-ZZYLKEQmlnU41pCdR6ns(Landroid/os/RemoteCallback;Ljava/lang/Integer;)V HSPLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;-><clinit>()V HSPLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;-><init>(Lcom/android/server/ambientcontext/AmbientContextManagerService;Ljava/lang/Object;I)V PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->destroyLocked()V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->ensureRemoteServiceInitiated()V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->getServerStatusCallback(Ljava/util/function/Consumer;)Landroid/os/RemoteCallback; +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->lambda$getServerStatusCallback$0(Ljava/util/function/Consumer;Landroid/os/Bundle;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->lambda$onQueryServiceStatus$2(Landroid/os/RemoteCallback;Ljava/lang/Integer;)V PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo; +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->onQueryServiceStatus([ILjava/lang/String;Landroid/os/RemoteCallback;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->onUnregisterObserver(Ljava/lang/String;)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->sendStatusCallback(Landroid/os/RemoteCallback;I)V +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->setUpServiceIfNeeded()Z +PLcom/android/server/ambientcontext/AmbientContextManagerPerUserService;->stopDetection(Ljava/lang/String;)V HSPLcom/android/server/ambientcontext/AmbientContextManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/ambientcontext/AmbientContextManagerService;)V HSPLcom/android/server/ambientcontext/AmbientContextManagerService$AmbientContextManagerInternal;-><init>(Lcom/android/server/ambientcontext/AmbientContextManagerService;)V HSPLcom/android/server/ambientcontext/AmbientContextManagerService$AmbientContextManagerInternal;-><init>(Lcom/android/server/ambientcontext/AmbientContextManagerService;Lcom/android/server/ambientcontext/AmbientContextManagerService$AmbientContextManagerInternal-IA;)V PLcom/android/server/ambientcontext/AmbientContextManagerService$AmbientContextManagerInternal;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V +PLcom/android/server/ambientcontext/AmbientContextManagerService$AmbientContextManagerInternal;->queryServiceStatus([ILjava/lang/String;Landroid/os/RemoteCallback;)V +PLcom/android/server/ambientcontext/AmbientContextManagerService$AmbientContextManagerInternal;->unregisterObserver(Ljava/lang/String;)V PLcom/android/server/ambientcontext/AmbientContextManagerService;->-$$Nest$fgetmContext(Lcom/android/server/ambientcontext/AmbientContextManagerService;)Landroid/content/Context; PLcom/android/server/ambientcontext/AmbientContextManagerService;->-$$Nest$sfgetTAG()Ljava/lang/String; HSPLcom/android/server/ambientcontext/AmbientContextManagerService;-><clinit>()V HSPLcom/android/server/ambientcontext/AmbientContextManagerService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/ambientcontext/AmbientContextManagerService;->access$000(Lcom/android/server/ambientcontext/AmbientContextManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService; +PLcom/android/server/ambientcontext/AmbientContextManagerService;->access$200(Lcom/android/server/ambientcontext/AmbientContextManagerService;Ljava/lang/String;)V +PLcom/android/server/ambientcontext/AmbientContextManagerService;->access$300(Lcom/android/server/ambientcontext/AmbientContextManagerService;Ljava/lang/String;)V PLcom/android/server/ambientcontext/AmbientContextManagerService;->access$500(Lcom/android/server/ambientcontext/AmbientContextManagerService;)Ljava/lang/Object; PLcom/android/server/ambientcontext/AmbientContextManagerService;->access$600(Lcom/android/server/ambientcontext/AmbientContextManagerService;Ljava/lang/String;Ljava/io/PrintWriter;)V +PLcom/android/server/ambientcontext/AmbientContextManagerService;->clientRemoved(ILjava/lang/String;)V +PLcom/android/server/ambientcontext/AmbientContextManagerService;->findExistingRequests(ILjava/lang/String;)Ljava/util/Set; HSPLcom/android/server/ambientcontext/AmbientContextManagerService;->newServiceLocked(IZ)Lcom/android/server/ambientcontext/AmbientContextManagerPerUserService; HSPLcom/android/server/ambientcontext/AmbientContextManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService; HSPLcom/android/server/ambientcontext/AmbientContextManagerService;->onBootPhase(I)V @@ -8549,6 +8872,21 @@ PLcom/android/server/ambientcontext/AmbientContextManagerService;->onServiceRemo PLcom/android/server/ambientcontext/AmbientContextManagerService;->onServiceRemoved(Lcom/android/server/infra/AbstractPerUserSystemService;I)V HSPLcom/android/server/ambientcontext/AmbientContextManagerService;->onStart()V PLcom/android/server/ambientcontext/AmbientContextManagerService;->restorePreviouslyEnabledClients(I)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService$$ExternalSyntheticLambda0;->runNoResult(Ljava/lang/Object;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService$$ExternalSyntheticLambda1;-><init>()V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService$$ExternalSyntheticLambda3;-><init>([ILjava/lang/String;Landroid/os/RemoteCallback;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService$$ExternalSyntheticLambda3;->runNoResult(Ljava/lang/Object;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;->$r8$lambda$gZjcdFlIXVKh4gW0G7EQJaz7yAg(Ljava/lang/String;Landroid/service/ambientcontext/IAmbientContextDetectionService;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;->$r8$lambda$tA6TQDbRDXuSfaoZFjvN4QallFU([ILjava/lang/String;Landroid/os/RemoteCallback;Landroid/service/ambientcontext/IAmbientContextDetectionService;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;-><clinit>()V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;I)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;->getAutoDisconnectTimeoutMs()J +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;->lambda$queryServiceStatus$2([ILjava/lang/String;Landroid/os/RemoteCallback;Landroid/service/ambientcontext/IAmbientContextDetectionService;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;->lambda$stopDetection$1(Ljava/lang/String;Landroid/service/ambientcontext/IAmbientContextDetectionService;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;->queryServiceStatus([ILjava/lang/String;Landroid/os/RemoteCallback;)V +PLcom/android/server/ambientcontext/RemoteAmbientContextDetectionService;->stopDetection(Ljava/lang/String;)V PLcom/android/server/app/GameClassifierImpl;-><init>(Landroid/content/pm/PackageManager;)V PLcom/android/server/app/GameClassifierImpl;->isGame(Ljava/lang/String;Landroid/os/UserHandle;)Z HSPLcom/android/server/app/GameManagerService$$ExternalSyntheticLambda0;-><init>()V @@ -8567,9 +8905,17 @@ HSPLcom/android/server/app/GameManagerService$2;-><init>(Lcom/android/server/app PLcom/android/server/app/GameManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/app/GameManagerService$DeviceConfigListener;-><init>(Lcom/android/server/app/GameManagerService;)V PLcom/android/server/app/GameManagerService$DeviceConfigListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V +PLcom/android/server/app/GameManagerService$GamePackageConfiguration$GameModeConfiguration;-><init>(Lcom/android/server/app/GameManagerService$GamePackageConfiguration;Landroid/util/KeyValueListParser;)V +PLcom/android/server/app/GameManagerService$GamePackageConfiguration$GameModeConfiguration;->isActive()Z +PLcom/android/server/app/GameManagerService$GamePackageConfiguration$GameModeConfiguration;->toString()Ljava/lang/String; +PLcom/android/server/app/GameManagerService$GamePackageConfiguration;->-$$Nest$fgetmAllowAngle(Lcom/android/server/app/GameManagerService$GamePackageConfiguration;)Z +PLcom/android/server/app/GameManagerService$GamePackageConfiguration;->-$$Nest$fgetmAllowDownscale(Lcom/android/server/app/GameManagerService$GamePackageConfiguration;)Z +PLcom/android/server/app/GameManagerService$GamePackageConfiguration;->-$$Nest$fgetmAllowFpsOverride(Lcom/android/server/app/GameManagerService$GamePackageConfiguration;)Z PLcom/android/server/app/GameManagerService$GamePackageConfiguration;-><init>(Landroid/content/pm/PackageManager;Ljava/lang/String;I)V +PLcom/android/server/app/GameManagerService$GamePackageConfiguration;->addModeConfig(Lcom/android/server/app/GameManagerService$GamePackageConfiguration$GameModeConfiguration;)V PLcom/android/server/app/GameManagerService$GamePackageConfiguration;->isActive()Z PLcom/android/server/app/GameManagerService$GamePackageConfiguration;->parseInterventionFromXml(Landroid/content/pm/PackageManager;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;)Z +PLcom/android/server/app/GameManagerService$GamePackageConfiguration;->willGamePerformOptimizations(I)Z HSPLcom/android/server/app/GameManagerService$Lifecycle;-><init>(Landroid/content/Context;)V HSPLcom/android/server/app/GameManagerService$Lifecycle;->onBootPhase(I)V HSPLcom/android/server/app/GameManagerService$Lifecycle;->onStart()V @@ -8606,9 +8952,11 @@ PLcom/android/server/app/GameManagerService;->checkPermission(Ljava/lang/String; HSPLcom/android/server/app/GameManagerService;->createServiceThread()Lcom/android/server/ServiceThread; PLcom/android/server/app/GameManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HSPLcom/android/server/app/GameManagerService;->getAllUserIds(I)[I +PLcom/android/server/app/GameManagerService;->getAvailableGameModesUnchecked(Ljava/lang/String;)[I HSPLcom/android/server/app/GameManagerService;->getConfig(Ljava/lang/String;I)Lcom/android/server/app/GameManagerService$GamePackageConfiguration;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/app/GameManagerSettings;Lcom/android/server/app/GameManagerSettings; HSPLcom/android/server/app/GameManagerService;->getGameMode(Ljava/lang/String;I)I HSPLcom/android/server/app/GameManagerService;->getGameModeFromSettings(Ljava/lang/String;I)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/app/GameManagerSettings;Lcom/android/server/app/GameManagerSettings;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +PLcom/android/server/app/GameManagerService;->getGameModeInfo(Ljava/lang/String;I)Landroid/app/GameModeInfo; HSPLcom/android/server/app/GameManagerService;->getInstalledGamePackageNames(I)[Ljava/lang/String; HSPLcom/android/server/app/GameManagerService;->getInstalledGamePackageNamesByAllUsers(I)Ljava/util/List; PLcom/android/server/app/GameManagerService;->getNewGameMode(ILcom/android/server/app/GameManagerService$GamePackageConfiguration;)I @@ -8673,13 +9021,26 @@ PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl$GameServiceConne PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl$GameServiceConnector;-><init>(Landroid/content/Context;Lcom/android/server/app/GameServiceConfiguration$GameServiceComponentConfiguration;)V PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl$GameServiceConnector;->getAutoDisconnectTimeoutMs()J PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl$GameSessionServiceConnector$$ExternalSyntheticLambda0;-><init>()V +PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl$GameSessionServiceConnector$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl$GameSessionServiceConnector;-><init>(Landroid/content/Context;Lcom/android/server/app/GameServiceConfiguration$GameServiceComponentConfiguration;)V +PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl$GameSessionServiceConnector;->getAutoDisconnectTimeoutMs()J HSPLcom/android/server/app/GameServiceProviderInstanceFactoryImpl;-><init>(Landroid/content/Context;)V PLcom/android/server/app/GameServiceProviderInstanceFactoryImpl;->create(Lcom/android/server/app/GameServiceConfiguration$GameServiceComponentConfiguration;)Lcom/android/server/app/GameServiceProviderInstance; +PLcom/android/server/app/GameServiceProviderInstanceImpl$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl;Lcom/android/server/app/GameSessionRecord;I)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl;ILcom/android/server/app/GameSessionRecord;Landroid/service/games/GameSessionViewHostConfiguration;Lcom/android/internal/infra/AndroidFuture;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$$ExternalSyntheticLambda4;->runNoResult(Ljava/lang/Object;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/app/GameTaskInfo;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$$ExternalSyntheticLambda5;->runNoResult(Ljava/lang/Object;)V PLcom/android/server/app/GameServiceProviderInstanceImpl$1;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl;)V PLcom/android/server/app/GameServiceProviderInstanceImpl$1;->onConnected(Landroid/os/IInterface;)V PLcom/android/server/app/GameServiceProviderInstanceImpl$1;->onConnected(Landroid/service/games/IGameService;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$2$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl$2;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$2$$ExternalSyntheticLambda0;->run()V +PLcom/android/server/app/GameServiceProviderInstanceImpl$2;->$r8$lambda$GoVlki2XvNlE5mcXginIklyRsLY(Lcom/android/server/app/GameServiceProviderInstanceImpl$2;)V PLcom/android/server/app/GameServiceProviderInstanceImpl$2;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$2;->lambda$onBinderDied$0()V +PLcom/android/server/app/GameServiceProviderInstanceImpl$2;->onBinderDied()V PLcom/android/server/app/GameServiceProviderInstanceImpl$3;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl;)V HPLcom/android/server/app/GameServiceProviderInstanceImpl$3;->onTransientSystemBarsVisibilityChanged(IZZ)V PLcom/android/server/app/GameServiceProviderInstanceImpl$4$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl$4;ILandroid/content/ComponentName;)V @@ -8710,10 +9071,21 @@ HPLcom/android/server/app/GameServiceProviderInstanceImpl$5;->lambda$onProcessDi HPLcom/android/server/app/GameServiceProviderInstanceImpl$5;->onForegroundActivitiesChanged(IIZ)V PLcom/android/server/app/GameServiceProviderInstanceImpl$5;->onForegroundServicesChanged(III)V HPLcom/android/server/app/GameServiceProviderInstanceImpl$5;->onProcessDied(II)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$6$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl$6;I)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$6$$ExternalSyntheticLambda0;->run()V +PLcom/android/server/app/GameServiceProviderInstanceImpl$6;->$r8$lambda$WIDqRyEdcRifogwX4TIvY2UzmFI(Lcom/android/server/app/GameServiceProviderInstanceImpl$6;I)V PLcom/android/server/app/GameServiceProviderInstanceImpl$6;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$6;->createGameSession(I)V +PLcom/android/server/app/GameServiceProviderInstanceImpl$6;->lambda$createGameSession$0(I)V PLcom/android/server/app/GameServiceProviderInstanceImpl$7;-><init>(Lcom/android/server/app/GameServiceProviderInstanceImpl;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->$r8$lambda$1C0CJwZV84ZNaw4OJbOVwpN279k(Lcom/android/server/app/GameTaskInfo;Landroid/service/games/IGameService;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->$r8$lambda$475ZuF2CizfzaYT4oTaY6VimgG0(Lcom/android/server/app/GameServiceProviderInstanceImpl;ILcom/android/server/app/GameSessionRecord;Landroid/service/games/GameSessionViewHostConfiguration;Lcom/android/internal/infra/AndroidFuture;Landroid/service/games/IGameSessionService;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->$r8$lambda$T4B-KHB6KrYxVyjX2LYnCUR1IuE(Lcom/android/server/app/GameServiceProviderInstanceImpl;Lcom/android/server/app/GameSessionRecord;ILandroid/service/games/CreateGameSessionResult;Ljava/lang/Throwable;)V HPLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$fgetmBackgroundExecutor(Lcom/android/server/app/GameServiceProviderInstanceImpl;)Ljava/util/concurrent/Executor; PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$fgetmGameServiceController(Lcom/android/server/app/GameServiceProviderInstanceImpl;)Landroid/service/games/IGameServiceController; +PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$fgetmLock(Lcom/android/server/app/GameServiceProviderInstanceImpl;)Ljava/lang/Object; +PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$mcreateGameSession(Lcom/android/server/app/GameServiceProviderInstanceImpl;I)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$mdestroyAndClearAllGameSessionsLocked(Lcom/android/server/app/GameServiceProviderInstanceImpl;)V PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$monForegroundActivitiesChanged(Lcom/android/server/app/GameServiceProviderInstanceImpl;I)V HPLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$monProcessDied(Lcom/android/server/app/GameServiceProviderInstanceImpl;I)V PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$monTaskCreated(Lcom/android/server/app/GameServiceProviderInstanceImpl;ILandroid/content/ComponentName;)V @@ -8721,7 +9093,18 @@ PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$monTaskFocusC PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$monTaskRemoved(Lcom/android/server/app/GameServiceProviderInstanceImpl;I)V PLcom/android/server/app/GameServiceProviderInstanceImpl;->-$$Nest$monTransientSystemBarsVisibilityChanged(Lcom/android/server/app/GameServiceProviderInstanceImpl;IZZ)V PLcom/android/server/app/GameServiceProviderInstanceImpl;-><init>(Landroid/os/UserHandle;Ljava/util/concurrent/Executor;Landroid/content/Context;Lcom/android/server/app/GameTaskInfoProvider;Landroid/app/IActivityManager;Landroid/app/ActivityManagerInternal;Landroid/app/IActivityTaskManager;Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/internal/infra/ServiceConnector;Lcom/android/internal/infra/ServiceConnector;Lcom/android/internal/util/ScreenshotHelper;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->attachGameSessionLocked(ILandroid/service/games/CreateGameSessionResult;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->createGameSession(I)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->createGameSessionLocked(I)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->createViewHostConfigurationForTask(I)Landroid/service/games/GameSessionViewHostConfiguration; +PLcom/android/server/app/GameServiceProviderInstanceImpl;->destroyAndClearAllGameSessionsLocked()V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->destroyGameSessionFromRecordLocked(Lcom/android/server/app/GameSessionRecord;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->endGameSessionsForPackageLocked(Ljava/lang/String;)V HPLcom/android/server/app/GameServiceProviderInstanceImpl;->gameSessionExistsForPackageNameLocked(Ljava/lang/String;)Z +PLcom/android/server/app/GameServiceProviderInstanceImpl;->gameTaskStartedLocked(Lcom/android/server/app/GameTaskInfo;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->lambda$createGameSessionLocked$2(Lcom/android/server/app/GameSessionRecord;ILandroid/service/games/CreateGameSessionResult;Ljava/lang/Throwable;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->lambda$createGameSessionLocked$3(ILcom/android/server/app/GameSessionRecord;Landroid/service/games/GameSessionViewHostConfiguration;Lcom/android/internal/infra/AndroidFuture;Landroid/service/games/IGameSessionService;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->lambda$gameTaskStartedLocked$1(Lcom/android/server/app/GameTaskInfo;Landroid/service/games/IGameService;)V PLcom/android/server/app/GameServiceProviderInstanceImpl;->maybeCreateGameSessionForFocusedTaskLocked(I)V HPLcom/android/server/app/GameServiceProviderInstanceImpl;->onForegroundActivitiesChanged(I)V HPLcom/android/server/app/GameServiceProviderInstanceImpl;->onForegroundActivitiesChangedLocked(I)V @@ -8732,11 +9115,29 @@ PLcom/android/server/app/GameServiceProviderInstanceImpl;->onTaskFocusChanged(IZ HPLcom/android/server/app/GameServiceProviderInstanceImpl;->onTaskFocusChangedLocked(IZ)V PLcom/android/server/app/GameServiceProviderInstanceImpl;->onTaskRemoved(I)V HPLcom/android/server/app/GameServiceProviderInstanceImpl;->onTransientSystemBarsVisibilityChanged(IZZ)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->recreateEndedGameSessionsLocked(Ljava/lang/String;)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->removeAndDestroyGameSessionIfNecessaryLocked(I)V +PLcom/android/server/app/GameServiceProviderInstanceImpl;->setGameSessionFocusedIfNecessary(ILandroid/service/games/IGameSession;)V PLcom/android/server/app/GameServiceProviderInstanceImpl;->start()V PLcom/android/server/app/GameServiceProviderInstanceImpl;->startLocked()V HSPLcom/android/server/app/GameServiceProviderSelectorImpl;-><init>(Landroid/content/res/Resources;Landroid/content/pm/PackageManager;)V PLcom/android/server/app/GameServiceProviderSelectorImpl;->determineGameSessionServiceFromGameService(Landroid/content/pm/ServiceInfo;)Landroid/content/ComponentName; PLcom/android/server/app/GameServiceProviderSelectorImpl;->get(Lcom/android/server/SystemService$TargetUser;Ljava/lang/String;)Lcom/android/server/app/GameServiceConfiguration; +PLcom/android/server/app/GameSessionRecord$State;-><clinit>()V +PLcom/android/server/app/GameSessionRecord$State;-><init>(Ljava/lang/String;I)V +PLcom/android/server/app/GameSessionRecord;-><init>(ILcom/android/server/app/GameSessionRecord$State;Landroid/content/ComponentName;Landroid/service/games/IGameSession;Landroid/view/SurfaceControlViewHost$SurfacePackage;)V +PLcom/android/server/app/GameSessionRecord;->awaitingGameSessionRequest(ILandroid/content/ComponentName;)Lcom/android/server/app/GameSessionRecord; +PLcom/android/server/app/GameSessionRecord;->getComponentName()Landroid/content/ComponentName; +PLcom/android/server/app/GameSessionRecord;->getGameSession()Landroid/service/games/IGameSession; +PLcom/android/server/app/GameSessionRecord;->getSurfacePackage()Landroid/view/SurfaceControlViewHost$SurfacePackage; +PLcom/android/server/app/GameSessionRecord;->getTaskId()I +PLcom/android/server/app/GameSessionRecord;->isAwaitingGameSessionRequest()Z +PLcom/android/server/app/GameSessionRecord;->isGameSessionEndedForProcessDeath()Z +PLcom/android/server/app/GameSessionRecord;->isGameSessionRequested()Z +PLcom/android/server/app/GameSessionRecord;->toString()Ljava/lang/String; +PLcom/android/server/app/GameSessionRecord;->withGameSession(Landroid/service/games/IGameSession;Landroid/view/SurfaceControlViewHost$SurfacePackage;)Lcom/android/server/app/GameSessionRecord; +PLcom/android/server/app/GameSessionRecord;->withGameSessionEndedOnProcessDeath()Lcom/android/server/app/GameSessionRecord; +PLcom/android/server/app/GameSessionRecord;->withGameSessionRequested()Lcom/android/server/app/GameSessionRecord; PLcom/android/server/app/GameTaskInfo;-><init>(IZLandroid/content/ComponentName;)V PLcom/android/server/app/GameTaskInfoProvider;-><init>(Landroid/os/UserHandle;Landroid/app/IActivityTaskManager;Lcom/android/server/app/GameClassifier;)V PLcom/android/server/app/GameTaskInfoProvider;->generateGameInfo(ILandroid/content/ComponentName;)Lcom/android/server/app/GameTaskInfo; @@ -8936,18 +9337,46 @@ PLcom/android/server/apphibernation/UserLevelState;-><clinit>()V PLcom/android/server/apphibernation/UserLevelState;-><init>()V PLcom/android/server/apphibernation/UserLevelState;-><init>(Lcom/android/server/apphibernation/UserLevelState;)V PLcom/android/server/apphibernation/UserLevelState;->toString()Ljava/lang/String; +HSPLcom/android/server/appop/AppOpsRestrictionsImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/appop/AppOpsServiceInterface;)V +PLcom/android/server/appop/AppOpsRestrictionsImpl;->dumpRestrictions(Ljava/io/PrintWriter;ILjava/lang/String;Z)V +HPLcom/android/server/appop/AppOpsRestrictionsImpl;->getUserRestriction(Ljava/lang/Object;II)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseArray;Landroid/util/SparseArray; +HPLcom/android/server/appop/AppOpsRestrictionsImpl;->getUserRestriction(Ljava/lang/Object;IILjava/lang/String;Ljava/lang/String;Z)Z+]Lcom/android/server/appop/AppOpsRestrictionsImpl;Lcom/android/server/appop/AppOpsRestrictionsImpl; +PLcom/android/server/appop/AppOpsRestrictionsImpl;->hasGlobalRestrictions(Ljava/lang/Object;)Z +HSPLcom/android/server/appop/AppOpsRestrictionsImpl;->hasUserRestrictions(Ljava/lang/Object;)Z +HSPLcom/android/server/appop/AppOpsRestrictionsImpl;->putUserRestriction(Ljava/lang/Object;IIZ)Z +HSPLcom/android/server/appop/AppOpsRestrictionsImpl;->putUserRestrictionExclusions(Ljava/lang/Object;ILandroid/os/PackageTagsList;)Z +HSPLcom/android/server/appop/AppOpsRestrictionsImpl;->resolveUserId(I)[I +PLcom/android/server/appop/AppOpsRestrictionsImpl;->setGlobalRestriction(Ljava/lang/Object;IZ)Z +HSPLcom/android/server/appop/AppOpsRestrictionsImpl;->setUserRestriction(Ljava/lang/Object;IIZLandroid/os/PackageTagsList;)Z HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda0;-><init>()V +HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda0;->accept(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;)V +HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/appop/AppOpsService;)V +HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda10;->execute(Ljava/lang/Runnable;)V +HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/appop/AppOpsService;)V +HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda11;->onUidStateChanged(IIZ)V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda12;-><init>()V +PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda13;-><init>()V HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V +HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda14;-><init>(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;)V +HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V +PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Ljava/lang/String;I)V +PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda15;->run()V +PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda16;-><init>()V +HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer; +HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda1;-><init>()V +HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda3;-><init>()V +PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda3;->accept(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;)V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda5;-><init>()V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda6;-><init>()V +HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda6;->accept(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;)V HSPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda7;-><init>()V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8;-><init>()V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda9;-><init>()V -PLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/appop/AppOpsService$1$1;-><init>(Lcom/android/server/appop/AppOpsService$1;)V PLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Void;)Ljava/lang/Void; @@ -9033,37 +9462,43 @@ PLcom/android/server/appop/AppOpsService$ModeCallback;->toString()Ljava/lang/Str HPLcom/android/server/appop/AppOpsService$ModeCallback;->unlinkToDeath()V HSPLcom/android/server/appop/AppOpsService$NotedCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsNotedCallback;III)V PLcom/android/server/appop/AppOpsService$NotedCallback;->binderDied()V -PLcom/android/server/appop/AppOpsService$NotedCallback;->destroy()V +HPLcom/android/server/appop/AppOpsService$NotedCallback;->destroy()V PLcom/android/server/appop/AppOpsService$NotedCallback;->toString()Ljava/lang/String; +HSPLcom/android/server/appop/AppOpsService$Op;->-$$Nest$mgetOrCreateAttribution(Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)Lcom/android/server/appop/AttributedOp;+]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op; HSPLcom/android/server/appop/AppOpsService$Op;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;II)V -HPLcom/android/server/appop/AppOpsService$Op;->createEntryLocked()Landroid/app/AppOpsManager$OpEntry;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op; +HPLcom/android/server/appop/AppOpsService$Op;->createEntryLocked()Landroid/app/AppOpsManager$OpEntry;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; HPLcom/android/server/appop/AppOpsService$Op;->createSingleAttributionEntryLocked(Ljava/lang/String;)Landroid/app/AppOpsManager$OpEntry; HSPLcom/android/server/appop/AppOpsService$Op;->getMode()I+]Lcom/android/server/appop/AppOpsServiceInterface;Lcom/android/server/appop/LegacyAppOpsServiceInterfaceImpl; -HSPLcom/android/server/appop/AppOpsService$Op;->isRunning()Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLcom/android/server/appop/AppOpsService$Op;->getOrCreateAttribution(Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)Lcom/android/server/appop/AttributedOp;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLcom/android/server/appop/AppOpsService$Op;->isRunning()Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; PLcom/android/server/appop/AppOpsService$Op;->removeAttributionsWithNoTime()V HSPLcom/android/server/appop/AppOpsService$Op;->setMode(I)V HSPLcom/android/server/appop/AppOpsService$Ops;-><init>(Ljava/lang/String;Lcom/android/server/appop/AppOpsService$UidState;)V HSPLcom/android/server/appop/AppOpsService$PackageVerificationResult;-><init>(Landroid/app/AppOpsManager$RestrictionBypass;Z)V HSPLcom/android/server/appop/AppOpsService$StartedCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsStartedCallback;III)V PLcom/android/server/appop/AppOpsService$StartedCallback;->binderDied()V -PLcom/android/server/appop/AppOpsService$StartedCallback;->destroy()V +HPLcom/android/server/appop/AppOpsService$StartedCallback;->destroy()V PLcom/android/server/appop/AppOpsService$StartedCallback;->toString()Ljava/lang/String; HSPLcom/android/server/appop/AppOpsService$UidState;-><init>(Lcom/android/server/appop/AppOpsService;I)V HSPLcom/android/server/appop/AppOpsService$UidState;->clear()V HPLcom/android/server/appop/AppOpsService$UidState;->dump(Ljava/io/PrintWriter;J)V HSPLcom/android/server/appop/AppOpsService$UidState;->evalForegroundOps()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsServiceInterface;Lcom/android/server/appop/LegacyAppOpsServiceInterfaceImpl;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray; -HSPLcom/android/server/appop/AppOpsService$UidState;->evalMode(II)I+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/appop/AppOpsUidStateTracker;Lcom/android/server/appop/AppOpsUidStateTrackerImpl;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; +HSPLcom/android/server/appop/AppOpsService$UidState;->evalMode(II)I+]Lcom/android/server/appop/AppOpsUidStateTracker;Lcom/android/server/appop/AppOpsUidStateTrackerImpl;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; HSPLcom/android/server/appop/AppOpsService$UidState;->getNonDefaultUidModes()Landroid/util/SparseIntArray;+]Lcom/android/server/appop/AppOpsServiceInterface;Lcom/android/server/appop/LegacyAppOpsServiceInterfaceImpl; HSPLcom/android/server/appop/AppOpsService$UidState;->getState()I+]Lcom/android/server/appop/AppOpsUidStateTracker;Lcom/android/server/appop/AppOpsUidStateTrackerImpl;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/appop/AppOpsService$UidState;->getUidMode(I)I+]Lcom/android/server/appop/AppOpsServiceInterface;Lcom/android/server/appop/LegacyAppOpsServiceInterfaceImpl; PLcom/android/server/appop/AppOpsService$UidState;->isDefault()Z HSPLcom/android/server/appop/AppOpsService$UidState;->setUidMode(II)Z HPLcom/android/server/appop/AppOpsService;->$r8$lambda$6eUUjWoSV6jYQZnTSAKV3P6Zd3U(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;II)V +PLcom/android/server/appop/AppOpsService;->$r8$lambda$CkC7NFGAXqPtWmw4hPZid_o7wF8(Lcom/android/server/appop/AppOpsService;)Ljava/util/List; HSPLcom/android/server/appop/AppOpsService;->$r8$lambda$GbnVL7FStoP-5ugbMrKPtxPc-7Q(Lcom/android/server/appop/AppOpsService;IIZLcom/android/internal/app/IAppOpsCallback;)V PLcom/android/server/appop/AppOpsService;->$r8$lambda$PKLfueNQM1N0Jpnmxcaqqma0eNY(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V +HSPLcom/android/server/appop/AppOpsService;->$r8$lambda$RtSFHTKzapEe7AUZJfu-0E4iiYE(Lcom/android/server/appop/AppOpsService;Ljava/lang/Runnable;)V HSPLcom/android/server/appop/AppOpsService;->$r8$lambda$TilJ4MohkxOsJFwEmIt1ERMbpE0(Lcom/android/server/appop/AppOpsService;IIZ)V HSPLcom/android/server/appop/AppOpsService;->$r8$lambda$UhW7SeBkHHHfuwTQAOdyrxrpRvA(Lcom/android/server/appop/AppOpsService;II)V PLcom/android/server/appop/AppOpsService;->$r8$lambda$Zyngadgl87QMxYI929vq0ZyGXcM(Lcom/android/server/appop/AppOpsService;IZI)V +HPLcom/android/server/appop/AppOpsService;->$r8$lambda$j7JuBmeFuvKV9Ixgv9xHNEaV-DA(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V +PLcom/android/server/appop/AppOpsService;->$r8$lambda$nXA4hnmbsgOnxwDtbQv2W_gF1F0(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Ljava/lang/String;I)V PLcom/android/server/appop/AppOpsService;->$r8$lambda$ueiy_QOdjs5waSxjG-x7aX5-gP4(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;ZII)V PLcom/android/server/appop/AppOpsService;->$r8$lambda$y2H8_9L2D3J-gli7MqsLRngTgtU(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;IIIII)V PLcom/android/server/appop/AppOpsService;->-$$Nest$fgetmAsyncOpWatchers(Lcom/android/server/appop/AppOpsService;)Landroid/util/ArrayMap; @@ -9099,6 +9534,7 @@ HSPLcom/android/server/appop/AppOpsService;->checkPackage(ILjava/lang/String;)I+ HSPLcom/android/server/appop/AppOpsService;->checkSystemUid(Ljava/lang/String;)V HPLcom/android/server/appop/AppOpsService;->collectAsyncNotedOp(ILjava/lang/String;ILjava/lang/String;ILjava/lang/String;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/os/RemoteCallbackList;Lcom/android/server/appop/AppOpsService$7;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/appop/AppOpsService;->collectOps(Lcom/android/server/appop/AppOpsService$Ops;[I)Ljava/util/ArrayList;+]Landroid/util/SparseArray;Lcom/android/server/appop/AppOpsService$Ops;]Ljava/util/ArrayList;Ljava/util/ArrayList; +PLcom/android/server/appop/AppOpsService;->collectRuntimeAppOpAccessMessage()Landroid/app/RuntimeAppOpAccessMessage; PLcom/android/server/appop/AppOpsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;JLcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;JLjava/text/SimpleDateFormat;Ljava/util/Date;Ljava/lang/String;)V HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;Ljava/lang/String;IJLcom/android/server/appop/AppOpsService$Op;JLjava/text/SimpleDateFormat;Ljava/util/Date;Ljava/lang/String;)V @@ -9110,7 +9546,7 @@ HPLcom/android/server/appop/AppOpsService;->extractAsyncOps(Ljava/lang/String;)L HSPLcom/android/server/appop/AppOpsService;->filterAppAccessUnlocked(Ljava/lang/String;I)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/appop/AppOpsService;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V+]Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher; HSPLcom/android/server/appop/AppOpsService;->finishOperationImpl(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V+]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; -HSPLcom/android/server/appop/AppOpsService;->finishOperationUnchecked(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; +HSPLcom/android/server/appop/AppOpsService;->finishOperationUnchecked(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; HPLcom/android/server/appop/AppOpsService;->getAsyncNotedOpsKey(Ljava/lang/String;I)Landroid/util/Pair; HSPLcom/android/server/appop/AppOpsService;->getBypassforPackage(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/app/AppOpsManager$RestrictionBypass;+]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; PLcom/android/server/appop/AppOpsService;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IIJJILandroid/os/RemoteCallback;)V @@ -9121,36 +9557,40 @@ PLcom/android/server/appop/AppOpsService;->getOpsForPackage(ILjava/lang/String;[ HSPLcom/android/server/appop/AppOpsService;->getOpsLocked(ILjava/lang/String;Ljava/lang/String;ZLandroid/app/AppOpsManager$RestrictionBypass;Z)Lcom/android/server/appop/AppOpsService$Ops;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; PLcom/android/server/appop/AppOpsService;->getPackageListAndResample()Ljava/util/List; HSPLcom/android/server/appop/AppOpsService;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal; -PLcom/android/server/appop/AppOpsService;->getPackageNamesForSampling()Ljava/util/List; +HPLcom/android/server/appop/AppOpsService;->getPackageNamesForSampling()Ljava/util/List; HSPLcom/android/server/appop/AppOpsService;->getPackagesForOps([I)Ljava/util/List;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/Context;Landroid/app/ContextImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/appop/AppOpsService;->getPackagesForUid(I)[Ljava/lang/String; PLcom/android/server/appop/AppOpsService;->getRuntimeAppOpsList()Ljava/util/List; HSPLcom/android/server/appop/AppOpsService;->getUidStateLocked(IZ)Lcom/android/server/appop/AppOpsService$UidState;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/appop/AppOpsService;->getUidStateTracker()Lcom/android/server/appop/AppOpsUidStateTracker; PLcom/android/server/appop/AppOpsService;->initializeRarelyUsedPackagesList(Landroid/util/ArraySet;)V -HSPLcom/android/server/appop/AppOpsService;->isAttributionInPackage(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z+]Lcom/android/server/pm/pkg/component/ParsedAttribution;Lcom/android/server/pm/pkg/component/ParsedAttributionImpl;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/appop/AppOpsService;->isAttributionInPackage(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z+]Lcom/android/server/pm/pkg/component/ParsedAttribution;Lcom/android/server/pm/pkg/component/ParsedAttributionImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; PLcom/android/server/appop/AppOpsService;->isCallerAndAttributionTrusted(Landroid/content/AttributionSource;)Z HSPLcom/android/server/appop/AppOpsService;->isIncomingPackageValid(Ljava/lang/String;I)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedDueToSuspend(ILjava/lang/String;I)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Ljava/lang/String;Landroid/app/AppOpsManager$RestrictionBypass;Z)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsService$ClientUserRestrictionState;Lcom/android/server/appop/AppOpsService$ClientUserRestrictionState; HPLcom/android/server/appop/AppOpsService;->isOperationActive(IILjava/lang/String;)Z HSPLcom/android/server/appop/AppOpsService;->isPackageExisted(Ljava/lang/String;)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; -PLcom/android/server/appop/AppOpsService;->isSamplingTarget(Landroid/content/pm/PackageInfo;)Z +HPLcom/android/server/appop/AppOpsService;->isSamplingTarget(Landroid/content/pm/PackageInfo;)Z HSPLcom/android/server/appop/AppOpsService;->isSpecialPackage(ILjava/lang/String;)Z +HPLcom/android/server/appop/AppOpsService;->lambda$collectAsyncNotedOp$3(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V+]Lcom/android/internal/app/IAppOpsAsyncNotedCallback;Lcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub$Proxy; +HSPLcom/android/server/appop/AppOpsService;->lambda$getUidStateTracker$0(Ljava/lang/Runnable;)V+]Ljava/lang/Runnable;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; +PLcom/android/server/appop/AppOpsService;->lambda$systemReady$1(Ljava/lang/String;Ljava/lang/String;I)V HSPLcom/android/server/appop/AppOpsService;->noteOperation(IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher; HSPLcom/android/server/appop/AppOpsService;->noteOperationImpl(IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; -HSPLcom/android/server/appop/AppOpsService;->noteOperationUnchecked(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;]Lcom/android/server/appop/AppOpsService$UidState;Lcom/android/server/appop/AppOpsService$UidState;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; +HSPLcom/android/server/appop/AppOpsService;->noteOperationUnchecked(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;]Lcom/android/server/appop/AppOpsService$UidState;Lcom/android/server/appop/AppOpsService$UidState;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; HPLcom/android/server/appop/AppOpsService;->noteProxyOperation(ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp; HPLcom/android/server/appop/AppOpsService;->noteProxyOperationImpl(ILandroid/content/AttributionSource;ZLjava/lang/String;ZZ)Landroid/app/SyncNotedAppOp; HPLcom/android/server/appop/AppOpsService;->notifyOpActiveChanged(Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;ZII)V HSPLcom/android/server/appop/AppOpsService;->notifyOpChanged(Landroid/util/ArraySet;IILjava/lang/String;)V PLcom/android/server/appop/AppOpsService;->notifyOpChanged(Lcom/android/server/appop/OnOpModeChangedListener;IILjava/lang/String;)V -HSPLcom/android/server/appop/AppOpsService;->notifyOpChangedForAllPkgsInUid(IIZLcom/android/internal/app/IAppOpsCallback;)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/internal/app/IAppOpsCallback;Lcom/android/server/policy/PermissionPolicyService$2;]Lcom/android/server/appop/AppOpsServiceInterface;Lcom/android/server/appop/LegacyAppOpsServiceInterfaceImpl; +HSPLcom/android/server/appop/AppOpsService;->notifyOpChangedForAllPkgsInUid(IIZLcom/android/internal/app/IAppOpsCallback;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsServiceInterface;Lcom/android/server/appop/LegacyAppOpsServiceInterfaceImpl;]Lcom/android/internal/app/IAppOpsCallback;Lcom/android/server/policy/PermissionPolicyService$2;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLcom/android/server/appop/AppOpsService;->notifyOpChangedSync(IILjava/lang/String;II)V HPLcom/android/server/appop/AppOpsService;->notifyOpChecked(Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;II)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Lcom/android/internal/app/IAppOpsNotedCallback;Landroid/app/AppOpsManager$5;,Lcom/android/internal/app/IAppOpsNotedCallback$Stub$Proxy; HPLcom/android/server/appop/AppOpsService;->notifyOpStarted(Landroid/util/ArraySet;IILjava/lang/String;Ljava/lang/String;IIIII)V HSPLcom/android/server/appop/AppOpsService;->notifyWatchersOfChange(II)V -HSPLcom/android/server/appop/AppOpsService;->onUidStateChanged(IIZ)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseArray;Lcom/android/server/appop/AppOpsService$Ops;]Lcom/android/server/appop/AppOpsService$UidState;Lcom/android/server/appop/AppOpsService$UidState;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; +PLcom/android/server/appop/AppOpsService;->onClientDeath(Lcom/android/server/appop/AttributedOp;Landroid/os/IBinder;)V +HSPLcom/android/server/appop/AppOpsService;->onUidStateChanged(IIZ)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/appop/AppOpsService$UidState;Lcom/android/server/appop/AppOpsService$UidState;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Lcom/android/server/appop/AppOpsService$Ops;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; PLcom/android/server/appop/AppOpsService;->packageRemoved(ILjava/lang/String;)V HSPLcom/android/server/appop/AppOpsService;->permissionToOpCode(Ljava/lang/String;)I PLcom/android/server/appop/AppOpsService;->pruneOpLocked(Lcom/android/server/appop/AppOpsService$Op;ILjava/lang/String;)V @@ -9189,7 +9629,7 @@ HPLcom/android/server/appop/AppOpsService;->shouldIgnoreCallback(III)Z PLcom/android/server/appop/AppOpsService;->shouldStartForMode(IZ)Z HSPLcom/android/server/appop/AppOpsService;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher;Lcom/android/server/appop/AppOpsService$CheckOpsDelegateDispatcher; HSPLcom/android/server/appop/AppOpsService;->startOperationImpl(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ZZLjava/lang/String;ZII)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; -HSPLcom/android/server/appop/AppOpsService;->startOperationUnchecked(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZIIZ)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;]Lcom/android/server/appop/AppOpsService$UidState;Lcom/android/server/appop/AppOpsService$UidState;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; +HSPLcom/android/server/appop/AppOpsService;->startOperationUnchecked(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IZZLjava/lang/String;ZIIZ)Landroid/app/SyncNotedAppOp;+]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;]Lcom/android/server/appop/AppOpsService$UidState;Lcom/android/server/appop/AppOpsService$UidState;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; HSPLcom/android/server/appop/AppOpsService;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V HPLcom/android/server/appop/AppOpsService;->startWatchingAsyncNoted(Ljava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V HSPLcom/android/server/appop/AppOpsService;->startWatchingMode(ILjava/lang/String;Lcom/android/internal/app/IAppOpsCallback;)V @@ -9200,17 +9640,17 @@ HPLcom/android/server/appop/AppOpsService;->stopWatchingActive(Lcom/android/inte HPLcom/android/server/appop/AppOpsService;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/appop/AppOpsService$ModeCallback;Lcom/android/server/appop/AppOpsService$ModeCallback;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/internal/app/IAppOpsCallback;Landroid/app/AppOpsManager$2;,Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HPLcom/android/server/appop/AppOpsService;->stopWatchingNoted(Lcom/android/internal/app/IAppOpsNotedCallback;)V HPLcom/android/server/appop/AppOpsService;->stopWatchingStarted(Lcom/android/internal/app/IAppOpsStartedCallback;)V -HSPLcom/android/server/appop/AppOpsService;->switchPackageIfBootTimeOrRarelyUsedLocked(Ljava/lang/String;)V+]Ljava/util/concurrent/ThreadLocalRandom;Ljava/util/concurrent/ThreadLocalRandom;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; +HSPLcom/android/server/appop/AppOpsService;->switchPackageIfBootTimeOrRarelyUsedLocked(Ljava/lang/String;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/concurrent/ThreadLocalRandom;Ljava/util/concurrent/ThreadLocalRandom;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/appop/AppOpsService;->systemReady()V PLcom/android/server/appop/AppOpsService;->uidRemoved(I)V PLcom/android/server/appop/AppOpsService;->updateAppWidgetVisibility(Landroid/util/SparseArray;Z)V HSPLcom/android/server/appop/AppOpsService;->updatePermissionRevokedCompat(III)V HSPLcom/android/server/appop/AppOpsService;->updateStartedOpModeForUidLocked(IZI)V PLcom/android/server/appop/AppOpsService;->updateStartedOpModeForUser(IZI)V -HSPLcom/android/server/appop/AppOpsService;->updateUidProcState(III)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;,Lcom/android/server/appop/AppOpsService$Ops;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Lcom/android/server/appop/AppOpsUidStateTracker;Lcom/android/server/appop/AppOpsUidStateTrackerImpl; +HSPLcom/android/server/appop/AppOpsService;->updateUidProcState(III)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsUidStateTracker;Lcom/android/server/appop/AppOpsUidStateTrackerImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;,Lcom/android/server/appop/AppOpsService$Ops;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler; HSPLcom/android/server/appop/AppOpsService;->upgradeLocked(I)V HSPLcom/android/server/appop/AppOpsService;->verifyAndGetBypass(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/appop/AppOpsService$PackageVerificationResult;+]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; -HSPLcom/android/server/appop/AppOpsService;->verifyAndGetBypass(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/appop/AppOpsService$PackageVerificationResult;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/internal/compat/IPlatformCompat;Lcom/android/server/compat/PlatformCompat; +HSPLcom/android/server/appop/AppOpsService;->verifyAndGetBypass(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/appop/AppOpsService$PackageVerificationResult;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/internal/compat/IPlatformCompat;Lcom/android/server/compat/PlatformCompat;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; HSPLcom/android/server/appop/AppOpsService;->verifyIncomingOp(I)V+]Landroid/content/Context;Landroid/app/ContextImpl; HPLcom/android/server/appop/AppOpsService;->verifyIncomingProxyUid(Landroid/content/AttributionSource;)V HSPLcom/android/server/appop/AppOpsService;->verifyIncomingUid(I)V+]Landroid/content/Context;Landroid/app/ContextImpl; @@ -9219,9 +9659,23 @@ HSPLcom/android/server/appop/AppOpsUidStateTracker;->processStateToUidState(I)I HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda0;-><init>()V HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer; HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda1;-><init>()V -HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Lcom/android/server/appop/AppOpsUidStateTracker$UidStateChangedCallback;Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8; -HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda1;-><init>()V -HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Ljava/lang/Long;Ljava/lang/Long;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog; +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Lcom/android/server/appop/AppOpsUidStateTracker$UidStateChangedCallback;Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8;,Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda11; +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda0;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda0;->run()V +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda1;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda1;->run()V +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->$r8$lambda$_XaXxDGv60zwlgSKtI-3mpHUP_0(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->$r8$lambda$sYtON0b6Ta2c2mKtxQGJJ7-b1js(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;-><init>(Landroid/os/Handler;Ljava/util/concurrent/Executor;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->execute(Ljava/lang/Runnable;)V+]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler; +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->executeDelayed(Ljava/lang/Runnable;J)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->lambda$execute$0(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$1;->lambda$executeDelayed$1(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda0;-><init>()V +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda1;-><init>()V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Ljava/lang/Long;Ljava/lang/Long;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog; +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;-><init>(Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor;Ljava/lang/Thread;)V PLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->dumpCommitUidState(Ljava/io/PrintWriter;I)V PLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->dumpEvalForegroundMode(Ljava/io/PrintWriter;I)V PLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->dumpEvents(Ljava/io/PrintWriter;)V @@ -9232,7 +9686,10 @@ HPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logEvalForegrou HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;->logUpdateUidProcState(III)V HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->$r8$lambda$Xtd2EAFwEPrU00dwTwjtFis38NM(Lcom/android/server/appop/AppOpsUidStateTrackerImpl;I)V HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;-><clinit>()V -HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->commitUidPendingState(I)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog; +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;-><init>(Landroid/app/ActivityManagerInternal;Landroid/os/Handler;Ljava/util/concurrent/Executor;Lcom/android/internal/os/Clock;Lcom/android/server/appop/AppOpsService$Constants;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;-><init>(Landroid/app/ActivityManagerInternal;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor;Lcom/android/internal/os/Clock;Lcom/android/server/appop/AppOpsService$Constants;Ljava/lang/Thread;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->addUidStateChangedCallback(Ljava/util/concurrent/Executor;Lcom/android/server/appop/AppOpsUidStateTracker$UidStateChangedCallback;)V +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->commitUidPendingState(I)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;]Ljava/util/concurrent/Executor;Landroid/os/HandlerExecutor; PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->dumpEvents(Ljava/io/PrintWriter;)V HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->dumpUidState(Ljava/io/PrintWriter;IJ)V HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->evalMode(III)I+]Lcom/android/server/appop/AppOpsUidStateTrackerImpl;Lcom/android/server/appop/AppOpsUidStateTrackerImpl;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog; @@ -9240,11 +9697,48 @@ HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->evalMode(IIIIZZZ)I HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidCapability(I)I HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidState(I)I+]Lcom/android/server/appop/AppOpsUidStateTrackerImpl;Lcom/android/server/appop/AppOpsUidStateTrackerImpl; HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidStateLocked(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl;Lcom/android/server/appop/AppOpsUidStateTrackerImpl; -PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidVisibleAppWidget(I)Z +HPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->getUidVisibleAppWidget(I)Z PLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateAppWidgetVisibility(Landroid/util/SparseArray;Z)V HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidPendingStateIfNeeded(I)V+]Lcom/android/server/appop/AppOpsUidStateTrackerImpl;Lcom/android/server/appop/AppOpsUidStateTrackerImpl; HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidPendingStateIfNeededLocked(I)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl;Lcom/android/server/appop/AppOpsUidStateTrackerImpl; -HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidProcState(III)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl;Lcom/android/server/appop/AppOpsUidStateTrackerImpl;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog; +HSPLcom/android/server/appop/AppOpsUidStateTrackerImpl;->updateUidProcState(III)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/os/Handler;Lcom/android/server/am/ActivityManagerService$MainHandler;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl;Lcom/android/server/appop/AppOpsUidStateTrackerImpl;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog;]Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor;Lcom/android/server/appop/AppOpsUidStateTrackerImpl$1; +HPLcom/android/server/appop/AttributedOp$$ExternalSyntheticLambda0;-><init>()V +PLcom/android/server/appop/AttributedOp$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;-><init>(JJLandroid/os/IBinder;Ljava/lang/String;Ljava/lang/Runnable;ILandroid/app/AppOpsManager$OpEventProxyInfo;III)V +PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->binderDied()V +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->finish()V+]Landroid/os/IBinder;Landroid/os/BinderProxy;,Landroid/os/Binder; +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getAttributionChainId()I +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getAttributionFlags()I +PLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getClientId()Landroid/os/IBinder; +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getFlags()I +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getProxy()Landroid/app/AppOpsManager$OpEventProxyInfo; +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getStartElapsedTime()J +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getStartTime()J +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->getUidState()I +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEvent;->reinit(JJLandroid/os/IBinder;Ljava/lang/String;Ljava/lang/Runnable;IILandroid/app/AppOpsManager$OpEventProxyInfo;IILandroid/util/Pools$Pool;)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;,Landroid/os/Binder; +HSPLcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;-><init>(Lcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;I)V +HPLcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;->acquire(JJLandroid/os/IBinder;Ljava/lang/String;Ljava/lang/Runnable;ILjava/lang/String;Ljava/lang/String;IIII)Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;+]Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;]Landroid/util/Pools$SimplePool;Lcom/android/server/appop/AttributedOp$InProgressStartOpEventPool; +HSPLcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;-><init>(I)V +HSPLcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;->acquire(ILjava/lang/String;Ljava/lang/String;)Landroid/app/AppOpsManager$OpEventProxyInfo; +HSPLcom/android/server/appop/AttributedOp;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Lcom/android/server/appop/AppOpsService$Op;)V +HPLcom/android/server/appop/AttributedOp;->accessed(ILjava/lang/String;Ljava/lang/String;II)V+]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp;]Lcom/android/server/appop/HistoricalRegistry;Lcom/android/server/appop/HistoricalRegistry; +HSPLcom/android/server/appop/AttributedOp;->accessed(JJILjava/lang/String;Ljava/lang/String;II)V+]Lcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;Lcom/android/server/appop/AttributedOp$OpEventProxyInfoPool;]Landroid/app/AppOpsManager$NoteOpEvent;Landroid/app/AppOpsManager$NoteOpEvent;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +PLcom/android/server/appop/AttributedOp;->add(Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)Landroid/util/LongSparseArray; +PLcom/android/server/appop/AttributedOp;->add(Lcom/android/server/appop/AttributedOp;)V +HPLcom/android/server/appop/AttributedOp;->createAttributedOpEntryLocked()Landroid/app/AppOpsManager$AttributedOpEntry;+]Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +HPLcom/android/server/appop/AttributedOp;->deepClone(Landroid/util/LongSparseArray;)Landroid/util/LongSparseArray;+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +HPLcom/android/server/appop/AttributedOp;->finishOrPause(Landroid/os/IBinder;ZZ)V+]Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;]Landroid/util/Pools$SimplePool;Lcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp;]Lcom/android/server/appop/HistoricalRegistry;Lcom/android/server/appop/HistoricalRegistry;]Landroid/app/AppOpsManager$NoteOpEvent;Landroid/app/AppOpsManager$NoteOpEvent;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; +HPLcom/android/server/appop/AttributedOp;->finished(Landroid/os/IBinder;)V +HPLcom/android/server/appop/AttributedOp;->finished(Landroid/os/IBinder;Z)V +HSPLcom/android/server/appop/AttributedOp;->isPaused()Z +HSPLcom/android/server/appop/AttributedOp;->isRunning()Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +PLcom/android/server/appop/AttributedOp;->onClientDeath(Landroid/os/IBinder;)V +HSPLcom/android/server/appop/AttributedOp;->onUidStateChanged(I)V+]Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; +HSPLcom/android/server/appop/AttributedOp;->rejected(II)V+]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp;]Lcom/android/server/appop/HistoricalRegistry;Lcom/android/server/appop/HistoricalRegistry; +HSPLcom/android/server/appop/AttributedOp;->rejected(JII)V+]Landroid/app/AppOpsManager$NoteOpEvent;Landroid/app/AppOpsManager$NoteOpEvent;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; +HPLcom/android/server/appop/AttributedOp;->started(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;IIII)V+]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp; +HPLcom/android/server/appop/AttributedOp;->started(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;IIZII)V +HPLcom/android/server/appop/AttributedOp;->startedOrPaused(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;IIZZII)V+]Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;Lcom/android/server/appop/AttributedOp$InProgressStartOpEvent;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;]Lcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;Lcom/android/server/appop/AttributedOp$InProgressStartOpEventPool;]Lcom/android/server/appop/AttributedOp;Lcom/android/server/appop/AttributedOp;]Lcom/android/server/appop/HistoricalRegistry;Lcom/android/server/appop/HistoricalRegistry;]Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService; PLcom/android/server/appop/AudioRestrictionManager$Restriction;-><clinit>()V PLcom/android/server/appop/AudioRestrictionManager$Restriction;-><init>()V PLcom/android/server/appop/AudioRestrictionManager$Restriction;-><init>(Lcom/android/server/appop/AudioRestrictionManager$Restriction-IA;)V @@ -9264,13 +9758,13 @@ PLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->-$$Nest$mapplyToHistory PLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->-$$Nest$mfilter(Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;JJILjava/lang/String;IILjava/lang/String;ILandroid/util/ArrayMap;)V HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;-><init>(Lcom/android/server/appop/DiscreteRegistry;)V HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->addDiscreteAccess(Ljava/lang/String;IIJJII)V+]Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;]Ljava/util/List;Ljava/util/ArrayList; -PLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->applyToHistory(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;ILandroid/util/ArrayMap;)V -HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->deserialize(Landroid/util/TypedXmlPullParser;J)V+]Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;]Landroid/util/TypedXmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser;]Ljava/util/List;Ljava/util/ArrayList; +HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->applyToHistory(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;ILandroid/util/ArrayMap;)V +HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->deserialize(Landroid/util/TypedXmlPullParser;J)V+]Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;]Landroid/util/TypedXmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser;]Ljava/util/List;Ljava/util/ArrayList;]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser; PLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->filter(JJILjava/lang/String;IILjava/lang/String;ILandroid/util/ArrayMap;)V HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->getOrCreateDiscreteOpEventsList(Ljava/lang/String;)Ljava/util/List;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; PLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->isEmpty()Z HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->lambda$deserialize$0(Lcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;Lcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;)I -PLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->merge(Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;)V +HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->merge(Lcom/android/server/appop/DiscreteRegistry$DiscreteOp;)V HPLcom/android/server/appop/DiscreteRegistry$DiscreteOp;->serialize(Landroid/util/TypedXmlSerializer;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; HPLcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;->-$$Nest$mserialize(Lcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;Landroid/util/TypedXmlSerializer;)V HPLcom/android/server/appop/DiscreteRegistry$DiscreteOpEvent;-><init>(Lcom/android/server/appop/DiscreteRegistry;JJIIII)V @@ -9309,7 +9803,7 @@ HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->addDiscreteAccess( PLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->applyToHistory(Landroid/app/AppOpsManager$HistoricalOps;ILandroid/util/ArrayMap;)V PLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->clearPackage(Ljava/lang/String;)V HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->deserialize(Landroid/util/TypedXmlPullParser;J)V -PLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->filter(JJILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;IILandroid/util/ArrayMap;)V +HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->filter(JJILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;IILandroid/util/ArrayMap;)V HPLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->getOrCreateDiscretePackageOps(Ljava/lang/String;)Lcom/android/server/appop/DiscreteRegistry$DiscretePackageOps;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; PLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->isEmpty()Z PLcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;->merge(Lcom/android/server/appop/DiscreteRegistry$DiscreteUidOps;)V @@ -9328,7 +9822,7 @@ PLcom/android/server/appop/DiscreteRegistry;->clearOnDiskHistoryLocked()V HPLcom/android/server/appop/DiscreteRegistry;->createAttributionChains(Lcom/android/server/appop/DiscreteRegistry$DiscreteOps;Ljava/util/Set;)Landroid/util/ArrayMap;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/List;Ljava/util/ArrayList; PLcom/android/server/appop/DiscreteRegistry;->createDiscreteAccessDir()V HSPLcom/android/server/appop/DiscreteRegistry;->createDiscreteAccessDirLocked()V -HPLcom/android/server/appop/DiscreteRegistry;->deleteOldDiscreteHistoryFilesLocked()V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/io/File;Ljava/io/File;]Ljava/time/Instant;Ljava/time/Instant;]Ljava/lang/Long;Ljava/lang/Long; +HPLcom/android/server/appop/DiscreteRegistry;->deleteOldDiscreteHistoryFilesLocked()V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File;]Ljava/time/Instant;Ljava/time/Instant;]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HPLcom/android/server/appop/DiscreteRegistry;->discretizeDuration(J)J HPLcom/android/server/appop/DiscreteRegistry;->discretizeTimeStamp(J)J PLcom/android/server/appop/DiscreteRegistry;->filterEventsList(Ljava/util/List;JJIILjava/lang/String;ILjava/lang/String;Landroid/util/ArrayMap;)Ljava/util/List; @@ -9357,7 +9851,7 @@ PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOps PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JLjava/util/LinkedList;ILjava/util/Set;)Ljava/util/LinkedList; HPLcom/android/server/appop/HistoricalRegistry$Persistence;->computeGlobalIntervalBeginMillis(I)J HPLcom/android/server/appop/HistoricalRegistry$Persistence;->generateFile(Ljava/io/File;I)Ljava/io/File; -PLcom/android/server/appop/HistoricalRegistry$Persistence;->getHistoricalFileNames(Ljava/io/File;)Ljava/util/Set; +HPLcom/android/server/appop/HistoricalRegistry$Persistence;->getHistoricalFileNames(Ljava/io/File;)Ljava/util/Set; HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->getLastPersistTimeMillisDLocked()J HPLcom/android/server/appop/HistoricalRegistry$Persistence;->handlePersistHistoricalOpsRecursiveDLocked(Ljava/io/File;Ljava/io/File;Ljava/util/List;Ljava/util/Set;I)V HPLcom/android/server/appop/HistoricalRegistry$Persistence;->normalizeSnapshotForSlotDuration(Ljava/util/List;J)V @@ -9365,7 +9859,7 @@ PLcom/android/server/appop/HistoricalRegistry$Persistence;->persistHistoricalOps HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalAttributionOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Landroid/util/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;+]Landroid/util/TypedXmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser;]Lcom/android/server/appop/HistoricalRegistry$Persistence;Lcom/android/server/appop/HistoricalRegistry$Persistence;]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser; HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;Landroid/util/TypedXmlPullParser;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;+]Landroid/util/TypedXmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser;]Lcom/android/server/appop/HistoricalRegistry$Persistence;Lcom/android/server/appop/HistoricalRegistry$Persistence;]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser; HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Ljava/util/List; -PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JILjava/util/Set;)Ljava/util/List; +HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JILjava/util/Set;)Ljava/util/List; HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalPackageOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILandroid/util/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;+]Landroid/util/TypedXmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser;]Lcom/android/server/appop/HistoricalRegistry$Persistence;Lcom/android/server/appop/HistoricalRegistry$Persistence;]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser; HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;Landroid/util/TypedXmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;+]Landroid/util/TypedXmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser;]Lcom/android/server/appop/HistoricalRegistry$Persistence;Lcom/android/server/appop/HistoricalRegistry$Persistence;]Lorg/xmlpull/v1/XmlPullParser;Lcom/android/internal/util/BinaryXmlPullParser; PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoryDLocked()Ljava/util/List; @@ -9385,7 +9879,7 @@ HSPLcom/android/server/appop/HistoricalRegistry;-><init>(Ljava/lang/Object;)V PLcom/android/server/appop/HistoricalRegistry;->clearHistoricalRegistry()V PLcom/android/server/appop/HistoricalRegistry;->clearHistory(ILjava/lang/String;)V PLcom/android/server/appop/HistoricalRegistry;->clearHistoryOnDiskDLocked()V -PLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IIJJI[Ljava/lang/String;Landroid/os/RemoteCallback;)V +HPLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IIJJI[Ljava/lang/String;Landroid/os/RemoteCallback;)V HSPLcom/android/server/appop/HistoricalRegistry;->getUpdatedPendingHistoricalOpsMLocked(J)Landroid/app/AppOpsManager$HistoricalOps;+]Landroid/app/AppOpsManager$HistoricalOps;Landroid/app/AppOpsManager$HistoricalOps;]Lcom/android/server/appop/HistoricalRegistry;Lcom/android/server/appop/HistoricalRegistry; HSPLcom/android/server/appop/HistoricalRegistry;->increaseOpAccessDuration(IILjava/lang/String;Ljava/lang/String;IIJJII)V+]Landroid/app/AppOpsManager$HistoricalOps;Landroid/app/AppOpsManager$HistoricalOps;]Lcom/android/server/appop/DiscreteRegistry;Lcom/android/server/appop/DiscreteRegistry;]Lcom/android/server/appop/HistoricalRegistry;Lcom/android/server/appop/HistoricalRegistry; HSPLcom/android/server/appop/HistoricalRegistry;->incrementOpAccessedCount(IILjava/lang/String;Ljava/lang/String;IIJII)V+]Landroid/app/AppOpsManager$HistoricalOps;Landroid/app/AppOpsManager$HistoricalOps;]Lcom/android/server/appop/DiscreteRegistry;Lcom/android/server/appop/DiscreteRegistry;]Lcom/android/server/appop/HistoricalRegistry;Lcom/android/server/appop/HistoricalRegistry; @@ -9565,12 +10059,16 @@ HSPLcom/android/server/appwidget/AppWidgetService;-><init>(Landroid/content/Cont HSPLcom/android/server/appwidget/AppWidgetService;->onBootPhase(I)V HSPLcom/android/server/appwidget/AppWidgetService;->onStart()V PLcom/android/server/appwidget/AppWidgetService;->onUserStopping(Lcom/android/server/SystemService$TargetUser;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Landroid/app/PendingIntent;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl$$ExternalSyntheticLambda0;->run()V PLcom/android/server/appwidget/AppWidgetServiceImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V PLcom/android/server/appwidget/AppWidgetServiceImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/appwidget/AppWidgetServiceImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;JLandroid/app/PendingIntent;)V PLcom/android/server/appwidget/AppWidgetServiceImpl$$ExternalSyntheticLambda2;->run()V HSPLcom/android/server/appwidget/AppWidgetServiceImpl$1;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V PLcom/android/server/appwidget/AppWidgetServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl$2;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Landroid/content/Intent;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V HSPLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V HSPLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal-IA;)V PLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;->applyResourceOverlaysToWidgets(Ljava/util/Set;IZ)V @@ -9627,6 +10125,7 @@ PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->enforceServ HPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getEnabledGroupProfileIds(I)[I+]Lcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;Lcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;]Landroid/os/UserManager;Landroid/os/UserManager; HPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getGroupParent(I)I HPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getProfileParent(I)I+]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Landroid/os/UserManager;Landroid/os/UserManager; +PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->hasCallerBindPermissionOrBindWhiteListedLocked(Ljava/lang/String;)Z HSPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isCallerInstantAppLocked()Z HSPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isEnabledGroupProfile(I)Z HPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isHostInPackageForUid(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;ILjava/lang/String;)Z @@ -9648,6 +10147,7 @@ PLcom/android/server/appwidget/AppWidgetServiceImpl;->$r8$lambda$-pnuBD8zEDJkMKR PLcom/android/server/appwidget/AppWidgetServiceImpl;->$r8$lambda$ne2lj53L5f59QDS01mljI3cXX8k(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->$r8$lambda$vJfmIaWcZKrw7hJuNaOQ9QpCQtY(Lcom/android/server/appwidget/AppWidgetServiceImpl;JLandroid/app/PendingIntent;)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$fgetmAppOpsManager(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/app/AppOpsManager; +PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$fgetmContext(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/content/Context; PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$fgetmDevicePolicyManagerInternal(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/app/admin/DevicePolicyManagerInternal; PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$fgetmHosts(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Ljava/util/ArrayList; PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$fgetmLock(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Ljava/lang/Object; @@ -9658,6 +10158,7 @@ HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$fgetmUserManager PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$fgetmWidgets(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Ljava/util/ArrayList; PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$mapplyResourceOverlaysToWidgetsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl;Ljava/util/Set;IZ)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$mensureGroupStateLoadedLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl;IZ)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$mhandleNotifyAppWidgetRemoved(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;IJ)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$mhandleNotifyAppWidgetViewDataChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;IIJ)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$mhandleNotifyProviderChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;ILandroid/appwidget/AppWidgetProviderInfo;J)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->-$$Nest$mhandleNotifyProvidersChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;)V @@ -9675,7 +10176,9 @@ HSPLcom/android/server/appwidget/AppWidgetServiceImpl;-><clinit>()V HSPLcom/android/server/appwidget/AppWidgetServiceImpl;-><init>(Landroid/content/Context;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->addProviderLocked(Landroid/content/pm/ResolveInfo;)Z PLcom/android/server/appwidget/AppWidgetServiceImpl;->addWidgetLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->allocateAppWidgetId(Ljava/lang/String;I)I PLcom/android/server/appwidget/AppWidgetServiceImpl;->applyResourceOverlaysToWidgetsLocked(Ljava/util/Set;IZ)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->bindAppWidgetId(Ljava/lang/String;IILandroid/content/ComponentName;Landroid/os/Bundle;)Z PLcom/android/server/appwidget/AppWidgetServiceImpl;->bindLoadedWidgetsLocked(Ljava/util/List;)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->bindRemoteViewsService(Ljava/lang/String;ILandroid/content/Intent;Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/IServiceConnection;I)Z PLcom/android/server/appwidget/AppWidgetServiceImpl;->cancelBroadcastsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V @@ -9684,9 +10187,14 @@ PLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroi PLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/os/Bundle;)Landroid/os/Bundle; PLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews; HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->computeMaximumWidgetBitmapMemory()V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->createAppWidgetConfigIntentSender(Ljava/lang/String;II)Landroid/content/IntentSender; PLcom/android/server/appwidget/AppWidgetServiceImpl;->createPartialProviderInfo(Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;Landroid/content/pm/ResolveInfo;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)Landroid/appwidget/AppWidgetProviderInfo; +PLcom/android/server/appwidget/AppWidgetServiceImpl;->decrementAppWidgetServiceRefCount(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->deleteAppWidgetId(Ljava/lang/String;I)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->deleteAppWidgetLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->deleteProviderLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->deleteWidgetsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;I)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->destroyRemoteViewsService(Landroid/content/Intent;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->dumpHost(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;ILjava/io/PrintWriter;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->dumpInternalLocked(Ljava/io/PrintWriter;)V @@ -9709,11 +10217,13 @@ HPLcom/android/server/appwidget/AppWidgetServiceImpl;->getStateFile(I)Ljava/io/F PLcom/android/server/appwidget/AppWidgetServiceImpl;->getUidForPackage(Ljava/lang/String;I)I HPLcom/android/server/appwidget/AppWidgetServiceImpl;->getWidgetIds(Ljava/util/ArrayList;)[I PLcom/android/server/appwidget/AppWidgetServiceImpl;->getWidgetState(Ljava/lang/String;I)[B +PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyAppWidgetRemoved(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;IJ)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyAppWidgetViewDataChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;IIJ)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyProviderChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;ILandroid/appwidget/AppWidgetProviderInfo;J)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyProvidersChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyUpdateAppWidget(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;ILandroid/widget/RemoteViews;J)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleUserUnlocked(I)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->incrementAndGetAppWidgetIdLocked(I)I PLcom/android/server/appwidget/AppWidgetServiceImpl;->incrementAppWidgetServiceRefCount(ILandroid/util/Pair;)V HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->isBoundWidgetPackage(Ljava/lang/String;I)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/appwidget/AppWidgetServiceImpl;->isLocalBinder()Z @@ -9739,6 +10249,7 @@ PLcom/android/server/appwidget/AppWidgetServiceImpl;->onPackageBroadcastReceived HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->onStart()V PLcom/android/server/appwidget/AppWidgetServiceImpl;->onUserStopped(I)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->onWidgetProviderAddedOrChangedLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->onWidgetRemovedLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->parseAppWidgetProviderInfo(Landroid/content/Context;Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Landroid/appwidget/AppWidgetProviderInfo; PLcom/android/server/appwidget/AppWidgetServiceImpl;->parseWidgetIdOptions(Landroid/util/TypedXmlPullParser;)Landroid/os/Bundle; PLcom/android/server/appwidget/AppWidgetServiceImpl;->partiallyUpdateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V @@ -9754,15 +10265,19 @@ HPLcom/android/server/appwidget/AppWidgetServiceImpl;->reloadWidgetsMaskedState( PLcom/android/server/appwidget/AppWidgetServiceImpl;->reloadWidgetsMaskedStateForGroup(I)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->removeHostsAndProvidersForPackageLocked(Ljava/lang/String;I)Z PLcom/android/server/appwidget/AppWidgetServiceImpl;->removeProvidersForPackageLocked(Ljava/lang/String;I)Z +PLcom/android/server/appwidget/AppWidgetServiceImpl;->removeWidgetLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->removeWidgetsForPackageLocked(Ljava/lang/String;II)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->resolveHostUidLocked(Ljava/lang/String;I)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->saveGroupStateAsync(I)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->saveStateLocked(I)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyAppWidgetRemovedLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyAppWidgetViewDataChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;I)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyGroupHostsForProvidersChangedLocked(I)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyProviderChangedLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyUpdateAppWidgetLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;Landroid/widget/RemoteViews;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendDeletedIntentLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V +PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendDisabledIntentLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendEnableAndUpdateIntentLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;[I)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendEnableIntentLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendOptionsChangedIntentLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V @@ -9770,7 +10285,7 @@ PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendUpdateIntentLocked(Lco HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeAppWidget(Landroid/util/TypedXmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;Z)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeHost(Landroid/util/TypedXmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeProvider(Landroid/util/TypedXmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V -HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeProviderInner(Landroid/util/TypedXmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Landroid/content/ComponentName;Landroid/content/ComponentName; +HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeProviderInner(Landroid/util/TypedXmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeProviderWithProviderInfo(Landroid/util/TypedXmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->setMinAppWidgetIdLocked(II)V HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->setSafeMode(Z)V @@ -9785,47 +10300,95 @@ HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetInstanceLo PLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetOptions(Ljava/lang/String;ILandroid/os/Bundle;)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetProvider(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V PLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetProviderInfo(Landroid/content/ComponentName;Ljava/lang/String;)V -HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateProvidersForPackageLocked(Ljava/lang/String;ILjava/util/Set;)Z+]Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;]Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Ljava/util/HashSet;Ljava/util/HashSet;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Intent;Landroid/content/Intent; +HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateProvidersForPackageLocked(Ljava/lang/String;ILjava/util/Set;)Z+]Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;]Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;]Ljava/util/HashSet;Ljava/util/HashSet;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Intent;Landroid/content/Intent; PLcom/android/server/appwidget/AppWidgetServiceImpl;->updateWidgetPackageSuspensionMaskedState(Landroid/content/Intent;ZI)V HPLcom/android/server/appwidget/AppWidgetServiceImpl;->writeProfileStateToFileLocked(Ljava/io/FileOutputStream;I)Z+]Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;]Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; HPLcom/android/server/appwidget/AppWidgetXmlUtil;->readAppWidgetProviderInfoLocked(Landroid/util/TypedXmlPullParser;)Landroid/appwidget/AppWidgetProviderInfo; -HPLcom/android/server/appwidget/AppWidgetXmlUtil;->writeAppWidgetProviderInfoLocked(Landroid/util/TypedXmlSerializer;Landroid/appwidget/AppWidgetProviderInfo;)V+]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; +HPLcom/android/server/appwidget/AppWidgetXmlUtil;->writeAppWidgetProviderInfoLocked(Landroid/util/TypedXmlSerializer;Landroid/appwidget/AppWidgetProviderInfo;)V+]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; HSPLcom/android/server/attention/AttentionManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/attention/AttentionManagerService;)V PLcom/android/server/attention/AttentionManagerService$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V +PLcom/android/server/attention/AttentionManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/attention/AttentionManagerService;)V +PLcom/android/server/attention/AttentionManagerService$$ExternalSyntheticLambda1;->run()V +PLcom/android/server/attention/AttentionManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/attention/AttentionManagerService;)V +PLcom/android/server/attention/AttentionManagerService$$ExternalSyntheticLambda2;->run()V +PLcom/android/server/attention/AttentionManagerService$AttentionCheck$1;-><init>(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;Lcom/android/server/attention/AttentionManagerService;)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheck$1;->logStats(I)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheck$1;->onSuccess(IJ)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->-$$Nest$fgetmIAttentionCallback(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;)Landroid/service/attention/IAttentionCallback; +PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->-$$Nest$fgetmIsDispatched(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;)Z +PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->-$$Nest$fgetmIsFulfilled(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;)Z +PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->-$$Nest$fputmIsDispatched(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;Z)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->-$$Nest$fputmIsFulfilled(Lcom/android/server/attention/AttentionManagerService$AttentionCheck;Z)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheck;-><init>(Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;Lcom/android/server/attention/AttentionManagerService;)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheck;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCache;->-$$Nest$fgetmLastComputed(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)J +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCache;->-$$Nest$fgetmResult(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)I +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCache;->-$$Nest$fgetmTimestamp(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)J +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCache;-><init>(JIJ)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;->-$$Nest$mdump(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;-><init>()V +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;->add(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;->get(I)Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache; +PLcom/android/server/attention/AttentionManagerService$AttentionCheckCacheBuffer;->getLast()Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache; HSPLcom/android/server/attention/AttentionManagerService$AttentionHandler;-><init>(Lcom/android/server/attention/AttentionManagerService;)V +PLcom/android/server/attention/AttentionManagerService$AttentionHandler;->handleMessage(Landroid/os/Message;)V HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand$TestableAttentionCallbackInternal;-><init>(Lcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;)V HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand$TestableProximityUpdateCallbackInternal;-><init>(Lcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;)V HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;-><init>(Lcom/android/server/attention/AttentionManagerService;)V HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand-IA;)V HSPLcom/android/server/attention/AttentionManagerService$AttentionServiceConnection;-><init>(Lcom/android/server/attention/AttentionManagerService;)V HSPLcom/android/server/attention/AttentionManagerService$AttentionServiceConnection;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$AttentionServiceConnection-IA;)V +PLcom/android/server/attention/AttentionManagerService$AttentionServiceConnection;->cleanupService()V +PLcom/android/server/attention/AttentionManagerService$AttentionServiceConnection;->init(Landroid/service/attention/IAttentionService;)V +PLcom/android/server/attention/AttentionManagerService$AttentionServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V HSPLcom/android/server/attention/AttentionManagerService$BinderService;-><init>(Lcom/android/server/attention/AttentionManagerService;)V HSPLcom/android/server/attention/AttentionManagerService$BinderService;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$BinderService-IA;)V PLcom/android/server/attention/AttentionManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HSPLcom/android/server/attention/AttentionManagerService$LocalService;-><init>(Lcom/android/server/attention/AttentionManagerService;)V HSPLcom/android/server/attention/AttentionManagerService$LocalService;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$LocalService-IA;)V -PLcom/android/server/attention/AttentionManagerService$LocalService;->isAttentionServiceSupported()Z +PLcom/android/server/attention/AttentionManagerService$LocalService;->checkAttention(JLandroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)Z +HPLcom/android/server/attention/AttentionManagerService$LocalService;->isAttentionServiceSupported()Z HSPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;-><init>(Lcom/android/server/attention/AttentionManagerService;)V HSPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$ScreenStateReceiver-IA;)V HPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +PLcom/android/server/attention/AttentionManagerService;->$r8$lambda$gB_-BdC0YJFCoSO95udknZ00hKg(Lcom/android/server/attention/AttentionManagerService;)V +PLcom/android/server/attention/AttentionManagerService;->$r8$lambda$yY--1bOyG1T9SAoQDRYxybMCm3A(Lcom/android/server/attention/AttentionManagerService;)V PLcom/android/server/attention/AttentionManagerService;->$r8$lambda$zAl0cVmXN5SK-pOb0598ByvkKOI(Lcom/android/server/attention/AttentionManagerService;Landroid/provider/DeviceConfig$Properties;)V PLcom/android/server/attention/AttentionManagerService;->-$$Nest$fgetmContext(Lcom/android/server/attention/AttentionManagerService;)Landroid/content/Context; PLcom/android/server/attention/AttentionManagerService;->-$$Nest$fgetmLock(Lcom/android/server/attention/AttentionManagerService;)Ljava/lang/Object; +PLcom/android/server/attention/AttentionManagerService;->-$$Nest$fgetmServiceBindingLatch(Lcom/android/server/attention/AttentionManagerService;)Ljava/util/concurrent/CountDownLatch; +PLcom/android/server/attention/AttentionManagerService;->-$$Nest$fputmBinding(Lcom/android/server/attention/AttentionManagerService;Z)V +PLcom/android/server/attention/AttentionManagerService;->-$$Nest$fputmServiceBindingLatch(Lcom/android/server/attention/AttentionManagerService;Ljava/util/concurrent/CountDownLatch;)V +PLcom/android/server/attention/AttentionManagerService;->-$$Nest$mappendResultToAttentionCacheBuffer(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)V PLcom/android/server/attention/AttentionManagerService;->-$$Nest$mcancelAndUnbindLocked(Lcom/android/server/attention/AttentionManagerService;)V PLcom/android/server/attention/AttentionManagerService;->-$$Nest$mdumpInternal(Lcom/android/server/attention/AttentionManagerService;Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/attention/AttentionManagerService;->-$$Nest$mhandlePendingCallbackLocked(Lcom/android/server/attention/AttentionManagerService;)V HSPLcom/android/server/attention/AttentionManagerService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/attention/AttentionManagerService;-><init>(Landroid/content/Context;Landroid/os/PowerManager;Ljava/lang/Object;Lcom/android/server/attention/AttentionManagerService$AttentionHandler;)V +PLcom/android/server/attention/AttentionManagerService;->appendResultToAttentionCacheBuffer(Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;)V +PLcom/android/server/attention/AttentionManagerService;->awaitServiceBinding(J)V +PLcom/android/server/attention/AttentionManagerService;->bindLocked()V +PLcom/android/server/attention/AttentionManagerService;->cancel()V +PLcom/android/server/attention/AttentionManagerService;->cancelAfterTimeoutLocked(J)V PLcom/android/server/attention/AttentionManagerService;->cancelAndUnbindLocked()V +PLcom/android/server/attention/AttentionManagerService;->checkAttention(JLandroid/attention/AttentionManagerInternal$AttentionCallbackInternal;)Z PLcom/android/server/attention/AttentionManagerService;->dumpInternal(Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/attention/AttentionManagerService;->freeIfInactiveLocked()V HSPLcom/android/server/attention/AttentionManagerService;->getIsServiceEnabled()Z HSPLcom/android/server/attention/AttentionManagerService;->getServiceConfigPackage(Landroid/content/Context;)Ljava/lang/String; HSPLcom/android/server/attention/AttentionManagerService;->getStaleAfterMillis()J +PLcom/android/server/attention/AttentionManagerService;->handlePendingCallbackLocked()V +PLcom/android/server/attention/AttentionManagerService;->isServiceAvailable()Z HSPLcom/android/server/attention/AttentionManagerService;->isServiceConfigured(Landroid/content/Context;)Z +PLcom/android/server/attention/AttentionManagerService;->lambda$bindLocked$2()V +PLcom/android/server/attention/AttentionManagerService;->lambda$cancelAndUnbindLocked$1()V PLcom/android/server/attention/AttentionManagerService;->lambda$onBootPhase$0(Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/attention/AttentionManagerService;->onBootPhase(I)V PLcom/android/server/attention/AttentionManagerService;->onDeviceConfigChange(Ljava/util/Set;)V HSPLcom/android/server/attention/AttentionManagerService;->onStart()V HSPLcom/android/server/attention/AttentionManagerService;->readValuesFromDeviceConfig()V +PLcom/android/server/attention/AttentionManagerService;->resolveAttentionService(Landroid/content/Context;)Landroid/content/ComponentName; PLcom/android/server/audio/AudioDeviceBroker$$ExternalSyntheticLambda0;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V HSPLcom/android/server/audio/AudioDeviceBroker$AudioModeInfo;-><init>(III)V PLcom/android/server/audio/AudioDeviceBroker$AudioModeInfo;->toString()Ljava/lang/String; @@ -9897,7 +10460,7 @@ HSPLcom/android/server/audio/AudioDeviceBroker;->init()V HSPLcom/android/server/audio/AudioDeviceBroker;->initRoutingStrategyIds()V HSPLcom/android/server/audio/AudioDeviceBroker;->isBluetoothA2dpOn()Z PLcom/android/server/audio/AudioDeviceBroker;->isBluetoothScoActive()Z -PLcom/android/server/audio/AudioDeviceBroker;->isBluetoothScoOn()Z +HPLcom/android/server/audio/AudioDeviceBroker;->isBluetoothScoOn()Z PLcom/android/server/audio/AudioDeviceBroker;->isBluetoothScoRequested()Z HSPLcom/android/server/audio/AudioDeviceBroker;->isDeviceActiveForCommunication(I)Z HPLcom/android/server/audio/AudioDeviceBroker;->isDeviceOnForCommunication(I)Z @@ -9916,6 +10479,7 @@ HSPLcom/android/server/audio/AudioDeviceBroker;->onUpdateCommunicationRoute(Ljav HSPLcom/android/server/audio/AudioDeviceBroker;->onUpdateCommunicationRouteClient(Ljava/lang/String;)V HSPLcom/android/server/audio/AudioDeviceBroker;->onUpdatePhoneStrategyDevice(Landroid/media/AudioDeviceAttributes;)V PLcom/android/server/audio/AudioDeviceBroker;->postAccessoryPlugMediaUnmute(I)V +PLcom/android/server/audio/AudioDeviceBroker;->postApplyVolumeOnDevice(IILjava/lang/String;)V PLcom/android/server/audio/AudioDeviceBroker;->postBluetoothActiveDevice(Lcom/android/server/audio/AudioDeviceBroker$BtDeviceInfo;I)V PLcom/android/server/audio/AudioDeviceBroker;->postBroadcastBecomingNoisy()V HSPLcom/android/server/audio/AudioDeviceBroker;->postBroadcastScoConnectionState(I)V @@ -9973,6 +10537,7 @@ HSPLcom/android/server/audio/AudioDeviceBroker;->updateActiveCommunicationDevice HSPLcom/android/server/audio/AudioDeviceBroker;->waitForBrokerHandlerCreation()V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda10;-><init>(Landroid/util/ArraySet;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V +PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda13;-><init>(Landroid/util/ArraySet;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda15;->test(Ljava/lang/Object;)Z @@ -9980,8 +10545,13 @@ PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda1;-><ini PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda2;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda3;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda4;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda5;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda6;-><init>(ILandroid/util/ArraySet;)V +PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda8;-><init>(Landroid/util/ArraySet;)V +PLcom/android/server/audio/AudioDeviceInventory$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V HSPLcom/android/server/audio/AudioDeviceInventory$1;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V PLcom/android/server/audio/AudioDeviceInventory$1;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/audio/AudioDeviceInventory$1;->put(Ljava/lang/String;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo; @@ -9993,12 +10563,15 @@ PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;-><init>(ILjava/lang/ PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;-><init>(ILjava/lang/String;Ljava/lang/String;ILjava/util/UUID;)V PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->getKey()Ljava/lang/String; PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->makeDeviceListKey(ILjava/lang/String;)Ljava/lang/String; +PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->toString()Ljava/lang/String; PLcom/android/server/audio/AudioDeviceInventory$WiredDeviceConnectionState;-><init>(Lcom/android/server/audio/AudioDeviceInventory;Landroid/media/AudioDeviceAttributes;ILjava/lang/String;)V +PLcom/android/server/audio/AudioDeviceInventory;->$r8$lambda$3_jRHUxOMebB2lVGo2VbJbNcmc0(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V PLcom/android/server/audio/AudioDeviceInventory;->$r8$lambda$HYq93uKPlqohgAG5OlyY7VjY2s0(Ljava/io/PrintWriter;Ljava/lang/Integer;)V PLcom/android/server/audio/AudioDeviceInventory;->$r8$lambda$ISNkyOUql4xu-sCKth7P1RBDEVI(Landroid/util/ArraySet;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V PLcom/android/server/audio/AudioDeviceInventory;->$r8$lambda$budNJyYK6nq05DI-Nmeb7anmlzg(Lcom/android/server/audio/AudioDeviceInventory;ILjava/lang/String;)V PLcom/android/server/audio/AudioDeviceInventory;->$r8$lambda$elS7oTnyBXElIuzsHyhLScGqn1c(Landroid/util/ArraySet;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V PLcom/android/server/audio/AudioDeviceInventory;->$r8$lambda$iE-lLuUFFncL4q70nF1g5q6CBNE(Lcom/android/server/audio/AudioDeviceInventory;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)Z +PLcom/android/server/audio/AudioDeviceInventory;->$r8$lambda$pyQisz62xfmMVAlzbg8G2zotHjA(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)V HSPLcom/android/server/audio/AudioDeviceInventory;-><clinit>()V HSPLcom/android/server/audio/AudioDeviceInventory;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V PLcom/android/server/audio/AudioDeviceInventory;->checkSendBecomingNoisyIntentInt(III)I @@ -10020,6 +10593,8 @@ PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dp$6(Landro PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dp$7(ILjava/lang/String;)V PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dpSink$8(Landroid/util/ArraySet;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V PLcom/android/server/audio/AudioDeviceInventory;->lambda$dump$0(Ljava/io/PrintWriter;Ljava/lang/Integer;)V +PLcom/android/server/audio/AudioDeviceInventory;->lambda$dump$2(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V +PLcom/android/server/audio/AudioDeviceInventory;->lambda$dump$3(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)V PLcom/android/server/audio/AudioDeviceInventory;->lambda$isCurrentDeviceConnected$14(Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)Z PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceUnavailableLater(Ljava/lang/String;I)V @@ -10040,17 +10615,6 @@ PLcom/android/server/audio/AudioDeviceInventory;->setPreferredDevicesForStrategy PLcom/android/server/audio/AudioDeviceInventory;->setWiredDeviceConnectionState(Landroid/media/AudioDeviceAttributes;ILjava/lang/String;)I HSPLcom/android/server/audio/AudioDeviceInventory;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo; PLcom/android/server/audio/AudioDeviceInventory;->updateAudioRoutes(II)V -HSPLcom/android/server/audio/AudioEventLogger$Event;-><clinit>()V -HSPLcom/android/server/audio/AudioEventLogger$Event;-><init>()V -HSPLcom/android/server/audio/AudioEventLogger$Event;->printLog(ILjava/lang/String;)Lcom/android/server/audio/AudioEventLogger$Event; -HSPLcom/android/server/audio/AudioEventLogger$Event;->printLog(Ljava/lang/String;)Lcom/android/server/audio/AudioEventLogger$Event; -PLcom/android/server/audio/AudioEventLogger$Event;->toString()Ljava/lang/String; -HSPLcom/android/server/audio/AudioEventLogger$StringEvent;-><init>(Ljava/lang/String;)V -HSPLcom/android/server/audio/AudioEventLogger$StringEvent;->eventToString()Ljava/lang/String; -HSPLcom/android/server/audio/AudioEventLogger;-><init>(ILjava/lang/String;)V -PLcom/android/server/audio/AudioEventLogger;->dump(Ljava/io/PrintWriter;)V -HSPLcom/android/server/audio/AudioEventLogger;->log(Lcom/android/server/audio/AudioEventLogger$Event;)V -HSPLcom/android/server/audio/AudioEventLogger;->loglogi(Ljava/lang/String;Ljava/lang/String;)V HSPLcom/android/server/audio/AudioService$$ExternalSyntheticLambda0;-><init>()V HSPLcom/android/server/audio/AudioService$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I HSPLcom/android/server/audio/AudioService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/audio/AudioService;)V @@ -10107,6 +10671,7 @@ HSPLcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener;- HSPLcom/android/server/audio/AudioService$AudioSystemThread;-><init>(Lcom/android/server/audio/AudioService;)V HSPLcom/android/server/audio/AudioService$AudioSystemThread;->run()V PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;-><init>(IIILjava/lang/String;)V +PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;-><init>(IILjava/lang/String;)V PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;->getVolumeIndex()I PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;->hasVolumeIndex()Z PLcom/android/server/audio/AudioService$ForceControlStreamClient;-><init>(Lcom/android/server/audio/AudioService;Landroid/os/IBinder;)V @@ -10215,7 +10780,6 @@ HSPLcom/android/server/audio/AudioService;->-$$Nest$fgetmAudioSystem(Lcom/androi HSPLcom/android/server/audio/AudioService;->-$$Nest$fgetmCameraSoundForced(Lcom/android/server/audio/AudioService;)Z HSPLcom/android/server/audio/AudioService;->-$$Nest$fgetmContentResolver(Lcom/android/server/audio/AudioService;)Landroid/content/ContentResolver; PLcom/android/server/audio/AudioService;->-$$Nest$fgetmDeviceBroker(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioDeviceBroker; -PLcom/android/server/audio/AudioService;->-$$Nest$fgetmDynPolicyLogger(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioEventLogger; HSPLcom/android/server/audio/AudioService;->-$$Nest$fgetmEncodedSurroundMode(Lcom/android/server/audio/AudioService;)I PLcom/android/server/audio/AudioService;->-$$Nest$fgetmInputMethodServiceUid(Lcom/android/server/audio/AudioService;)I PLcom/android/server/audio/AudioService;->-$$Nest$fgetmInputMethodServiceUidLock(Lcom/android/server/audio/AudioService;)Ljava/lang/Object; @@ -10279,6 +10843,7 @@ HSPLcom/android/server/audio/AudioService;->-$$Nest$mupdateAssistantUIdLocked(Lc HSPLcom/android/server/audio/AudioService;->-$$Nest$mupdateMasterBalance(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V HSPLcom/android/server/audio/AudioService;->-$$Nest$mupdateMasterMono(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V HSPLcom/android/server/audio/AudioService;->-$$Nest$mupdateRingerAndZenModeAffectedStreams(Lcom/android/server/audio/AudioService;)Z +PLcom/android/server/audio/AudioService;->-$$Nest$sfgetACTION_CHECK_MUSIC_ACTIVE()Ljava/lang/String; HSPLcom/android/server/audio/AudioService;->-$$Nest$smsendMsg(Landroid/os/Handler;IIIILjava/lang/Object;I)V HSPLcom/android/server/audio/AudioService;-><clinit>()V HSPLcom/android/server/audio/AudioService;-><init>(Landroid/content/Context;)V @@ -10301,6 +10866,7 @@ HPLcom/android/server/audio/AudioService;->callingHasAudioSettingsPermission()Z PLcom/android/server/audio/AudioService;->callingOrSelfHasAudioSettingsPermission()Z PLcom/android/server/audio/AudioService;->canBeSpatialized(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;)Z PLcom/android/server/audio/AudioService;->canProjectAudio(Landroid/media/projection/IMediaProjection;)Z +PLcom/android/server/audio/AudioService;->cancelMusicActiveCheck()V HSPLcom/android/server/audio/AudioService;->checkAllAliasStreamVolumes()V HSPLcom/android/server/audio/AudioService;->checkAllFixedVolumeDevices()V PLcom/android/server/audio/AudioService;->checkAudioSettingsPermission(Ljava/lang/String;)Z @@ -10339,6 +10905,7 @@ PLcom/android/server/audio/AudioService;->forceVolumeControlStream(ILandroid/os/ HPLcom/android/server/audio/AudioService;->getActivePlaybackConfigurations()Ljava/util/List; HPLcom/android/server/audio/AudioService;->getActiveRecordingConfigurations()Ljava/util/List; PLcom/android/server/audio/AudioService;->getActiveStreamType(I)I +PLcom/android/server/audio/AudioService;->getAllowedCapturePolicy()I HSPLcom/android/server/audio/AudioService;->getAudioHalPids()Ljava/util/Set; HSPLcom/android/server/audio/AudioService;->getAudioModeOwner()Lcom/android/server/audio/AudioDeviceBroker$AudioModeInfo; HSPLcom/android/server/audio/AudioService;->getAudioModeOwnerHandler()Lcom/android/server/audio/AudioService$SetModeDeathHandler; @@ -10351,7 +10918,7 @@ PLcom/android/server/audio/AudioService;->getContentResolver()Landroid/content/C PLcom/android/server/audio/AudioService;->getCurrentAudioFocus()I HSPLcom/android/server/audio/AudioService;->getCurrentUserId()I HSPLcom/android/server/audio/AudioService;->getDeviceForStream(I)I+]Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService; -PLcom/android/server/audio/AudioService;->getDeviceMaskForStream(I)I +HPLcom/android/server/audio/AudioService;->getDeviceMaskForStream(I)I PLcom/android/server/audio/AudioService;->getDeviceSensorUuid(Landroid/media/AudioDeviceAttributes;)Ljava/util/UUID; HSPLcom/android/server/audio/AudioService;->getDeviceSetForStream(I)Ljava/util/Set;+]Lcom/android/server/audio/AudioService$VolumeStreamState;Lcom/android/server/audio/AudioService$VolumeStreamState;]Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService; HSPLcom/android/server/audio/AudioService;->getDeviceSetForStreamDirect(I)Ljava/util/Set; @@ -10402,7 +10969,7 @@ HSPLcom/android/server/audio/AudioService;->isFullVolumeDevice(I)Z HSPLcom/android/server/audio/AudioService;->isInCommunication()Z PLcom/android/server/audio/AudioService;->isMicrophoneMuted()Z HSPLcom/android/server/audio/AudioService;->isMicrophoneSupposedToBeMuted()Z -PLcom/android/server/audio/AudioService;->isMusicActive(Z)Z +HPLcom/android/server/audio/AudioService;->isMusicActive(Z)Z PLcom/android/server/audio/AudioService;->isMuteAdjust(I)Z PLcom/android/server/audio/AudioService;->isPlatformAutomotive()Z HSPLcom/android/server/audio/AudioService;->isPlatformTelevision()Z @@ -10462,6 +11029,7 @@ HPLcom/android/server/audio/AudioService;->playerEvent(III)V PLcom/android/server/audio/AudioService;->playerSessionId(II)V PLcom/android/server/audio/AudioService;->portEvent(IILandroid/os/PersistableBundle;)V PLcom/android/server/audio/AudioService;->postAccessoryPlugMediaUnmute(I)V +PLcom/android/server/audio/AudioService;->postApplyVolumeOnDevice(IILjava/lang/String;)V HSPLcom/android/server/audio/AudioService;->postInitSpatializerHeadTrackingSensors()V PLcom/android/server/audio/AudioService;->postObserveDevicesForAllStreams()V HSPLcom/android/server/audio/AudioService;->postObserveDevicesForAllStreams(I)V @@ -10499,6 +11067,7 @@ HSPLcom/android/server/audio/AudioService;->retrieveStoredDeviceVolumeBehavior(I PLcom/android/server/audio/AudioService;->safeMediaVolumeIndex(I)I PLcom/android/server/audio/AudioService;->safeMediaVolumeStateToString(I)Ljava/lang/String; HSPLcom/android/server/audio/AudioService;->scheduleLoadSoundEffects()V +PLcom/android/server/audio/AudioService;->scheduleMusicActiveCheck()V HSPLcom/android/server/audio/AudioService;->selectOneAudioDevice(Ljava/util/Set;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/Iterator;Ljava/util/TreeMap$KeyIterator;]Ljava/util/Set;Ljava/util/TreeSet; HSPLcom/android/server/audio/AudioService;->sendBroadcastToAll(Landroid/content/Intent;)V HSPLcom/android/server/audio/AudioService;->sendEnabledSurroundFormats(Landroid/content/ContentResolver;Z)V @@ -10509,12 +11078,12 @@ HSPLcom/android/server/audio/AudioService;->sendStickyBroadcastToAll(Landroid/co PLcom/android/server/audio/AudioService;->sendVolumeUpdate(IIIII)V PLcom/android/server/audio/AudioService;->setAllowedCapturePolicy(I)I PLcom/android/server/audio/AudioService;->setAvrcpAbsoluteVolumeSupported(Z)V -PLcom/android/server/audio/AudioService;->setBluetoothA2dpOn(Z)V +HPLcom/android/server/audio/AudioService;->setBluetoothA2dpOn(Z)V PLcom/android/server/audio/AudioService;->setBluetoothScoOn(Z)V PLcom/android/server/audio/AudioService;->setCommunicationDevice(Landroid/os/IBinder;I)Z PLcom/android/server/audio/AudioService;->setDeviceVolume(Lcom/android/server/audio/AudioService$VolumeStreamState;I)V PLcom/android/server/audio/AudioService;->setDeviceVolumeBehavior(Landroid/media/AudioDeviceAttributes;ILjava/lang/String;)V -PLcom/android/server/audio/AudioService;->setLeAudioVolumeOnModeUpdate(I)V +PLcom/android/server/audio/AudioService;->setLeAudioVolumeOnModeUpdate(III)V HSPLcom/android/server/audio/AudioService;->setMicMuteFromSwitchInput()V PLcom/android/server/audio/AudioService;->setMicrophoneMute(ZLjava/lang/String;ILjava/lang/String;)V HSPLcom/android/server/audio/AudioService;->setMicrophoneMuteNoCallerCheck(I)V @@ -10610,6 +11179,7 @@ PLcom/android/server/audio/BtHelper$1;->onServiceDisconnected(I)V PLcom/android/server/audio/BtHelper;->-$$Nest$fgetmDeviceBroker(Lcom/android/server/audio/BtHelper;)Lcom/android/server/audio/AudioDeviceBroker; HSPLcom/android/server/audio/BtHelper;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V HSPLcom/android/server/audio/BtHelper;->broadcastScoConnectionState(I)V +PLcom/android/server/audio/BtHelper;->btDeviceClassToString(I)Ljava/lang/String; PLcom/android/server/audio/BtHelper;->btHeadsetDeviceToAudioDevice(Landroid/bluetooth/BluetoothDevice;)Landroid/media/AudioDeviceAttributes; PLcom/android/server/audio/BtHelper;->checkScoAudioState()V PLcom/android/server/audio/BtHelper;->connectBluetoothScoAudioHelper(Landroid/bluetooth/BluetoothHeadset;Landroid/bluetooth/BluetoothDevice;I)Z @@ -10781,13 +11351,14 @@ HSPLcom/android/server/audio/PlaybackActivityMonitor;-><clinit>()V HSPLcom/android/server/audio/PlaybackActivityMonitor;-><init>(Landroid/content/Context;ILjava/util/function/Consumer;)V HPLcom/android/server/audio/PlaybackActivityMonitor;->checkConfigurationCaller(ILandroid/media/AudioPlaybackConfiguration;I)Z HPLcom/android/server/audio/PlaybackActivityMonitor;->checkVolumeForPrivilegedAlarm(Landroid/media/AudioPlaybackConfiguration;I)V -HPLcom/android/server/audio/PlaybackActivityMonitor;->dispatchPlaybackChange(Z)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/media/IPlaybackConfigDispatcher;Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;,Lcom/android/server/audio/AudioService$3;,Landroid/media/AudioManager$3;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue;]Lcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;Lcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient; +HPLcom/android/server/audio/PlaybackActivityMonitor;->dispatchPlaybackChange(Z)V+]Ljava/util/concurrent/ConcurrentLinkedQueue;Ljava/util/concurrent/ConcurrentLinkedQueue;]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;Lcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;]Ljava/util/Iterator;Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;,Ljava/util/ArrayList$Itr;]Landroid/media/IPlaybackConfigDispatcher;Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;,Lcom/android/server/audio/AudioService$3;,Landroid/media/AudioManager$3;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/audio/PlaybackActivityMonitor;->duckPlayers(Lcom/android/server/audio/FocusRequester;Lcom/android/server/audio/FocusRequester;Z)Z PLcom/android/server/audio/PlaybackActivityMonitor;->dump(Ljava/io/PrintWriter;)V PLcom/android/server/audio/PlaybackActivityMonitor;->fadeOutPlayers(Lcom/android/server/audio/FocusRequester;Lcom/android/server/audio/FocusRequester;)Z PLcom/android/server/audio/PlaybackActivityMonitor;->forgetUid(I)V HPLcom/android/server/audio/PlaybackActivityMonitor;->getActivePlaybackConfigurations(Z)Ljava/util/List; PLcom/android/server/audio/PlaybackActivityMonitor;->getAllAllowedCapturePolicies()Ljava/util/HashMap; +PLcom/android/server/audio/PlaybackActivityMonitor;->getAllowedCapturePolicy(I)I HSPLcom/android/server/audio/PlaybackActivityMonitor;->initEventHandler()V PLcom/android/server/audio/PlaybackActivityMonitor;->isPlaybackActiveForUid(I)Z HSPLcom/android/server/audio/PlaybackActivityMonitor;->maybeMutePlayerAwaitingConnection(Landroid/media/AudioPlaybackConfiguration;)V @@ -10913,6 +11484,7 @@ HSPLcom/android/server/audio/SpatializerHelper$SADeviceState;-><init>(ILjava/lan HSPLcom/android/server/audio/SpatializerHelper$SADeviceState;->fromPersistedString(Ljava/lang/String;)Lcom/android/server/audio/SpatializerHelper$SADeviceState; HSPLcom/android/server/audio/SpatializerHelper$SADeviceState;->getAudioDeviceAttributes()Landroid/media/AudioDeviceAttributes; PLcom/android/server/audio/SpatializerHelper$SADeviceState;->toPersistableString()Ljava/lang/String; +PLcom/android/server/audio/SpatializerHelper$SADeviceState;->toString()Ljava/lang/String; HSPLcom/android/server/audio/SpatializerHelper$SpatializerCallback;-><init>(Lcom/android/server/audio/SpatializerHelper;)V HSPLcom/android/server/audio/SpatializerHelper$SpatializerCallback;-><init>(Lcom/android/server/audio/SpatializerHelper;Lcom/android/server/audio/SpatializerHelper$SpatializerCallback-IA;)V PLcom/android/server/audio/SpatializerHelper$SpatializerCallback;->onLevelChanged(B)V @@ -11296,20 +11868,38 @@ PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLam PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda2;-><init>(I)V PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V +PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda3;-><init>(Z)V PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V +PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda4;-><init>(Landroid/content/Context;I)V PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda6;-><init>(I)V PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V +PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda7;-><init>(Ljava/util/List;Landroid/view/autofill/AutofillId;)V +PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V +PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda8;-><init>(I)V +PLcom/android/server/autofill/PresentationStatsEventLogger$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V PLcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;-><init>(Lcom/android/server/autofill/PresentationStatsEventLogger;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$95QTimOJkFUrUczVNOoJX-FiCZU(Ljava/util/List;Landroid/view/autofill/AutofillId;Lcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$SxPLA8_Zli_SsC1QKfapNPxN87Y(Ljava/util/List;Landroid/view/autofill/AutofillId;Lcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$X-Cec9aQ_LA42YqmQG6YWtprgvY(ZLcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$elhiqBbWtCkxBK3T7KJfKicku6M(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$imu690k2WhBmB39epkYWZG7iSiM(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$oNCy9m6lH0mgUnXdkLmT3dUSy5s(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$xAydplq7nY7uAopR-vUprhWIuOs(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->$r8$lambda$xq4EPA0UdBapdRj8DlEOoN9U1_o(Landroid/content/Context;ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V PLcom/android/server/autofill/PresentationStatsEventLogger;-><init>(I)V PLcom/android/server/autofill/PresentationStatsEventLogger;->forSessionId(I)Lcom/android/server/autofill/PresentationStatsEventLogger; PLcom/android/server/autofill/PresentationStatsEventLogger;->getDatasetCountForAutofillId(Ljava/util/List;Landroid/view/autofill/AutofillId;)I PLcom/android/server/autofill/PresentationStatsEventLogger;->getDisplayPresentationType(I)I PLcom/android/server/autofill/PresentationStatsEventLogger;->getNoPresentationEventReason(I)I +PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetAutofillServiceUid$10(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetAvailableCount$3(Ljava/util/List;Landroid/view/autofill/AutofillId;Lcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetCountShown$4(Ljava/util/List;Landroid/view/autofill/AutofillId;Lcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetInlinePresentationAndSuggestionHostUid$9(Landroid/content/Context;ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetIsNewRequest$11(ZLcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetNoPresentationEventReason$1(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetNoPresentationEventReasonIfNoReasonExists$2(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V PLcom/android/server/autofill/PresentationStatsEventLogger;->lambda$maybeSetRequestId$0(ILcom/android/server/autofill/PresentationStatsEventLogger$PresentationStatsEventInternal;)V PLcom/android/server/autofill/PresentationStatsEventLogger;->logAndEndEvent()V PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetAutofillServiceUid(I)V @@ -11317,7 +11907,9 @@ PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetAvailableCo PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetCountShown(Ljava/util/List;Landroid/view/autofill/AutofillId;)V PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetDisplayPresentationType(I)V PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetInlinePresentationAndSuggestionHostUid(Landroid/content/Context;I)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetIsNewRequest(Z)V PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetNoPresentationEventReason(I)V +PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetNoPresentationEventReasonIfNoReasonExists(I)V PLcom/android/server/autofill/PresentationStatsEventLogger;->maybeSetRequestId(I)V PLcom/android/server/autofill/PresentationStatsEventLogger;->startNewEvent()V PLcom/android/server/autofill/RemoteAugmentedAutofillService$$ExternalSyntheticLambda0;-><init>(Landroid/os/ICancellationSignal;)V @@ -11688,18 +12280,23 @@ PLcom/android/server/autofill/ui/CustomScrollView;->onMeasure(II)V PLcom/android/server/autofill/ui/CustomScrollView;->setMaxBodyHeightPercent(Landroid/content/Context;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/autofill/ui/InlineContentProviderImpl;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl$$ExternalSyntheticLambda0;->run()V +PLcom/android/server/autofill/ui/InlineContentProviderImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/autofill/ui/InlineContentProviderImpl;)V +PLcom/android/server/autofill/ui/InlineContentProviderImpl$$ExternalSyntheticLambda1;->run()V PLcom/android/server/autofill/ui/InlineContentProviderImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/autofill/ui/InlineContentProviderImpl;IILcom/android/internal/view/inline/IInlineContentCallback;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl$$ExternalSyntheticLambda2;->run()V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->$r8$lambda$BjZkCdsCkOipPWFspXcidnMzdKI(Lcom/android/server/autofill/ui/InlineContentProviderImpl;IILcom/android/internal/view/inline/IInlineContentCallback;)V +PLcom/android/server/autofill/ui/InlineContentProviderImpl;->$r8$lambda$UJ9Me98vkLkpMX54UCQ58cg4p34(Lcom/android/server/autofill/ui/InlineContentProviderImpl;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->$r8$lambda$v48Do4L1mg7cec4s91jTuKeui3Y(Lcom/android/server/autofill/ui/InlineContentProviderImpl;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl;-><clinit>()V PLcom/android/server/autofill/ui/InlineContentProviderImpl;-><init>(Lcom/android/server/autofill/ui/RemoteInlineSuggestionViewConnector;Lcom/android/server/autofill/ui/RemoteInlineSuggestionUi;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->copy()Lcom/android/server/autofill/ui/InlineContentProviderImpl; +PLcom/android/server/autofill/ui/InlineContentProviderImpl;->handleGetSurfacePackage()V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->handleOnSurfacePackageReleased()V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->handleProvideContent(IILcom/android/internal/view/inline/IInlineContentCallback;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->lambda$provideContent$0(IILcom/android/internal/view/inline/IInlineContentCallback;)V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->onSurfacePackageReleased()V PLcom/android/server/autofill/ui/InlineContentProviderImpl;->provideContent(IILcom/android/internal/view/inline/IInlineContentCallback;)V +PLcom/android/server/autofill/ui/InlineContentProviderImpl;->requestSurfacePackage()V PLcom/android/server/autofill/ui/InlineFillUi$InlineFillUiInfo;-><init>(Landroid/view/inputmethod/InlineSuggestionsRequest;Landroid/view/autofill/AutofillId;Ljava/lang/String;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;II)V HPLcom/android/server/autofill/ui/InlineFillUi;-><init>(Landroid/view/autofill/AutofillId;)V PLcom/android/server/autofill/ui/InlineFillUi;-><init>(Lcom/android/server/autofill/ui/InlineFillUi$InlineFillUiInfo;Landroid/util/SparseArray;)V @@ -11913,7 +12510,7 @@ PLcom/android/server/backup/BackupManagerService;->setBackupServiceActive(IZ)V PLcom/android/server/backup/BackupManagerService;->startServiceForUser(I)V PLcom/android/server/backup/BackupManagerService;->startServiceForUser(ILcom/android/server/backup/UserBackupManagerService;)V PLcom/android/server/backup/BackupManagerService;->stopServiceForUser(I)V -PLcom/android/server/backup/BackupManagerService;->updateTransportAttributes(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V +HPLcom/android/server/backup/BackupManagerService;->updateTransportAttributes(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V PLcom/android/server/backup/BackupManagerService;->updateTransportAttributesForUser(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V PLcom/android/server/backup/BackupPasswordManager$PasswordHashFileCodec;-><init>()V PLcom/android/server/backup/BackupPasswordManager$PasswordHashFileCodec;-><init>(Lcom/android/server/backup/BackupPasswordManager$PasswordHashFileCodec-IA;)V @@ -12030,7 +12627,7 @@ HPLcom/android/server/backup/TransportManager;->getCurrentTransportClient(Ljava/ PLcom/android/server/backup/TransportManager;->getCurrentTransportClientOrThrow(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportConnection; HPLcom/android/server/backup/TransportManager;->getCurrentTransportName()Ljava/lang/String; HPLcom/android/server/backup/TransportManager;->getRegisteredTransportComponentLocked(Ljava/lang/String;)Landroid/content/ComponentName; -PLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionLocked(Ljava/lang/String;)Lcom/android/server/backup/TransportManager$TransportDescription; +HPLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionLocked(Ljava/lang/String;)Lcom/android/server/backup/TransportManager$TransportDescription; PLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionOrThrowLocked(Landroid/content/ComponentName;)Lcom/android/server/backup/TransportManager$TransportDescription; PLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionOrThrowLocked(Ljava/lang/String;)Lcom/android/server/backup/TransportManager$TransportDescription; HPLcom/android/server/backup/TransportManager;->getRegisteredTransportEntryLocked(Ljava/lang/String;)Ljava/util/Map$Entry; @@ -12082,8 +12679,6 @@ PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda2;- PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda2;->run()V PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/backup/UserBackupManagerService;J)V PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V -PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V -PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda6;->accept(I)V PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportConnection;)V PLcom/android/server/backup/UserBackupManagerService$$ExternalSyntheticLambda8;->onFinished(Ljava/lang/String;)V PLcom/android/server/backup/UserBackupManagerService$1;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V @@ -12114,9 +12709,7 @@ HPLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->release() PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$-u0zY1RZBK0F1iiQXSBdZXtowqw(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)V HPLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$KQe6I6ACxL5wHHBaieNGnvSv9E0(Lcom/android/server/backup/UserBackupManagerService;Ljava/util/Set;Ljava/lang/String;)V PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$NC_2Qew24Drt2XSGH4evZzWYdKo(Lcom/android/server/backup/UserBackupManagerService;I)V -PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$_1aS3AAItM7s-KyXwSj8JqgOMbE(Lcom/android/server/backup/UserBackupManagerService;JLcom/android/server/backup/BackupRestoreTask;)V PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$dQdNTkT3x-bbcTRJ-qzlv2hKbw8(Lcom/android/server/backup/UserBackupManagerService;)V -PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$n_56D91NHjy88oKim7gSB2A26Fw(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)V PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$nhDpousXIb-UWNtQnFwKddTYzHQ(Lcom/android/server/backup/UserBackupManagerService;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/backup/UserBackupManagerService;->$r8$lambda$p-YmQE0-8KntM3V_xWhWAnw-KhI(Lcom/android/server/backup/UserBackupManagerService;I)V PLcom/android/server/backup/UserBackupManagerService;->-$$Nest$fgetmBackupHandler(Lcom/android/server/backup/UserBackupManagerService;)Lcom/android/server/backup/internal/BackupHandler; @@ -12203,10 +12796,8 @@ PLcom/android/server/backup/UserBackupManagerService;->isEnabled()Z PLcom/android/server/backup/UserBackupManagerService;->isRestoreInProgress()Z PLcom/android/server/backup/UserBackupManagerService;->isSetupComplete()Z PLcom/android/server/backup/UserBackupManagerService;->lambda$handleCancel$4(I)V -PLcom/android/server/backup/UserBackupManagerService;->lambda$opComplete$10(JLcom/android/server/backup/BackupRestoreTask;)V HPLcom/android/server/backup/UserBackupManagerService;->lambda$parseLeftoverJournals$0(Ljava/util/Set;Ljava/lang/String;)V PLcom/android/server/backup/UserBackupManagerService;->lambda$requestBackup$1(Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)V -PLcom/android/server/backup/UserBackupManagerService;->lambda$restoreAtInstall$9(Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;)V PLcom/android/server/backup/UserBackupManagerService;->lambda$waitUntilOperationComplete$3(I)V PLcom/android/server/backup/UserBackupManagerService;->listAllTransports()[Ljava/lang/String; PLcom/android/server/backup/UserBackupManagerService;->logBackupComplete(Ljava/lang/String;)V @@ -12227,6 +12818,7 @@ HPLcom/android/server/backup/UserBackupManagerService;->scheduleNextFullBackupJo PLcom/android/server/backup/UserBackupManagerService;->setBackupEnabled(ZZ)V PLcom/android/server/backup/UserBackupManagerService;->setBackupRunning(Z)V PLcom/android/server/backup/UserBackupManagerService;->setClearingData(Z)V +PLcom/android/server/backup/UserBackupManagerService;->setCurrentToken(J)V PLcom/android/server/backup/UserBackupManagerService;->setJournal(Lcom/android/server/backup/DataChangedJournal;)V PLcom/android/server/backup/UserBackupManagerService;->setLastBackupPass(J)V PLcom/android/server/backup/UserBackupManagerService;->setRestoreInProgress(Z)V @@ -12270,7 +12862,7 @@ HPLcom/android/server/backup/fullbackup/FullBackupEntry;-><init>(Ljava/lang/Stri PLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Lcom/android/server/backup/fullbackup/FullBackupEntry;)I PLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Ljava/lang/Object;)I PLcom/android/server/backup/fullbackup/FullBackupTask;-><init>(Landroid/app/backup/IFullBackupRestoreObserver;)V -PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportConnection;)V +HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportConnection;)V HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$$ExternalSyntheticLambda0;->onFinished(Ljava/lang/String;)V PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;Landroid/app/IBackupAgent;J)V PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight$$ExternalSyntheticLambda0;->call(Ljava/lang/Object;)V @@ -12329,6 +12921,7 @@ PLcom/android/server/backup/keyvalue/AgentException;->isTransitory()Z PLcom/android/server/backup/keyvalue/AgentException;->permanent()Lcom/android/server/backup/keyvalue/AgentException; PLcom/android/server/backup/keyvalue/AgentException;->transitory()Lcom/android/server/backup/keyvalue/AgentException; PLcom/android/server/backup/keyvalue/BackupException;-><init>()V +PLcom/android/server/backup/keyvalue/BackupException;-><init>(Ljava/lang/Exception;)V HPLcom/android/server/backup/keyvalue/BackupRequest;-><init>(Ljava/lang/String;)V PLcom/android/server/backup/keyvalue/BackupRequest;->toString()Ljava/lang/String; PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;-><init>(Lcom/android/server/backup/UserBackupManagerService;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;)V @@ -12347,8 +12940,10 @@ PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onInitializeTransp PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onNewThread(Ljava/lang/String;)V PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupComplete(Ljava/lang/String;J)V PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupNonIncrementalRequired(Landroid/content/pm/PackageInfo;)V +PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupRejected(Ljava/lang/String;)V PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupTransportFailure(Ljava/lang/String;)V PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageNotEligibleForBackup(Ljava/lang/String;)V +PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageStopped(Ljava/lang/String;)V PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onQueueReady(Ljava/util/List;)V PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onRemoteCallReturned(Lcom/android/server/backup/remote/RemoteResult;Ljava/lang/String;)V PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onRevertTask()V @@ -12408,11 +13003,13 @@ HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->transportPerformBacku PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->tryCloseFileDescriptor(Ljava/io/Closeable;Ljava/lang/String;)V PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->unregisterTask()V HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->writeWidgetPayloadIfAppropriate(Ljava/io/FileDescriptor;Ljava/lang/String;)V +PLcom/android/server/backup/keyvalue/TaskException;-><init>(Ljava/lang/Exception;ZI)V PLcom/android/server/backup/keyvalue/TaskException;-><init>(ZI)V PLcom/android/server/backup/keyvalue/TaskException;->create()Lcom/android/server/backup/keyvalue/TaskException; PLcom/android/server/backup/keyvalue/TaskException;->forStatus(I)Lcom/android/server/backup/keyvalue/TaskException; PLcom/android/server/backup/keyvalue/TaskException;->getStatus()I PLcom/android/server/backup/keyvalue/TaskException;->isStateCompromised()Z +PLcom/android/server/backup/keyvalue/TaskException;->stateCompromised(Ljava/lang/Exception;)Lcom/android/server/backup/keyvalue/TaskException; PLcom/android/server/backup/params/BackupParams;-><init>(Lcom/android/server/backup/transport/TransportConnection;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;ZZLcom/android/server/backup/utils/BackupEligibilityRules;)V PLcom/android/server/backup/params/RestoreParams;-><init>(Lcom/android/server/backup/transport/TransportConnection;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLandroid/content/pm/PackageInfo;IZ[Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;Lcom/android/server/backup/utils/BackupEligibilityRules;)V PLcom/android/server/backup/params/RestoreParams;->createForRestoreAtInstall(Lcom/android/server/backup/transport/TransportConnection;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLjava/lang/String;ILcom/android/server/backup/internal/OnTaskFinishedListener;Lcom/android/server/backup/utils/BackupEligibilityRules;)Lcom/android/server/backup/params/RestoreParams; @@ -12512,6 +13109,7 @@ PLcom/android/server/backup/transport/BackupTransportClient;->dataManagementInte HPLcom/android/server/backup/transport/BackupTransportClient;->finishBackup()I PLcom/android/server/backup/transport/BackupTransportClient;->finishRestore()V HPLcom/android/server/backup/transport/BackupTransportClient;->getBackupQuota(Ljava/lang/String;Z)J +PLcom/android/server/backup/transport/BackupTransportClient;->getCurrentRestoreSet()J HPLcom/android/server/backup/transport/BackupTransportClient;->getFutureResult(Lcom/android/internal/infra/AndroidFuture;)Ljava/lang/Object; PLcom/android/server/backup/transport/BackupTransportClient;->getNextFullRestoreDataChunk(Landroid/os/ParcelFileDescriptor;)I PLcom/android/server/backup/transport/BackupTransportClient;->getRestoreData(Landroid/os/ParcelFileDescriptor;)I @@ -12528,9 +13126,9 @@ PLcom/android/server/backup/transport/BackupTransportClient;->requestFullBackupT HPLcom/android/server/backup/transport/BackupTransportClient;->sendBackupData(I)I PLcom/android/server/backup/transport/BackupTransportClient;->startRestore(J[Landroid/content/pm/PackageInfo;)I PLcom/android/server/backup/transport/BackupTransportClient;->transportDirName()Ljava/lang/String; -PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/transport/TransportConnection;Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/server/backup/transport/BackupTransportClient;)V +HPLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/backup/transport/TransportConnection;Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/server/backup/transport/BackupTransportClient;)V PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda0;->run()V -PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;-><init>(Ljava/util/concurrent/CompletableFuture;)V +HPLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;-><init>(Ljava/util/concurrent/CompletableFuture;)V PLcom/android/server/backup/transport/TransportConnection$$ExternalSyntheticLambda1;->onTransportConnectionResult(Lcom/android/server/backup/transport/BackupTransportClient;Lcom/android/server/backup/transport/TransportConnection;)V HPLcom/android/server/backup/transport/TransportConnection$TransportConnectionMonitor;-><init>(Landroid/content/Context;Lcom/android/server/backup/transport/TransportConnection;)V PLcom/android/server/backup/transport/TransportConnection$TransportConnectionMonitor;-><init>(Landroid/content/Context;Lcom/android/server/backup/transport/TransportConnection;Lcom/android/server/backup/transport/TransportConnection$TransportConnectionMonitor-IA;)V @@ -12570,7 +13168,7 @@ HPLcom/android/server/backup/transport/TransportConnection;->toString()Ljava/lan PLcom/android/server/backup/transport/TransportConnection;->transitionThroughState(III)I HPLcom/android/server/backup/transport/TransportConnection;->unbind(Ljava/lang/String;)V PLcom/android/server/backup/transport/TransportConnectionManager$$ExternalSyntheticLambda0;-><init>()V -PLcom/android/server/backup/transport/TransportConnectionManager$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; +HPLcom/android/server/backup/transport/TransportConnectionManager$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/backup/transport/TransportConnectionManager;->$r8$lambda$L5nD_60PEhxIdzeW4lU6im8fA18(Landroid/content/ComponentName;)Landroid/content/Intent; PLcom/android/server/backup/transport/TransportConnectionManager;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;)V PLcom/android/server/backup/transport/TransportConnectionManager;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;Ljava/util/function/Function;)V @@ -12581,6 +13179,7 @@ HPLcom/android/server/backup/transport/TransportConnectionManager;->getTransport PLcom/android/server/backup/transport/TransportConnectionManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportConnection; HPLcom/android/server/backup/transport/TransportConnectionManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;)Lcom/android/server/backup/transport/TransportConnection; PLcom/android/server/backup/transport/TransportNotAvailableException;-><init>()V +PLcom/android/server/backup/transport/TransportNotRegisteredException;-><init>(Ljava/lang/String;)V HPLcom/android/server/backup/transport/TransportStats$Stats;->-$$Nest$mregister(Lcom/android/server/backup/transport/TransportStats$Stats;J)V PLcom/android/server/backup/transport/TransportStats$Stats;-><init>()V HPLcom/android/server/backup/transport/TransportStats$Stats;->register(J)V @@ -12782,7 +13381,7 @@ PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->lambd PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->onReadyForAuthentication(JI)V HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerAuthenticator(IIILandroid/hardware/biometrics/IBiometricAuthenticator;)V PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;I)V -PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->resetLockoutTimeBound(Landroid/os/IBinder;Ljava/lang/String;II[B)V +HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->resetLockoutTimeBound(Landroid/os/IBinder;Ljava/lang/String;II[B)V PLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V PLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;->binderDied()V HSPLcom/android/server/biometrics/BiometricService$Injector$$ExternalSyntheticLambda0;-><init>(Ljava/util/concurrent/atomic/AtomicLong;)V @@ -12895,7 +13494,7 @@ PLcom/android/server/biometrics/Utils;->isBiometricRequested(Landroid/hardware/b PLcom/android/server/biometrics/Utils;->isConfirmationSupported(I)Z PLcom/android/server/biometrics/Utils;->isCredentialRequested(I)Z PLcom/android/server/biometrics/Utils;->isCredentialRequested(Landroid/hardware/biometrics/PromptInfo;)Z -PLcom/android/server/biometrics/Utils;->isCurrentUserOrProfile(Landroid/content/Context;I)Z +HPLcom/android/server/biometrics/Utils;->isCurrentUserOrProfile(Landroid/content/Context;I)Z HPLcom/android/server/biometrics/Utils;->isDebugEnabled(Landroid/content/Context;I)Z PLcom/android/server/biometrics/Utils;->isForeground(II)Z HPLcom/android/server/biometrics/Utils;->isKeyguard(Landroid/content/Context;Ljava/lang/String;)Z @@ -12922,7 +13521,6 @@ PLcom/android/server/biometrics/log/ALSProbe;->disable()V HPLcom/android/server/biometrics/log/ALSProbe;->disableLightSensorLoggingLocked()V PLcom/android/server/biometrics/log/ALSProbe;->enable()V HPLcom/android/server/biometrics/log/ALSProbe;->enableLightSensorLoggingLocked()V -PLcom/android/server/biometrics/log/ALSProbe;->getCurrentLux()F PLcom/android/server/biometrics/log/ALSProbe;->onTimeout()V HPLcom/android/server/biometrics/log/ALSProbe;->resetTimerLocked(Z)V HSPLcom/android/server/biometrics/log/BiometricContext;->getInstance(Landroid/content/Context;)Lcom/android/server/biometrics/log/BiometricContext; @@ -12947,7 +13545,7 @@ HSPLcom/android/server/biometrics/log/BiometricContextProvider;-><init>(Landroid HSPLcom/android/server/biometrics/log/BiometricContextProvider;->defaultProvider(Landroid/content/Context;)Lcom/android/server/biometrics/log/BiometricContextProvider; PLcom/android/server/biometrics/log/BiometricContextProvider;->getBiometricPromptSessionId()Ljava/lang/Integer; HPLcom/android/server/biometrics/log/BiometricContextProvider;->getKeyguardEntrySessionId()Ljava/lang/Integer; -PLcom/android/server/biometrics/log/BiometricContextProvider;->isAod()Z +HPLcom/android/server/biometrics/log/BiometricContextProvider;->isAod()Z PLcom/android/server/biometrics/log/BiometricContextProvider;->isAwake()Z HPLcom/android/server/biometrics/log/BiometricContextProvider;->lambda$notifySubscribers$0(Landroid/hardware/biometrics/common/OperationContext;Ljava/util/function/Consumer;)V HPLcom/android/server/biometrics/log/BiometricContextProvider;->notifySubscribers()V @@ -12957,7 +13555,7 @@ PLcom/android/server/biometrics/log/BiometricContextProvider;->unsubscribe(Landr HPLcom/android/server/biometrics/log/BiometricContextProvider;->updateContext(Landroid/hardware/biometrics/common/OperationContext;Z)Landroid/hardware/biometrics/common/OperationContext; PLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;-><clinit>()V PLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;-><init>()V -PLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;->acquired(Landroid/hardware/biometrics/common/OperationContext;IIIZIII)V +HPLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;->acquired(Landroid/hardware/biometrics/common/OperationContext;IIIZIII)V PLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;->authenticate(Landroid/hardware/biometrics/common/OperationContext;IIIZJIZIF)V PLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;->error(Landroid/hardware/biometrics/common/OperationContext;IIIZJIII)V PLcom/android/server/biometrics/log/BiometricFrameworkStatsLogger;->getInstance()Lcom/android/server/biometrics/log/BiometricFrameworkStatsLogger; @@ -12968,7 +13566,7 @@ PLcom/android/server/biometrics/log/BiometricLogger;-><init>(Landroid/content/Co PLcom/android/server/biometrics/log/BiometricLogger;->getAmbientLightProbe(Z)Lcom/android/server/biometrics/log/CallbackWithProbe; HPLcom/android/server/biometrics/log/BiometricLogger;->logOnAcquired(Landroid/content/Context;Landroid/hardware/biometrics/common/OperationContext;III)V HPLcom/android/server/biometrics/log/BiometricLogger;->logOnAuthenticated(Landroid/content/Context;Landroid/hardware/biometrics/common/OperationContext;ZZIZ)V -PLcom/android/server/biometrics/log/BiometricLogger;->logOnError(Landroid/content/Context;Landroid/hardware/biometrics/common/OperationContext;III)V +HPLcom/android/server/biometrics/log/BiometricLogger;->logOnError(Landroid/content/Context;Landroid/hardware/biometrics/common/OperationContext;III)V PLcom/android/server/biometrics/log/BiometricLogger;->ofUnknown(Landroid/content/Context;)Lcom/android/server/biometrics/log/BiometricLogger; HPLcom/android/server/biometrics/log/BiometricLogger;->shouldSkipLogging()Z PLcom/android/server/biometrics/log/BiometricLogger;->swapAction(Landroid/content/Context;I)Lcom/android/server/biometrics/log/BiometricLogger; @@ -12984,7 +13582,7 @@ PLcom/android/server/biometrics/sensors/AcquisitionClient;->notifyUserActivity() PLcom/android/server/biometrics/sensors/AcquisitionClient;->onAcquired(II)V HPLcom/android/server/biometrics/sensors/AcquisitionClient;->onAcquiredInternal(IIZ)V PLcom/android/server/biometrics/sensors/AcquisitionClient;->onError(II)V -PLcom/android/server/biometrics/sensors/AcquisitionClient;->onErrorInternal(IIZ)V +HPLcom/android/server/biometrics/sensors/AcquisitionClient;->onErrorInternal(IIZ)V HPLcom/android/server/biometrics/sensors/AcquisitionClient;->vibrateSuccess()V HPLcom/android/server/biometrics/sensors/AuthenticationClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;Lcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IZILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;ZLandroid/app/TaskStackListener;Lcom/android/server/biometrics/sensors/LockoutTracker;ZZZ)V PLcom/android/server/biometrics/sensors/AuthenticationClient;->binderDied()V @@ -13009,16 +13607,16 @@ HPLcom/android/server/biometrics/sensors/BaseClientMonitor;-><init>(Landroid/con PLcom/android/server/biometrics/sensors/BaseClientMonitor;->binderDied()V PLcom/android/server/biometrics/sensors/BaseClientMonitor;->binderDiedInternal(Z)V PLcom/android/server/biometrics/sensors/BaseClientMonitor;->destroy()V -PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getBiometricContext()Lcom/android/server/biometrics/log/BiometricContext; +HPLcom/android/server/biometrics/sensors/BaseClientMonitor;->getBiometricContext()Lcom/android/server/biometrics/log/BiometricContext; PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getCallback()Lcom/android/server/biometrics/sensors/ClientMonitorCallback; PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getContext()Landroid/content/Context; -PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getCookie()I +HPLcom/android/server/biometrics/sensors/BaseClientMonitor;->getCookie()I PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getListener()Lcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter; PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getLogger()Lcom/android/server/biometrics/log/BiometricLogger; PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getOwnerString()Ljava/lang/String; PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getRequestId()J PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getSensorId()I -PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getTargetUserId()I +HPLcom/android/server/biometrics/sensors/BaseClientMonitor;->getTargetUserId()I PLcom/android/server/biometrics/sensors/BaseClientMonitor;->getToken()Landroid/os/IBinder; PLcom/android/server/biometrics/sensors/BaseClientMonitor;->hasRequestId()Z PLcom/android/server/biometrics/sensors/BaseClientMonitor;->interruptsPrecedingClients()Z @@ -13045,9 +13643,9 @@ PLcom/android/server/biometrics/sensors/BiometricScheduler;->-$$Nest$fputmTotalO PLcom/android/server/biometrics/sensors/BiometricScheduler;-><init>(Ljava/lang/String;ILcom/android/server/biometrics/sensors/fingerprint/GestureAvailabilityDispatcher;)V HSPLcom/android/server/biometrics/sensors/BiometricScheduler;-><init>(Ljava/lang/String;Landroid/os/Handler;ILcom/android/server/biometrics/sensors/fingerprint/GestureAvailabilityDispatcher;Landroid/hardware/biometrics/IBiometricService;I)V PLcom/android/server/biometrics/sensors/BiometricScheduler;->canCancelAuthOperation(Lcom/android/server/biometrics/sensors/BiometricSchedulerOperation;Landroid/os/IBinder;J)Z -PLcom/android/server/biometrics/sensors/BiometricScheduler;->cancelAuthenticationOrDetection(Landroid/os/IBinder;J)V +HPLcom/android/server/biometrics/sensors/BiometricScheduler;->cancelAuthenticationOrDetection(Landroid/os/IBinder;J)V PLcom/android/server/biometrics/sensors/BiometricScheduler;->dump(Ljava/io/PrintWriter;)V -PLcom/android/server/biometrics/sensors/BiometricScheduler;->getCurrentClient()Lcom/android/server/biometrics/sensors/BaseClientMonitor; +HPLcom/android/server/biometrics/sensors/BiometricScheduler;->getCurrentClient()Lcom/android/server/biometrics/sensors/BaseClientMonitor; HPLcom/android/server/biometrics/sensors/BiometricScheduler;->getTag()Ljava/lang/String; PLcom/android/server/biometrics/sensors/BiometricScheduler;->scheduleClientMonitor(Lcom/android/server/biometrics/sensors/BaseClientMonitor;)V HPLcom/android/server/biometrics/sensors/BiometricScheduler;->scheduleClientMonitor(Lcom/android/server/biometrics/sensors/BaseClientMonitor;Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V @@ -13065,7 +13663,7 @@ PLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;->-$$Nest$fp PLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;-><init>(Lcom/android/server/biometrics/sensors/BaseClientMonitor;Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V PLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;-><init>(Lcom/android/server/biometrics/sensors/BaseClientMonitor;Lcom/android/server/biometrics/sensors/ClientMonitorCallback;I)V HPLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;-><init>(Lcom/android/server/biometrics/sensors/BaseClientMonitor;Lcom/android/server/biometrics/sensors/ClientMonitorCallback;ILjava/util/function/BooleanSupplier;)V -PLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;->cancel(Landroid/os/Handler;Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V +HPLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;->cancel(Landroid/os/Handler;Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V HPLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;->doStart(Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)Z PLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;->errorWhenNoneOf(Ljava/lang/String;[I)Z PLcom/android/server/biometrics/sensors/BiometricSchedulerOperation;->errorWhenOneOf(Ljava/lang/String;[I)Z @@ -13098,7 +13696,7 @@ HSPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;-><init>(Ljav HSPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->addAllRegisteredCallback(Landroid/os/IInterface;)V HSPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->broadcastAllAuthenticatorsRegistered()V HSPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->finishRegistration(Ljava/util/List;Ljava/util/List;)V -PLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->getAllProperties()Ljava/util/List; +HPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->getAllProperties()Ljava/util/List; HPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->getProviderForSensor(I)Lcom/android/server/biometrics/sensors/BiometricServiceProvider; HSPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->getProviders()Ljava/util/List; HPLcom/android/server/biometrics/sensors/BiometricServiceRegistry;->getSingleProvider()Landroid/util/Pair; @@ -13133,13 +13731,13 @@ PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;-><init>( PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;-><init>(Landroid/hardware/fingerprint/IFingerprintServiceReceiver;)V PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;->onAcquired(III)V PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;->onAuthenticationFailed(I)V -PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;->onAuthenticationFrame(Landroid/hardware/face/FaceAuthenticationFrame;)V +HPLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;->onAuthenticationFrame(Landroid/hardware/face/FaceAuthenticationFrame;)V PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;->onAuthenticationSucceeded(ILandroid/hardware/biometrics/BiometricAuthenticator$Identifier;[BIZ)V PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;->onDetected(IIZ)V PLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;->onError(IIII)V HPLcom/android/server/biometrics/sensors/ClientMonitorCompositeCallback;-><init>([Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V HPLcom/android/server/biometrics/sensors/ClientMonitorCompositeCallback;->onClientFinished(Lcom/android/server/biometrics/sensors/BaseClientMonitor;Z)V -PLcom/android/server/biometrics/sensors/ClientMonitorCompositeCallback;->onClientStarted(Lcom/android/server/biometrics/sensors/BaseClientMonitor;)V +HPLcom/android/server/biometrics/sensors/ClientMonitorCompositeCallback;->onClientStarted(Lcom/android/server/biometrics/sensors/BaseClientMonitor;)V PLcom/android/server/biometrics/sensors/HalClientMonitor$1;-><init>(Lcom/android/server/biometrics/sensors/HalClientMonitor;)V PLcom/android/server/biometrics/sensors/HalClientMonitor$1;->onClientFinished(Lcom/android/server/biometrics/sensors/BaseClientMonitor;Z)V PLcom/android/server/biometrics/sensors/HalClientMonitor;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;Lcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;ILjava/lang/String;IILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;)V @@ -13203,7 +13801,7 @@ PLcom/android/server/biometrics/sensors/SensorOverlays$1;-><init>(Lcom/android/s PLcom/android/server/biometrics/sensors/SensorOverlays;-><init>(Landroid/hardware/fingerprint/IUdfpsOverlayController;Landroid/hardware/fingerprint/ISidefpsController;)V PLcom/android/server/biometrics/sensors/SensorOverlays;->hide(I)V HPLcom/android/server/biometrics/sensors/SensorOverlays;->ifUdfps(Lcom/android/server/biometrics/sensors/SensorOverlays$OverlayControllerConsumer;)V -PLcom/android/server/biometrics/sensors/SensorOverlays;->show(IILcom/android/server/biometrics/sensors/AcquisitionClient;)V +HPLcom/android/server/biometrics/sensors/SensorOverlays;->show(IILcom/android/server/biometrics/sensors/AcquisitionClient;)V PLcom/android/server/biometrics/sensors/StartUserClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;IILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;Lcom/android/server/biometrics/sensors/StartUserClient$UserStartedCallback;)V PLcom/android/server/biometrics/sensors/StartUserClient;->getProtoEnum()I PLcom/android/server/biometrics/sensors/StopUserClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;IILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;Lcom/android/server/biometrics/sensors/StopUserClient$UserStoppedCallback;)V @@ -13236,13 +13834,14 @@ HSPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;-> HSPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;-><init>(Lcom/android/server/biometrics/sensors/face/FaceService;Lcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper-IA;)V PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->addAuthenticatorsRegisteredCallback(Landroid/hardware/face/IFaceAuthenticatorsRegisteredCallback;)V PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->addLockoutResetCallback(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;Ljava/lang/String;)V -PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/face/IFaceServiceReceiver;Ljava/lang/String;Z)J +HPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/face/IFaceServiceReceiver;Ljava/lang/String;Z)J PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;J)V +PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HSPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->getAidlProviders()Ljava/util/List; PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->getAuthenticatorId(II)J PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->getEnrolledFaces(IILjava/lang/String;)Ljava/util/List; PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->getSensorProperties(ILjava/lang/String;)Landroid/hardware/face/FaceSensorPropertiesInternal; -PLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->getSensorPropertiesInternal(Ljava/lang/String;)Ljava/util/List; +HPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->getSensorPropertiesInternal(Ljava/lang/String;)Ljava/util/List; HPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->hasEnrolledFaces(IILjava/lang/String;)Z HPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->isHardwareDetected(ILjava/lang/String;)Z HSPLcom/android/server/biometrics/sensors/face/FaceService$FaceServiceWrapper;->lambda$registerAuthenticators$0(Ljava/util/List;)Ljava/util/List; @@ -13262,9 +13861,9 @@ HSPLcom/android/server/biometrics/sensors/face/FaceServiceRegistry;->invokeRegis HSPLcom/android/server/biometrics/sensors/face/FaceServiceRegistry;->registerService(Landroid/hardware/biometrics/IBiometricService;Landroid/hardware/biometrics/SensorPropertiesInternal;)V HSPLcom/android/server/biometrics/sensors/face/FaceServiceRegistry;->registerService(Landroid/hardware/biometrics/IBiometricService;Landroid/hardware/face/FaceSensorPropertiesInternal;)V HSPLcom/android/server/biometrics/sensors/face/FaceUserState;-><init>(Landroid/content/Context;ILjava/lang/String;)V -PLcom/android/server/biometrics/sensors/face/FaceUserState;->getBiometricsTag()Ljava/lang/String; +HSPLcom/android/server/biometrics/sensors/face/FaceUserState;->getBiometricsTag()Ljava/lang/String; HSPLcom/android/server/biometrics/sensors/face/FaceUserState;->getCopy(Ljava/util/ArrayList;)Ljava/util/ArrayList; -PLcom/android/server/biometrics/sensors/face/FaceUserState;->parseBiometricsLocked(Landroid/util/TypedXmlPullParser;)V +HSPLcom/android/server/biometrics/sensors/face/FaceUserState;->parseBiometricsLocked(Landroid/util/TypedXmlPullParser;)V HSPLcom/android/server/biometrics/sensors/face/FaceUtils;-><clinit>()V HSPLcom/android/server/biometrics/sensors/face/FaceUtils;-><init>(Ljava/lang/String;)V HSPLcom/android/server/biometrics/sensors/face/FaceUtils;->getBiometricsForUser(Landroid/content/Context;I)Ljava/util/List; @@ -13277,10 +13876,12 @@ PLcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;->-$ PLcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;->-$$Nest$fgetmError(Lcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;)I PLcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;->-$$Nest$fgetmLatency(Lcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;)J PLcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;-><init>(JJZIII)V +PLcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;->toString(Landroid/content/Context;)Ljava/lang/String; HSPLcom/android/server/biometrics/sensors/face/UsageStats;-><init>(Landroid/content/Context;)V -PLcom/android/server/biometrics/sensors/face/UsageStats;->addEvent(Lcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;)V +HPLcom/android/server/biometrics/sensors/face/UsageStats;->addEvent(Lcom/android/server/biometrics/sensors/face/UsageStats$AuthenticationEvent;)V +PLcom/android/server/biometrics/sensors/face/UsageStats;->print(Ljava/io/PrintWriter;)V PLcom/android/server/biometrics/sensors/face/aidl/AidlConversionUtils;->toFrameworkAcquiredInfo(B)I -PLcom/android/server/biometrics/sensors/face/aidl/AidlConversionUtils;->toFrameworkAuthenticationFrame(Landroid/hardware/biometrics/face/AuthenticationFrame;)Landroid/hardware/face/FaceAuthenticationFrame; +HPLcom/android/server/biometrics/sensors/face/aidl/AidlConversionUtils;->toFrameworkAuthenticationFrame(Landroid/hardware/biometrics/face/AuthenticationFrame;)Landroid/hardware/face/FaceAuthenticationFrame; HPLcom/android/server/biometrics/sensors/face/aidl/AidlConversionUtils;->toFrameworkBaseFrame(Landroid/hardware/biometrics/face/BaseFrame;)Landroid/hardware/face/FaceDataFrame; PLcom/android/server/biometrics/sensors/face/aidl/AidlConversionUtils;->toFrameworkError(B)I PLcom/android/server/biometrics/sensors/face/aidl/AidlSession;-><init>(ILandroid/hardware/biometrics/face/ISession;ILcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;)V @@ -13288,14 +13889,14 @@ PLcom/android/server/biometrics/sensors/face/aidl/AidlSession;->getSession()Land PLcom/android/server/biometrics/sensors/face/aidl/AidlSession;->getUserId()I PLcom/android/server/biometrics/sensors/face/aidl/AidlSession;->hasContextMethods()Z PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IZILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;ZLcom/android/server/biometrics/sensors/face/UsageStats;Lcom/android/server/biometrics/sensors/LockoutCache;ZZ)V -PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IZILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;ZLcom/android/server/biometrics/sensors/face/UsageStats;Lcom/android/server/biometrics/sensors/LockoutCache;ZZLandroid/hardware/SensorPrivacyManager;)V +HPLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IZILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;ZLcom/android/server/biometrics/sensors/face/UsageStats;Lcom/android/server/biometrics/sensors/LockoutCache;ZZLandroid/hardware/SensorPrivacyManager;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->doAuthenticate()Landroid/hardware/biometrics/common/ICancellationSignal; PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->getAcquireIgnorelist()[I PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->handleLifecycleAfterAuth(Z)V PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->onAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)V HPLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->onAuthenticationFrame(Landroid/hardware/face/FaceAuthenticationFrame;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->onError(II)V -PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->shouldSendAcquiredMessage(II)Z +HPLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->shouldSendAcquiredMessage(II)Z PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->start(Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->startHalOperation()V PLcom/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient;->stopHalOperation()V @@ -13309,11 +13910,19 @@ PLcom/android/server/biometrics/sensors/face/aidl/FaceInternalCleanupClient;-><i PLcom/android/server/biometrics/sensors/face/aidl/FaceInternalCleanupClient;->getEnumerateClient(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;ILjava/lang/String;Ljava/util/List;Lcom/android/server/biometrics/sensors/BiometricUtils;ILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;)Lcom/android/server/biometrics/sensors/InternalEnumerateClient; PLcom/android/server/biometrics/sensors/face/aidl/FaceInternalEnumerateClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;ILjava/lang/String;Ljava/util/List;Lcom/android/server/biometrics/sensors/BiometricUtils;ILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceInternalEnumerateClient;->startHalOperation()V +PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;II)V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda0;->run()V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda13;->run()V +PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;II[B)V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda15;->run()V +PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;IIZLcom/android/server/biometrics/sensors/ClientMonitorCallback;)V +PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda1;->run()V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda3;->run()V +HPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;ILandroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IIZZ)V +HPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda4;->run()V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda8;->run()V +PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;ILandroid/os/IBinder;J)V +PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$$ExternalSyntheticLambda9;->run()V HSPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$BiometricTaskStackListener;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;)V HSPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider$BiometricTaskStackListener;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider$BiometricTaskStackListener-IA;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->$r8$lambda$440ZwCeBOdeHnGfAnWO9zaq2CSE(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;IIZLcom/android/server/biometrics/sensors/ClientMonitorCallback;)V @@ -13325,7 +13934,8 @@ HSPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;-><init>(Landro PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->cancelAuthentication(ILandroid/os/IBinder;J)V HPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->containsSensor(I)Z PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->createLogger(II)Lcom/android/server/biometrics/log/BiometricLogger; -PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->getAuthenticatorId(II)J +PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->dumpInternal(ILjava/io/PrintWriter;)V +HPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->getAuthenticatorId(II)J HSPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->getEnrolledFaces(II)Ljava/util/List; PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->getHalInstance()Landroid/hardware/biometrics/face/IFace; HSPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->getSensorProperties()Ljava/util/List; @@ -13336,7 +13946,7 @@ HSPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->hasEnrollment HPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->hasHalInstance()Z PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->isHardwareDetected(I)Z PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->lambda$cancelAuthentication$10(ILandroid/os/IBinder;J)V -PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->lambda$scheduleAuthenticate$9(ILandroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IIZZ)V +HPLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->lambda$scheduleAuthenticate$9(ILandroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IIZZ)V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->lambda$scheduleInternalCleanup$16(IIZLcom/android/server/biometrics/sensors/ClientMonitorCallback;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->lambda$scheduleLoadAuthenticatorIdsForUser$0(II)V PLcom/android/server/biometrics/sensors/face/aidl/FaceProvider;->lambda$scheduleResetLockout$12(II[B)V @@ -13359,6 +13969,9 @@ PLcom/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient;->start PLcom/android/server/biometrics/sensors/face/aidl/FaceStartUserClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;IILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;Landroid/hardware/biometrics/face/ISessionCallback;Lcom/android/server/biometrics/sensors/StartUserClient$UserStartedCallback;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceStartUserClient;->start(Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V PLcom/android/server/biometrics/sensors/face/aidl/FaceStartUserClient;->startHalOperation()V +PLcom/android/server/biometrics/sensors/face/aidl/FaceStopUserClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;IILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;Lcom/android/server/biometrics/sensors/StopUserClient$UserStoppedCallback;)V +PLcom/android/server/biometrics/sensors/face/aidl/FaceStopUserClient;->start(Lcom/android/server/biometrics/sensors/ClientMonitorCallback;)V +PLcom/android/server/biometrics/sensors/face/aidl/FaceStopUserClient;->startHalOperation()V HSPLcom/android/server/biometrics/sensors/face/aidl/Sensor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$$ExternalSyntheticLambda0;->getCurrentUserId()I HSPLcom/android/server/biometrics/sensors/face/aidl/Sensor$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)V @@ -13369,22 +13982,29 @@ PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2$$ExternalSyntheticLam PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2$$ExternalSyntheticLambda1;->onUserStarted(ILjava/lang/Object;I)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2$$ExternalSyntheticLambda2;->get()Ljava/lang/Object; +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$2;)V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2$$ExternalSyntheticLambda3;->onUserStopped()V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2;->$r8$lambda$1Xf0XGeXTSj37rDoDvXV8MMuK-Y(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$2;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2;->$r8$lambda$53vLAmUI9iQLVp29LXVuBmz3ado(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$2;Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;ILcom/android/server/biometrics/sensors/face/aidl/FaceProvider;ILandroid/hardware/biometrics/face/ISession;I)V HSPLcom/android/server/biometrics/sensors/face/aidl/Sensor$2;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;Lcom/android/server/biometrics/log/BiometricContext;Lcom/android/server/biometrics/sensors/LockoutResetDispatcher;Lcom/android/server/biometrics/sensors/face/aidl/FaceProvider;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2;->getStartUserClient(I)Lcom/android/server/biometrics/sensors/StartUserClient; +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2;->getStopUserClient(I)Lcom/android/server/biometrics/sensors/StopUserClient; PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2;->lambda$getStartUserClient$2(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;ILcom/android/server/biometrics/sensors/face/aidl/FaceProvider;ILandroid/hardware/biometrics/face/ISession;I)V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$2;->lambda$getStopUserClient$0()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;ILandroid/hardware/keymaster/HardwareAuthToken;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda0;->run()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda11;->run()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;J)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda13;->run()V -PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;Landroid/hardware/biometrics/face/AuthenticationFrame;)V +HPLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;Landroid/hardware/biometrics/face/AuthenticationFrame;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda14;->run()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;[I)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda17;->run()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/biometrics/sensors/UserAwareBiometricScheduler;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda2;->run()V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;)V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda4;->run()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;BI)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda8;->run()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->$r8$lambda$SLEHopSYaxamey8g8MtGMmIGJSM(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;)V @@ -13392,24 +14012,29 @@ PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->$r PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->$r8$lambda$eN0JagDfITBvifmnheHCYuBEXLo(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;Landroid/hardware/biometrics/face/AuthenticationFrame;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->$r8$lambda$uqBxCqg0HeZLOrOu6UaLOEbe68c(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;BI)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->$r8$lambda$v7Mkl6Fi5BBzFuHvYfOhJmrFYUg(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;J)V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->$r8$lambda$w7WuZONZp-VSb0s1M3jeK_ywS9g(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->$r8$lambda$yTMiDlNoZmfHdVj6FVV0MbGJGb4(Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;ILandroid/hardware/keymaster/HardwareAuthToken;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Lcom/android/server/biometrics/sensors/UserAwareBiometricScheduler;IILcom/android/server/biometrics/sensors/LockoutCache;Lcom/android/server/biometrics/sensors/LockoutResetDispatcher;Lcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback$Callback;)V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onAuthenticationFailed$7()V HPLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onAuthenticationFrame$2(Landroid/hardware/biometrics/face/AuthenticationFrame;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onAuthenticationSucceeded$6(ILandroid/hardware/keymaster/HardwareAuthToken;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onAuthenticatorIdRetrieved$16(J)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onEnrollmentsEnumerated$12([I)V -PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onError$4(BI)V +HPLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onError$4(BI)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->lambda$onLockoutCleared$10()V -PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onAuthenticationFrame(Landroid/hardware/biometrics/face/AuthenticationFrame;)V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onAuthenticationFailed()V +HPLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onAuthenticationFrame(Landroid/hardware/biometrics/face/AuthenticationFrame;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onAuthenticationSucceeded(ILandroid/hardware/keymaster/HardwareAuthToken;)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onAuthenticatorIdRetrieved(J)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onEnrollmentsEnumerated([I)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onError(BI)V PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onLockoutCleared()V +PLcom/android/server/biometrics/sensors/face/aidl/Sensor$HalSessionCallback;->onSessionClosed()V PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->$r8$lambda$0SD2XYhKZnHDlcZsqucTXrCGpvo(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)I PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->$r8$lambda$ckV_sfQXrvOBRD7rLXDNui_jmm0(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)Lcom/android/server/biometrics/sensors/face/aidl/AidlSession; PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->-$$Nest$fgetmContext(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)Landroid/content/Context; PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->-$$Nest$fgetmHandler(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)Landroid/os/Handler; +PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->-$$Nest$fgetmLazySession(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)Ljava/util/function/Supplier; PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->-$$Nest$fgetmLockoutCache(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)Lcom/android/server/biometrics/sensors/LockoutCache; PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->-$$Nest$fgetmScheduler(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)Lcom/android/server/biometrics/sensors/UserAwareBiometricScheduler; PLcom/android/server/biometrics/sensors/face/aidl/Sensor;->-$$Nest$fgetmSensorProperties(Lcom/android/server/biometrics/sensors/face/aidl/Sensor;)Landroid/hardware/face/FaceSensorPropertiesInternal; @@ -13456,7 +14081,7 @@ PLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->getLo PLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->getSensorPropertiesInternal(Ljava/lang/String;)Ljava/util/List; HPLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->hasEnrolledFingerprints(IILjava/lang/String;)Z HPLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->hasEnrolledFingerprintsDeprecated(ILjava/lang/String;Ljava/lang/String;)Z -PLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->isHardwareDetected(ILjava/lang/String;)Z +HPLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->isHardwareDetected(ILjava/lang/String;)Z HPLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->isHardwareDetectedDeprecated(Ljava/lang/String;Ljava/lang/String;)Z HSPLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->lambda$registerAuthenticators$1(Ljava/util/List;)Ljava/util/List; HPLcom/android/server/biometrics/sensors/fingerprint/FingerprintService$1;->onPowerPressed()V @@ -13532,7 +14157,7 @@ PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticati PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;->$r8$lambda$xGiUs8zaJx94xSsElIf-y29uIwc(Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;ILandroid/hardware/fingerprint/IUdfpsOverlayController;)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;->$r8$lambda$zz_ApeFy8i75Qd77bZlgH6A1K6Y(Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)V HPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Landroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IZILcom/android/server/biometrics/log/BiometricLogger;Lcom/android/server/biometrics/log/BiometricContext;ZLandroid/app/TaskStackListener;Lcom/android/server/biometrics/sensors/LockoutCache;Landroid/hardware/fingerprint/IUdfpsOverlayController;Landroid/hardware/fingerprint/ISidefpsController;ZLandroid/hardware/fingerprint/FingerprintSensorPropertiesInternal;Landroid/os/Handler;)V -PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;->doAuthenticate()Landroid/hardware/biometrics/common/ICancellationSignal; +HPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;->doAuthenticate()Landroid/hardware/biometrics/common/ICancellationSignal; PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;->handleAuthenticate(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;->handleLifecycleAfterAuth(Z)V HPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient;->lambda$doAuthenticate$5(Lcom/android/server/biometrics/sensors/fingerprint/aidl/AidlSession;Landroid/hardware/biometrics/common/OperationContext;)V @@ -13563,9 +14188,10 @@ PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$Ex PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda11;->run()V PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider;ILandroid/os/IBinder;J)V HPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda12;->run()V +PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider;II)V HPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda13;->run()V -PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider;ILandroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IIZ)V -PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda14;->run()V +HPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider;ILandroid/os/IBinder;JLcom/android/server/biometrics/sensors/ClientMonitorCallbackConverter;IJZLjava/lang/String;IIZ)V +HPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda14;->run()V PLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda16;->run()V HSPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda17;-><init>()V HSPLcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$$ExternalSyntheticLambda17;->apply(Ljava/lang/Object;)Ljava/lang/Object; @@ -13659,7 +14285,7 @@ PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$2;->lambda$getSt PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$2;->lambda$getStopUserClient$0()V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;ILandroid/hardware/keymaster/HardwareAuthToken;)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda10;->run()V -PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;BI)V +HPLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;BI)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda11;->run()V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;[I)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback$$ExternalSyntheticLambda12;->run()V @@ -13686,7 +14312,7 @@ PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallba PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->lambda$onEnrollmentsEnumerated$11([I)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->lambda$onError$3(BI)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->lambda$onLockoutCleared$9()V -PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->onAcquired(BI)V +HPLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->onAcquired(BI)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->onAuthenticationFailed()V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->onAuthenticationSucceeded(ILandroid/hardware/keymaster/HardwareAuthToken;)V PLcom/android/server/biometrics/sensors/fingerprint/aidl/Sensor$HalSessionCallback;->onAuthenticatorIdRetrieved(J)V @@ -13902,11 +14528,11 @@ PLcom/android/server/blob/BlobMetadata;->createFromXml(Lorg/xmlpull/v1/XmlPullPa PLcom/android/server/blob/BlobMetadata;->dump(Landroid/util/IndentingPrintWriter;Lcom/android/server/blob/BlobStoreManagerService$DumpArgs;)V PLcom/android/server/blob/BlobMetadata;->forEachLeasee(Ljava/util/function/Consumer;)V HPLcom/android/server/blob/BlobMetadata;->getAccessor(Landroid/util/ArraySet;Ljava/lang/String;II)Lcom/android/server/blob/BlobMetadata$Accessor;+]Landroid/util/ArraySet;Landroid/util/ArraySet; -PLcom/android/server/blob/BlobMetadata;->getBlobFile()Ljava/io/File; +HPLcom/android/server/blob/BlobMetadata;->getBlobFile()Ljava/io/File; PLcom/android/server/blob/BlobMetadata;->getBlobHandle()Landroid/app/blob/BlobHandle; PLcom/android/server/blob/BlobMetadata;->getBlobId()J PLcom/android/server/blob/BlobMetadata;->getExistingCommitter(Ljava/lang/String;I)Lcom/android/server/blob/BlobMetadata$Committer; -PLcom/android/server/blob/BlobMetadata;->getSize()J +HPLcom/android/server/blob/BlobMetadata;->getSize()J PLcom/android/server/blob/BlobMetadata;->hasACommitterInUser(I)Z PLcom/android/server/blob/BlobMetadata;->hasACommitterOrLeaseeInUser(I)Z PLcom/android/server/blob/BlobMetadata;->hasLeaseWaitTimeElapsedForAll()Z @@ -13930,7 +14556,7 @@ PLcom/android/server/blob/BlobMetadata;->setCommitters(Landroid/util/ArraySet;)V PLcom/android/server/blob/BlobMetadata;->setLeasees(Landroid/util/ArraySet;)V HPLcom/android/server/blob/BlobMetadata;->shouldAttributeToLeasee(IZ)Z+]Lcom/android/server/blob/BlobMetadata;Lcom/android/server/blob/BlobMetadata; HPLcom/android/server/blob/BlobMetadata;->shouldAttributeToLeasee(Ljava/lang/String;IZ)Z -PLcom/android/server/blob/BlobMetadata;->shouldAttributeToUser(I)Z +HPLcom/android/server/blob/BlobMetadata;->shouldAttributeToUser(I)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet; PLcom/android/server/blob/BlobMetadata;->shouldBeDeleted(Z)Z PLcom/android/server/blob/BlobMetadata;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V HSPLcom/android/server/blob/BlobStoreConfig$$ExternalSyntheticLambda0;-><init>()V @@ -13972,6 +14598,8 @@ PLcom/android/server/blob/BlobStoreIdleJobService;->schedule(Landroid/content/Co HSPLcom/android/server/blob/BlobStoreManagerInternal;-><init>()V PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;ILjava/util/concurrent/atomic/AtomicLong;)V PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V +PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Landroid/util/ArrayMap;I)V +PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda12;-><init>(ILjava/util/function/Function;Ljava/util/ArrayList;)V PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda16;-><init>(Ljava/lang/String;ILjava/util/ArrayList;)V PLcom/android/server/blob/BlobStoreManagerService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V @@ -14004,9 +14632,9 @@ PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$Ext HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda3;-><init>(IZLjava/util/concurrent/atomic/AtomicLong;)V HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda4;-><init>(Ljava/util/concurrent/atomic/AtomicLong;)V -PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda5;-><init>(Landroid/os/UserHandle;Ljava/util/concurrent/atomic/AtomicLong;)V -PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V -PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->$r8$lambda$GakadKjDaYgva1CVpB3ih-4wedc(Landroid/os/UserHandle;Ljava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobMetadata;)V +HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda5;-><init>(Landroid/os/UserHandle;Ljava/util/concurrent/atomic/AtomicLong;)V +HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V +HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->$r8$lambda$GakadKjDaYgva1CVpB3ih-4wedc(Landroid/os/UserHandle;Ljava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobMetadata;)V HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->$r8$lambda$Kg9zqhcDaAJ5lbpIRP5r9mf_LcE(IZLjava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobMetadata;)V PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->$r8$lambda$LJ33bhb9r4x5r3gCOlrsIH96vmY(ILjava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobStoreSession;)V PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->$r8$lambda$bnXLd7X8D--0GoWJpYuyXLBP3N4(Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobStoreSession;)V @@ -14015,12 +14643,12 @@ HSPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;-> HSPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;-><init>(Lcom/android/server/blob/BlobStoreManagerService;Lcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter-IA;)V HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->augmentStatsForPackageForUser(Landroid/content/pm/PackageStats;Ljava/lang/String;Landroid/os/UserHandle;Z)V HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->augmentStatsForUid(Landroid/content/pm/PackageStats;IZ)V -PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->augmentStatsForUser(Landroid/content/pm/PackageStats;Landroid/os/UserHandle;)V +HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->augmentStatsForUser(Landroid/content/pm/PackageStats;Landroid/os/UserHandle;)V PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->lambda$augmentStatsForPackageForUser$0(Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobStoreSession;)V HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->lambda$augmentStatsForPackageForUser$1(Ljava/lang/String;Landroid/os/UserHandle;ZLjava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobMetadata;)V PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->lambda$augmentStatsForUid$2(ILjava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobStoreSession;)V HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->lambda$augmentStatsForUid$3(IZLjava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobMetadata;)V -PLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->lambda$augmentStatsForUser$5(Landroid/os/UserHandle;Ljava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobMetadata;)V +HPLcom/android/server/blob/BlobStoreManagerService$BlobStorageStatsAugmenter;->lambda$augmentStatsForUser$5(Landroid/os/UserHandle;Ljava/util/concurrent/atomic/AtomicLong;Lcom/android/server/blob/BlobMetadata;)V PLcom/android/server/blob/BlobStoreManagerService$DumpArgs;-><init>()V PLcom/android/server/blob/BlobStoreManagerService$DumpArgs;->parse([Ljava/lang/String;)Lcom/android/server/blob/BlobStoreManagerService$DumpArgs; PLcom/android/server/blob/BlobStoreManagerService$DumpArgs;->shouldDumpAllSections()Z @@ -14190,12 +14818,13 @@ PLcom/android/server/camera/CameraServiceProxy$$ExternalSyntheticLambda0;->accep HSPLcom/android/server/camera/CameraServiceProxy$1;-><init>(Lcom/android/server/camera/CameraServiceProxy;)V PLcom/android/server/camera/CameraServiceProxy$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/camera/CameraServiceProxy$2;-><init>(Lcom/android/server/camera/CameraServiceProxy;)V -PLcom/android/server/camera/CameraServiceProxy$2;->getRotateAndCropOverride(Ljava/lang/String;II)I +HPLcom/android/server/camera/CameraServiceProxy$2;->getRotateAndCropOverride(Ljava/lang/String;II)I PLcom/android/server/camera/CameraServiceProxy$2;->isCameraDisabled(I)Z -PLcom/android/server/camera/CameraServiceProxy$2;->notifyCameraState(Landroid/hardware/CameraSessionStats;)V -PLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;-><init>(Ljava/lang/String;ILjava/lang/String;IZIII)V +HPLcom/android/server/camera/CameraServiceProxy$2;->notifyCameraState(Landroid/hardware/CameraSessionStats;)V +PLcom/android/server/camera/CameraServiceProxy$2;->pingForUserUpdate()V +HPLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;-><init>(Ljava/lang/String;ILjava/lang/String;IZIII)V PLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;->getDuration()J -PLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;->markCompleted(IJJZLjava/util/List;Ljava/lang/String;I)V +HPLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;->markCompleted(IJJZLjava/util/List;Ljava/lang/String;I)V HSPLcom/android/server/camera/CameraServiceProxy$DisplayWindowListener;-><init>(Lcom/android/server/camera/CameraServiceProxy;)V HSPLcom/android/server/camera/CameraServiceProxy$DisplayWindowListener;-><init>(Lcom/android/server/camera/CameraServiceProxy;Lcom/android/server/camera/CameraServiceProxy$DisplayWindowListener-IA;)V PLcom/android/server/camera/CameraServiceProxy$DisplayWindowListener;->onDisplayAdded(I)V @@ -14212,12 +14841,15 @@ PLcom/android/server/camera/CameraServiceProxy;->$r8$lambda$xKzwSr6VW_ozKS_nbX2l PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$fgetmContext(Lcom/android/server/camera/CameraServiceProxy;)Landroid/content/Context; PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$fgetmLock(Lcom/android/server/camera/CameraServiceProxy;)Ljava/lang/Object; PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$mgetCameraServiceRawLocked(Lcom/android/server/camera/CameraServiceProxy;)Landroid/hardware/ICameraService; +PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$mnotifyDeviceStateWithRetries(Lcom/android/server/camera/CameraServiceProxy;I)V +PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$mnotifySwitchWithRetries(Lcom/android/server/camera/CameraServiceProxy;I)V PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$mnotifyUsbDeviceHotplugLocked(Lcom/android/server/camera/CameraServiceProxy;Landroid/hardware/usb/UsbDevice;Z)Z PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$mupdateActivityCount(Lcom/android/server/camera/CameraServiceProxy;Landroid/hardware/CameraSessionStats;)V PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$smcameraFacingToString(I)Ljava/lang/String; PLcom/android/server/camera/CameraServiceProxy;->-$$Nest$smcameraStateToString(I)Ljava/lang/String; HSPLcom/android/server/camera/CameraServiceProxy;-><clinit>()V HSPLcom/android/server/camera/CameraServiceProxy;-><init>(Landroid/content/Context;)V +PLcom/android/server/camera/CameraServiceProxy;->binderDied()V PLcom/android/server/camera/CameraServiceProxy;->cameraFacingToString(I)Ljava/lang/String; PLcom/android/server/camera/CameraServiceProxy;->cameraStateToString(I)Ljava/lang/String; PLcom/android/server/camera/CameraServiceProxy;->clearDeviceStateFlags(I)V @@ -14229,6 +14861,10 @@ PLcom/android/server/camera/CameraServiceProxy;->getMinFps(Landroid/hardware/Cam PLcom/android/server/camera/CameraServiceProxy;->isMOrBelow(Landroid/content/Context;Ljava/lang/String;)Z PLcom/android/server/camera/CameraServiceProxy;->lambda$new$0(Ljava/lang/Boolean;)V HSPLcom/android/server/camera/CameraServiceProxy;->notifyCameraserverLocked(ILjava/util/Set;)Z +PLcom/android/server/camera/CameraServiceProxy;->notifyDeviceStateChangeLocked(I)Z +PLcom/android/server/camera/CameraServiceProxy;->notifyDeviceStateWithRetries(I)V +PLcom/android/server/camera/CameraServiceProxy;->notifyDeviceStateWithRetriesLocked(I)V +PLcom/android/server/camera/CameraServiceProxy;->notifySwitchWithRetries(I)V HSPLcom/android/server/camera/CameraServiceProxy;->notifySwitchWithRetriesLocked(I)V PLcom/android/server/camera/CameraServiceProxy;->notifyUsbDeviceHotplugLocked(Landroid/hardware/usb/UsbDevice;Z)Z HSPLcom/android/server/camera/CameraServiceProxy;->onBootPhase(I)V @@ -14326,16 +14962,10 @@ PLcom/android/server/clipboard/ClipboardService;->setPrimaryClipInternalNoClassi PLcom/android/server/clipboard/ClipboardService;->showAccessNotificationLocked(Ljava/lang/String;IILcom/android/server/clipboard/ClipboardService$PerUserClipboard;)V PLcom/android/server/clipboard/ClipboardService;->startClassificationLocked(Landroid/content/ClipData;I)V HSPLcom/android/server/clipboard/ClipboardService;->updateConfig()V -PLcom/android/server/companion/AssociationRequestsProcessor$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/companion/AssociationRequestsProcessor;ILjava/lang/String;Ljava/lang/String;)V -PLcom/android/server/companion/AssociationRequestsProcessor$$ExternalSyntheticLambda0;->getOrThrow()Ljava/lang/Object; HSPLcom/android/server/companion/AssociationRequestsProcessor$1;-><init>(Lcom/android/server/companion/AssociationRequestsProcessor;Landroid/os/Handler;)V PLcom/android/server/companion/AssociationRequestsProcessor$1;->onReceiveResult(ILandroid/os/Bundle;)V -PLcom/android/server/companion/AssociationRequestsProcessor;->$r8$lambda$zEfEkry37OwO_O434vnY-v4nyJA(Lcom/android/server/companion/AssociationRequestsProcessor;ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean; PLcom/android/server/companion/AssociationRequestsProcessor;->-$$Nest$mprocessAssociationRequestApproval(Lcom/android/server/companion/AssociationRequestsProcessor;Landroid/companion/AssociationRequest;Landroid/companion/IAssociationRequestCallback;Landroid/os/ResultReceiver;Landroid/net/MacAddress;)V HSPLcom/android/server/companion/AssociationRequestsProcessor;-><clinit>()V -HSPLcom/android/server/companion/AssociationRequestsProcessor;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Lcom/android/server/companion/AssociationStore;)V -PLcom/android/server/companion/AssociationRequestsProcessor;->createAssociationAndNotifyApplication(Landroid/companion/AssociationRequest;Ljava/lang/String;ILandroid/net/MacAddress;Landroid/companion/IAssociationRequestCallback;)Landroid/companion/AssociationInfo; -PLcom/android/server/companion/AssociationRequestsProcessor;->lambda$willAddRoleHolder$0(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean; PLcom/android/server/companion/AssociationRequestsProcessor;->mayAssociateWithoutPrompt(Ljava/lang/String;I)Z PLcom/android/server/companion/AssociationRequestsProcessor;->processAssociationRequestApproval(Landroid/companion/AssociationRequest;Landroid/companion/IAssociationRequestCallback;Landroid/os/ResultReceiver;Landroid/net/MacAddress;)V PLcom/android/server/companion/AssociationRequestsProcessor;->processNewAssociationRequest(Landroid/companion/AssociationRequest;Ljava/lang/String;ILandroid/companion/IAssociationRequestCallback;)V @@ -14347,6 +14977,8 @@ HPLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda0;- HPLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z HSPLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda1;-><init>()V PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V +PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda2;-><init>(ILjava/lang/String;)V +PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z HSPLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda4;-><init>()V PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda5;-><init>()V PLcom/android/server/companion/AssociationStoreImpl$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object; @@ -14400,10 +15032,10 @@ PLcom/android/server/companion/CompanionApplicationController;->notifyCompanionA PLcom/android/server/companion/CompanionApplicationController;->notifyCompanionApplicationDeviceDisappeared(Landroid/companion/AssociationInfo;)V PLcom/android/server/companion/CompanionApplicationController;->onPackagesChanged(I)V PLcom/android/server/companion/CompanionApplicationController;->unbindCompanionApplication(ILjava/lang/String;)V -PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Landroid/content/pm/PackageInfo;)V -PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda0;->runOrThrow()V -PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda2;-><init>()V -PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V +PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda1;-><init>()V +PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V +PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;Landroid/content/pm/PackageInfo;)V +PLcom/android/server/companion/CompanionDeviceManagerService$$ExternalSyntheticLambda2;->runOrThrow()V HSPLcom/android/server/companion/CompanionDeviceManagerService$1;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V PLcom/android/server/companion/CompanionDeviceManagerService$1;->onAssociationChanged(ILandroid/companion/AssociationInfo;)V HSPLcom/android/server/companion/CompanionDeviceManagerService$2;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V @@ -14416,6 +15048,7 @@ PLcom/android/server/companion/CompanionDeviceManagerService$3;->onPackageRemove HSPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V HSPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->addOnAssociationsChangedListener(Landroid/companion/IOnAssociationsChangedListener;I)V PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->associate(Landroid/companion/AssociationRequest;Landroid/companion/IAssociationRequestCallback;Ljava/lang/String;I)V +PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->canPairWithoutPrompt(Ljava/lang/String;Ljava/lang/String;I)Z PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->checkCanCallNotificationApi(Ljava/lang/String;)V PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V HSPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->getAllAssociationsForUser(I)Ljava/util/List; @@ -14455,7 +15088,6 @@ PLcom/android/server/companion/CompanionDeviceManagerService;->-$$Nest$mpersistS HSPLcom/android/server/companion/CompanionDeviceManagerService;-><clinit>()V HSPLcom/android/server/companion/CompanionDeviceManagerService;-><init>(Landroid/content/Context;)V PLcom/android/server/companion/CompanionDeviceManagerService;->containsEither([Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z -PLcom/android/server/companion/CompanionDeviceManagerService;->createAssociation(ILjava/lang/String;Landroid/net/MacAddress;Ljava/lang/CharSequence;Ljava/lang/String;Z)Landroid/companion/AssociationInfo; PLcom/android/server/companion/CompanionDeviceManagerService;->deepUnmodifiableCopy(Ljava/util/Map;)Ljava/util/Map; PLcom/android/server/companion/CompanionDeviceManagerService;->exemptFromAutoRevoke(Ljava/lang/String;I)V PLcom/android/server/companion/CompanionDeviceManagerService;->getAssociationWithCallerChecks(I)Landroid/companion/AssociationInfo; @@ -14570,10 +15202,7 @@ PLcom/android/server/companion/PersistentDataStore;->writeAssociations(Lorg/xmlp PLcom/android/server/companion/PersistentDataStore;->writePreviouslyUsedIds(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/Map;)V PLcom/android/server/companion/RolesUtils$$ExternalSyntheticLambda0;-><init>(ILjava/lang/String;Ljava/lang/String;)V PLcom/android/server/companion/RolesUtils$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -PLcom/android/server/companion/RolesUtils;->$r8$lambda$xN3kSkf8dtHsGE5ffvnaNxO50xU(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V -PLcom/android/server/companion/RolesUtils;->addRoleHolderForAssociation(Landroid/content/Context;Landroid/companion/AssociationInfo;)V PLcom/android/server/companion/RolesUtils;->isRoleHolder(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;)Z -PLcom/android/server/companion/RolesUtils;->lambda$addRoleHolderForAssociation$0(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V PLcom/android/server/companion/Utils;->prepareForIpc(Landroid/os/ResultReceiver;)Landroid/os/ResultReceiver; HSPLcom/android/server/companion/datatransfer/SystemDataTransferProcessor$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/companion/datatransfer/SystemDataTransferProcessor;)V HSPLcom/android/server/companion/datatransfer/SystemDataTransferProcessor$1;-><init>(Lcom/android/server/companion/datatransfer/SystemDataTransferProcessor;Landroid/os/Handler;)V @@ -14661,8 +15290,6 @@ PLcom/android/server/companion/virtual/VirtualDeviceImpl$1;->onDisplayEmpty(I)V PLcom/android/server/companion/virtual/VirtualDeviceImpl$1;->onTopActivityChanged(ILandroid/content/ComponentName;)V PLcom/android/server/companion/virtual/VirtualDeviceImpl;->$r8$lambda$_I-14D8lq2ySvBk_ZJhCnNsopkU(Lcom/android/server/companion/virtual/VirtualDeviceImpl;Ljava/lang/Integer;Landroid/os/PowerManager$WakeLock;)V PLcom/android/server/companion/virtual/VirtualDeviceImpl;->-$$Nest$fgetmActivityListener(Lcom/android/server/companion/virtual/VirtualDeviceImpl;)Landroid/companion/virtual/IVirtualDeviceActivityListener; -PLcom/android/server/companion/virtual/VirtualDeviceImpl;-><init>(Landroid/content/Context;Landroid/companion/AssociationInfo;Landroid/os/IBinder;ILcom/android/server/companion/virtual/InputController;Lcom/android/server/companion/virtual/VirtualDeviceImpl$OnDeviceCloseListener;Lcom/android/server/companion/virtual/VirtualDeviceImpl$PendingTrampolineCallback;Landroid/companion/virtual/IVirtualDeviceActivityListener;Ljava/util/function/Consumer;Landroid/companion/virtual/VirtualDeviceParams;)V -PLcom/android/server/companion/virtual/VirtualDeviceImpl;-><init>(Landroid/content/Context;Landroid/companion/AssociationInfo;Landroid/os/IBinder;ILcom/android/server/companion/virtual/VirtualDeviceImpl$OnDeviceCloseListener;Lcom/android/server/companion/virtual/VirtualDeviceImpl$PendingTrampolineCallback;Landroid/companion/virtual/IVirtualDeviceActivityListener;Ljava/util/function/Consumer;Landroid/companion/virtual/VirtualDeviceParams;)V PLcom/android/server/companion/virtual/VirtualDeviceImpl;->close()V PLcom/android/server/companion/virtual/VirtualDeviceImpl;->createListenerAdapter()Landroid/companion/virtual/VirtualDeviceManager$ActivityListener; PLcom/android/server/companion/virtual/VirtualDeviceImpl;->createWindowPolicyController()Lcom/android/server/companion/virtual/GenericWindowPolicyController; @@ -14729,6 +15356,7 @@ PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fge HSPLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmVirtualDeviceManagerLock(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Ljava/lang/Object; HPLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$fgetmVirtualDevices(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;)Landroid/util/SparseArray; PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->-$$Nest$misValidVirtualDeviceLocked(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;Landroid/companion/virtual/IVirtualDevice;)Z +HSPLcom/android/server/companion/virtual/VirtualDeviceManagerService;-><clinit>()V HSPLcom/android/server/companion/virtual/VirtualDeviceManagerService;-><init>(Landroid/content/Context;)V PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->access$000(Lcom/android/server/companion/virtual/VirtualDeviceManagerService;Ljava/lang/Class;)Ljava/lang/Object; PLcom/android/server/companion/virtual/VirtualDeviceManagerService;->isValidVirtualDeviceLocked(Landroid/companion/virtual/IVirtualDevice;)Z @@ -14742,7 +15370,7 @@ HSPLcom/android/server/compat/CompatChange;-><init>(Lcom/android/server/compat/c PLcom/android/server/compat/CompatChange;->addPackageOverrideInternal(Ljava/lang/String;Z)V HSPLcom/android/server/compat/CompatChange;->clearOverrides()V HSPLcom/android/server/compat/CompatChange;->defaultValue()Z -HSPLcom/android/server/compat/CompatChange;->isEnabled(Landroid/content/pm/ApplicationInfo;Lcom/android/internal/compat/AndroidBuildClassifier;)Z+]Lcom/android/internal/compat/AndroidBuildClassifier;Lcom/android/internal/compat/AndroidBuildClassifier;]Lcom/android/internal/compat/CompatibilityChangeInfo;Lcom/android/server/compat/CompatChange;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;]Ljava/lang/Boolean;Ljava/lang/Boolean; +HSPLcom/android/server/compat/CompatChange;->isEnabled(Landroid/content/pm/ApplicationInfo;Lcom/android/internal/compat/AndroidBuildClassifier;)Z+]Lcom/android/internal/compat/AndroidBuildClassifier;Lcom/android/internal/compat/AndroidBuildClassifier;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Lcom/android/internal/compat/CompatibilityChangeInfo;Lcom/android/server/compat/CompatChange;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap; HSPLcom/android/server/compat/CompatChange;->loadOverrides(Lcom/android/server/compat/overrides/ChangeOverrides;)V PLcom/android/server/compat/CompatChange;->notifyListener(Ljava/lang/String;)V HPLcom/android/server/compat/CompatChange;->recheckOverride(Ljava/lang/String;Lcom/android/internal/compat/OverrideAllowedState;Ljava/lang/Long;)Z @@ -14786,7 +15414,7 @@ HSPLcom/android/server/compat/PlatformCompat;->getApplicationInfo(Ljava/lang/Str HSPLcom/android/server/compat/PlatformCompat;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z+]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat; HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByPackageName(JLjava/lang/String;I)Z+]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat;]Lcom/android/server/compat/CompatConfig;Lcom/android/server/compat/CompatConfig; -HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByUid(JI)Z+]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Lcom/android/server/compat/CompatConfig;Lcom/android/server/compat/CompatConfig; +HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByUid(JI)Z+]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat;]Lcom/android/server/compat/CompatConfig;Lcom/android/server/compat/CompatConfig;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager; HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternal(JLandroid/content/pm/ApplicationInfo;)Z+]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat; HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternal(JLjava/lang/String;I)Z HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabledInternalNoLogging(JLandroid/content/pm/ApplicationInfo;)Z+]Lcom/android/server/compat/CompatConfig;Lcom/android/server/compat/CompatConfig; @@ -14927,7 +15555,7 @@ HPLcom/android/server/connectivity/MultipathPolicyTracker$2$$ExternalSyntheticLa HPLcom/android/server/connectivity/MultipathPolicyTracker$2$$ExternalSyntheticLambda0;->run()V PLcom/android/server/connectivity/MultipathPolicyTracker$2;->$r8$lambda$sUU5FFg76pbe5evfR-W7OYARfmE(Lcom/android/server/connectivity/MultipathPolicyTracker$2;)V HSPLcom/android/server/connectivity/MultipathPolicyTracker$2;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V -PLcom/android/server/connectivity/MultipathPolicyTracker$2;->lambda$onMeteredIfacesChanged$0()V +HPLcom/android/server/connectivity/MultipathPolicyTracker$2;->lambda$onMeteredIfacesChanged$0()V HPLcom/android/server/connectivity/MultipathPolicyTracker$2;->onMeteredIfacesChanged([Ljava/lang/String;)V HSPLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V HSPLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;Lcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver-IA;)V @@ -14944,8 +15572,9 @@ PLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->clea HPLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getDailyNonDefaultDataUsage()J PLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getMultipathBudget()J PLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getMultipathPreference()I -PLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getNetworkTotalBytes(JJ)J +HPLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getNetworkTotalBytes(JJ)J PLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getQuota()J +HPLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getRemainingDailyBudget(JLandroid/util/Range;)J HPLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getTemplateMatchingNetworkIdentity(Landroid/net/NetworkCapabilities;)Landroid/net/NetworkIdentity; HPLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->getUserPolicyOpportunisticQuotaBytes()J PLcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;->haveMultipathBudget()Z @@ -15028,9 +15657,11 @@ PLcom/android/server/connectivity/Vpn;->getAlwaysOnPackage()Ljava/lang/String; PLcom/android/server/connectivity/Vpn;->getAppExclusionList(Ljava/lang/String;)Ljava/util/List; HSPLcom/android/server/connectivity/Vpn;->getAppUid(Ljava/lang/String;I)I PLcom/android/server/connectivity/Vpn;->getPackage()Ljava/lang/String; +PLcom/android/server/connectivity/Vpn;->getProvisionedVpnProfileState(Ljava/lang/String;)Landroid/net/VpnProfileState; PLcom/android/server/connectivity/Vpn;->getVpnAppExcludedForPackage(Ljava/lang/String;)Ljava/lang/String; PLcom/android/server/connectivity/Vpn;->getVpnConfig()Lcom/android/internal/net/VpnConfig; PLcom/android/server/connectivity/Vpn;->getVpnProfileStore()Lcom/android/server/connectivity/VpnProfileStore; +PLcom/android/server/connectivity/Vpn;->isCurrentIkev2VpnLocked(Ljava/lang/String;)Z HSPLcom/android/server/connectivity/Vpn;->isCurrentPreparedPackage(Ljava/lang/String;)Z HSPLcom/android/server/connectivity/Vpn;->isNullOrLegacyVpn(Ljava/lang/String;)Z PLcom/android/server/connectivity/Vpn;->isVpnPreConsented(Landroid/content/Context;Ljava/lang/String;I)Z @@ -15044,6 +15675,7 @@ HSPLcom/android/server/connectivity/Vpn;->setAllowOnlyVpnForUids(ZLjava/util/Col HSPLcom/android/server/connectivity/Vpn;->setAlwaysOnPackageInternal(Ljava/lang/String;ZLjava/util/List;)Z HSPLcom/android/server/connectivity/Vpn;->setVpnForcedLocked(Z)V PLcom/android/server/connectivity/Vpn;->startAlwaysOnVpn()Z +PLcom/android/server/connectivity/Vpn;->stopVpnProfile(Ljava/lang/String;)V HSPLcom/android/server/connectivity/Vpn;->updateAlwaysOnNotification(Landroid/net/NetworkInfo$DetailedState;)V PLcom/android/server/connectivity/Vpn;->updateAppExclusionList(Ljava/util/List;)V PLcom/android/server/connectivity/Vpn;->updateState(Landroid/net/NetworkInfo$DetailedState;Ljava/lang/String;)V @@ -15074,7 +15706,7 @@ HSPLcom/android/server/content/ContentService$ObserverCollector$Key;->hashCode() HSPLcom/android/server/content/ContentService$ObserverCollector;->$r8$lambda$20N4P_9I3I81aCYQxFWUsglq_-U(Lcom/android/server/content/ContentService$ObserverCollector$Key;Ljava/util/List;)V HSPLcom/android/server/content/ContentService$ObserverCollector;-><init>()V HSPLcom/android/server/content/ContentService$ObserverCollector;->collect(Landroid/database/IContentObserver;IZLandroid/net/Uri;II)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/List;Ljava/util/ArrayList; -HSPLcom/android/server/content/ContentService$ObserverCollector;->dispatch()V+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Ljava/lang/Runnable;Lcom/android/server/content/ContentService$ObserverCollector$$ExternalSyntheticLambda0; +HSPLcom/android/server/content/ContentService$ObserverCollector;->dispatch()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Handler;Landroid/os/Handler;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Ljava/lang/Runnable;Lcom/android/server/content/ContentService$ObserverCollector$$ExternalSyntheticLambda0; HSPLcom/android/server/content/ContentService$ObserverCollector;->lambda$dispatch$0(Lcom/android/server/content/ContentService$ObserverCollector$Key;Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/database/IContentObserver;Landroid/database/ContentObserver$Transport;,Landroid/database/IContentObserver$Stub$Proxy; HSPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;->-$$Nest$fgetuserHandle(Lcom/android/server/content/ContentService$ObserverNode$ObserverEntry;)I HSPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;-><init>(Lcom/android/server/content/ContentService$ObserverNode;Landroid/database/IContentObserver;ZLjava/lang/Object;IIILandroid/net/Uri;)V+]Lcom/android/internal/os/BinderDeathDispatcher;Lcom/android/internal/os/BinderDeathDispatcher; @@ -15108,7 +15740,7 @@ PLcom/android/server/content/ContentService;->enforceNonFullCrossUserPermission( PLcom/android/server/content/ContentService;->findOrCreateCacheLocked(ILjava/lang/String;)Landroid/util/ArrayMap; HPLcom/android/server/content/ContentService;->getCache(Ljava/lang/String;Landroid/net/Uri;I)Landroid/os/Bundle; PLcom/android/server/content/ContentService;->getCurrentSyncs()Ljava/util/List; -PLcom/android/server/content/ContentService;->getCurrentSyncsAsUser(I)Ljava/util/List; +HPLcom/android/server/content/ContentService;->getCurrentSyncsAsUser(I)Ljava/util/List; HPLcom/android/server/content/ContentService;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I HPLcom/android/server/content/ContentService;->getIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;I)I HPLcom/android/server/content/ContentService;->getMasterSyncAutomatically()Z @@ -15181,8 +15813,10 @@ HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;->openLogLocked(J)V HPLcom/android/server/content/SyncLogger$RotatingFileLogger;->purgeOldLogs()V HSPLcom/android/server/content/SyncLogger;-><init>()V HSPLcom/android/server/content/SyncLogger;->getInstance()Lcom/android/server/content/SyncLogger; +PLcom/android/server/content/SyncLogger;->logSafe(Landroid/accounts/Account;)Ljava/lang/String; PLcom/android/server/content/SyncLogger;->logSafe(Lcom/android/server/content/SyncManager$ActiveSyncContext;)Ljava/lang/String; PLcom/android/server/content/SyncLogger;->logSafe(Lcom/android/server/content/SyncOperation;)Ljava/lang/String; +PLcom/android/server/content/SyncLogger;->logSafe(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Ljava/lang/String; HSPLcom/android/server/content/SyncManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/content/SyncManager;)V PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda0;->onAppPermissionChanged(Landroid/accounts/Account;I)V PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/content/SyncManager;I)V @@ -15207,6 +15841,8 @@ HSPLcom/android/server/content/SyncManager$$ExternalSyntheticLambda6;-><init>(Lc HSPLcom/android/server/content/SyncManager$$ExternalSyntheticLambda6;->run()V PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/content/SyncManager;Landroid/accounts/AccountAndUser;ILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda8;->onReady()V +PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/content/SyncManager;I)V +PLcom/android/server/content/SyncManager$$ExternalSyntheticLambda9;->run()V HSPLcom/android/server/content/SyncManager$10;-><init>(Lcom/android/server/content/SyncManager;)V PLcom/android/server/content/SyncManager$10;->onServiceChanged(Landroid/content/SyncAdapterType;IZ)V PLcom/android/server/content/SyncManager$10;->onServiceChanged(Ljava/lang/Object;IZ)V @@ -15275,7 +15911,7 @@ PLcom/android/server/content/SyncManager$SyncHandler;->deferStoppedSyncH(Lcom/an HPLcom/android/server/content/SyncManager$SyncHandler;->deferSyncH(Lcom/android/server/content/SyncOperation;JLjava/lang/String;)V HPLcom/android/server/content/SyncManager$SyncHandler;->dispatchSyncOperation(Lcom/android/server/content/SyncOperation;)Z PLcom/android/server/content/SyncManager$SyncHandler;->findActiveSyncContextH(I)Lcom/android/server/content/SyncManager$ActiveSyncContext; -PLcom/android/server/content/SyncManager$SyncHandler;->getSyncWakeLock(Lcom/android/server/content/SyncOperation;)Landroid/os/PowerManager$WakeLock; +HPLcom/android/server/content/SyncManager$SyncHandler;->getSyncWakeLock(Lcom/android/server/content/SyncOperation;)Landroid/os/PowerManager$WakeLock; HPLcom/android/server/content/SyncManager$SyncHandler;->handleMessage(Landroid/os/Message;)V HPLcom/android/server/content/SyncManager$SyncHandler;->handleSyncMessage(Landroid/os/Message;)V HPLcom/android/server/content/SyncManager$SyncHandler;->insertStartSyncEvent(Lcom/android/server/content/SyncOperation;)J @@ -15321,7 +15957,7 @@ PLcom/android/server/content/SyncManager;->-$$Nest$fgetmPowerManager(Lcom/androi PLcom/android/server/content/SyncManager;->-$$Nest$fgetmRunningAccounts(Lcom/android/server/content/SyncManager;)[Landroid/accounts/AccountAndUser; PLcom/android/server/content/SyncManager;->-$$Nest$fgetmSyncHandler(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncManager$SyncHandler; HPLcom/android/server/content/SyncManager;->-$$Nest$fgetmSyncManagerWakeLock(Lcom/android/server/content/SyncManager;)Landroid/os/PowerManager$WakeLock; -PLcom/android/server/content/SyncManager;->-$$Nest$fgetmSyncStorageEngine(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncStorageEngine; +HPLcom/android/server/content/SyncManager;->-$$Nest$fgetmSyncStorageEngine(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncStorageEngine; HPLcom/android/server/content/SyncManager;->-$$Nest$fputmDataConnectionIsConnected(Lcom/android/server/content/SyncManager;Z)V PLcom/android/server/content/SyncManager;->-$$Nest$fputmRunningAccounts(Lcom/android/server/content/SyncManager;[Landroid/accounts/AccountAndUser;)V PLcom/android/server/content/SyncManager;->-$$Nest$mcancelJob(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncOperation;Ljava/lang/String;)V @@ -15351,7 +15987,7 @@ PLcom/android/server/content/SyncManager;->-$$Nest$mupdateRunningAccounts(Lcom/a PLcom/android/server/content/SyncManager;->-$$Nest$mverifyJobScheduler(Lcom/android/server/content/SyncManager;)V HSPLcom/android/server/content/SyncManager;-><clinit>()V HSPLcom/android/server/content/SyncManager;-><init>(Landroid/content/Context;Z)V -PLcom/android/server/content/SyncManager;->canAccessAccount(Landroid/accounts/Account;Ljava/lang/String;I)Z +HPLcom/android/server/content/SyncManager;->canAccessAccount(Landroid/accounts/Account;Ljava/lang/String;I)Z PLcom/android/server/content/SyncManager;->cancelActiveSync(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;Ljava/lang/String;)V HPLcom/android/server/content/SyncManager;->cancelJob(Lcom/android/server/content/SyncOperation;Ljava/lang/String;)V PLcom/android/server/content/SyncManager;->cleanupJobs()V @@ -15462,7 +16098,8 @@ PLcom/android/server/content/SyncOperation;->areExtrasEqual(Landroid/os/Bundle;Z PLcom/android/server/content/SyncOperation;->createOneTimeSyncOperation()Lcom/android/server/content/SyncOperation; HPLcom/android/server/content/SyncOperation;->dump(Landroid/content/pm/PackageManager;ZLcom/android/server/content/SyncAdapterStateFetcher;Z)Ljava/lang/String; PLcom/android/server/content/SyncOperation;->enableBackoff()V -PLcom/android/server/content/SyncOperation;->extrasToString(Landroid/os/Bundle;)Ljava/lang/String; +PLcom/android/server/content/SyncOperation;->enableTwoWaySync()V +HPLcom/android/server/content/SyncOperation;->extrasToString(Landroid/os/Bundle;)Ljava/lang/String; HPLcom/android/server/content/SyncOperation;->extrasToStringBuilder(Landroid/os/Bundle;Ljava/lang/StringBuilder;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/MapCollections$KeySet; HPLcom/android/server/content/SyncOperation;->getClonedExtras()Landroid/os/Bundle; PLcom/android/server/content/SyncOperation;->getExtrasAsString()Ljava/lang/String; @@ -15501,6 +16138,7 @@ HSPLcom/android/server/content/SyncStorageEngine$DayStats;-><init>(I)V HSPLcom/android/server/content/SyncStorageEngine$EndPoint;-><clinit>()V HSPLcom/android/server/content/SyncStorageEngine$EndPoint;-><init>(Landroid/accounts/Account;Ljava/lang/String;I)V HPLcom/android/server/content/SyncStorageEngine$EndPoint;->matchesSpec(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Z+]Landroid/accounts/Account;Landroid/accounts/Account; +PLcom/android/server/content/SyncStorageEngine$EndPoint;->toSafeString()Ljava/lang/String; HSPLcom/android/server/content/SyncStorageEngine$EndPoint;->toString()Ljava/lang/String; HSPLcom/android/server/content/SyncStorageEngine$MyHandler;-><init>(Lcom/android/server/content/SyncStorageEngine;Landroid/os/Looper;)V PLcom/android/server/content/SyncStorageEngine$MyHandler;->handleMessage(Landroid/os/Message;)V @@ -15541,7 +16179,7 @@ HSPLcom/android/server/content/SyncStorageEngine;->maybeDeleteLegacyPendingInfoL HSPLcom/android/server/content/SyncStorageEngine;->maybeMigrateSettingsForRenamedAuthorities()Z HSPLcom/android/server/content/SyncStorageEngine;->parseAuthority(Landroid/util/TypedXmlPullParser;ILcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo; HSPLcom/android/server/content/SyncStorageEngine;->parseLastEventInfoLocked(Landroid/util/proto/ProtoInputStream;)Landroid/util/Pair; -PLcom/android/server/content/SyncStorageEngine;->parseListenForTickles(Landroid/util/TypedXmlPullParser;)V +HSPLcom/android/server/content/SyncStorageEngine;->parseListenForTickles(Landroid/util/TypedXmlPullParser;)V PLcom/android/server/content/SyncStorageEngine;->queueBackup()V HSPLcom/android/server/content/SyncStorageEngine;->readAccountInfoLocked()V HSPLcom/android/server/content/SyncStorageEngine;->readDayStatsLocked(Ljava/io/InputStream;)V @@ -15584,7 +16222,7 @@ HSPLcom/android/server/contentcapture/ContentCaptureManagerInternal;-><init>()V HSPLcom/android/server/contentcapture/ContentCaptureManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V PLcom/android/server/contentcapture/ContentCaptureManagerService$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V PLcom/android/server/contentcapture/ContentCaptureManagerService$$ExternalSyntheticLambda3;-><init>(Ljava/lang/String;Landroid/content/ContentCaptureOptions;)V -PLcom/android/server/contentcapture/ContentCaptureManagerService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/contentcapture/ContentCaptureManagerService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;Ljava/lang/String;)V PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub$$ExternalSyntheticLambda0;->run()V PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;)V @@ -15619,6 +16257,7 @@ HPLcom/android/server/contentcapture/ContentCaptureManagerService$DataShareCallb PLcom/android/server/contentcapture/ContentCaptureManagerService$DataShareCallbackDelegate;->lambda$accept$1(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/service/contentcapture/IDataShareReadAdapter;)V HPLcom/android/server/contentcapture/ContentCaptureManagerService$DataShareCallbackDelegate;->logServiceEvent(I)V PLcom/android/server/contentcapture/ContentCaptureManagerService$DataShareCallbackDelegate;->reject()V +PLcom/android/server/contentcapture/ContentCaptureManagerService$DataShareCallbackDelegate;->sendErrorSignal(Landroid/view/contentcapture/IDataShareWriteAdapter;Landroid/service/contentcapture/IDataShareReadAdapter;I)V PLcom/android/server/contentcapture/ContentCaptureManagerService$DataShareCallbackDelegate;->setUpSharingPipeline(Landroid/view/contentcapture/IDataShareWriteAdapter;Landroid/service/contentcapture/IDataShareReadAdapter;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)Z HSPLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->-$$Nest$msetServiceInfo(Lcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;ILjava/lang/String;Z)V HSPLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V @@ -15629,7 +16268,6 @@ HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService; HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;Lcom/android/server/contentcapture/ContentCaptureManagerService$LocalService-IA;)V HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->getOptionsForPackage(ILjava/lang/String;)Landroid/content/ContentCaptureOptions; PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->isContentCaptureServiceForUser(II)Z -HPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->notifyActivityEvent(ILandroid/content/ComponentName;I)V PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->sendActivityAssistData(ILandroid/os/IBinder;Landroid/os/Bundle;)Z PLcom/android/server/contentcapture/ContentCaptureManagerService;->$r8$lambda$FDuZ1p7y-i2aiPAsfebLOPHm-V0(Ljava/lang/String;Landroid/content/ContentCaptureOptions;Landroid/view/contentcapture/IContentCaptureOptionsCallback;Ljava/lang/Object;)V PLcom/android/server/contentcapture/ContentCaptureManagerService;->$r8$lambda$dPqKFRjm5sLLx0XxUXYCLi_rDuk(Lcom/android/server/contentcapture/ContentCaptureManagerService;Landroid/provider/DeviceConfig$Properties;)V @@ -15679,7 +16317,7 @@ PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDisabledLoc HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isEnabledBySettings(I)Z HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isUserSupported(Lcom/android/server/SystemService$TargetUser;)Z PLcom/android/server/contentcapture/ContentCaptureManagerService;->lambda$new$0(Landroid/provider/DeviceConfig$Properties;)V -PLcom/android/server/contentcapture/ContentCaptureManagerService;->lambda$updateOptions$3(Ljava/lang/String;Landroid/content/ContentCaptureOptions;Landroid/view/contentcapture/IContentCaptureOptionsCallback;Ljava/lang/Object;)V +HPLcom/android/server/contentcapture/ContentCaptureManagerService;->lambda$updateOptions$3(Ljava/lang/String;Landroid/content/ContentCaptureOptions;Landroid/view/contentcapture/IContentCaptureOptionsCallback;Ljava/lang/Object;)V PLcom/android/server/contentcapture/ContentCaptureManagerService;->newServiceLocked(IZ)Lcom/android/server/contentcapture/ContentCapturePerUserService; PLcom/android/server/contentcapture/ContentCaptureManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService; PLcom/android/server/contentcapture/ContentCaptureManagerService;->onDeviceConfigChange(Landroid/provider/DeviceConfig$Properties;)V @@ -15703,7 +16341,7 @@ PLcom/android/server/contentcapture/ContentCaptureMetricsLogger;->writeSetWhitel PLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;-><init>(Lcom/android/server/contentcapture/ContentCapturePerUserService;)V PLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;-><init>(Lcom/android/server/contentcapture/ContentCapturePerUserService;Lcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback-IA;)V HPLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;->setContentCaptureWhitelist(Ljava/util/List;Ljava/util/List;)V -PLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;->updateContentCaptureOptions(Landroid/util/ArraySet;)V +HPLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;->updateContentCaptureOptions(Landroid/util/ArraySet;)V HPLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;->writeSessionFlush(ILandroid/content/ComponentName;Landroid/service/contentcapture/FlushMetrics;Landroid/content/ContentCaptureOptions;I)V+]Lcom/android/server/infra/AbstractPerUserSystemService;Lcom/android/server/contentcapture/ContentCapturePerUserService; PLcom/android/server/contentcapture/ContentCapturePerUserService;->-$$Nest$fgetmSessions(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Landroid/util/SparseArray; PLcom/android/server/contentcapture/ContentCapturePerUserService;-><clinit>()V @@ -15711,20 +16349,30 @@ PLcom/android/server/contentcapture/ContentCapturePerUserService;-><init>(Lcom/a PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$000(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService; PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$1600(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$1700(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService; +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$1800(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$1900(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$200(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$2000(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$2100(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService; +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$2200(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService; PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$300(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService; PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$400(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$500(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$600(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService; +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$700(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$800(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I +PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$900(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService; HPLcom/android/server/contentcapture/ContentCapturePerUserService;->assertCallerLocked(Ljava/lang/String;)V PLcom/android/server/contentcapture/ContentCapturePerUserService;->destroyLocked()V PLcom/android/server/contentcapture/ContentCapturePerUserService;->destroySessionsLocked()V PLcom/android/server/contentcapture/ContentCapturePerUserService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V HPLcom/android/server/contentcapture/ContentCapturePerUserService;->finishSessionLocked(I)V +PLcom/android/server/contentcapture/ContentCapturePerUserService;->getContentCaptureAllowlist()Landroid/util/ArraySet; PLcom/android/server/contentcapture/ContentCapturePerUserService;->getContentCaptureConditionsLocked(Ljava/lang/String;)Landroid/util/ArraySet; PLcom/android/server/contentcapture/ContentCapturePerUserService;->getServiceSettingsActivityLocked()Landroid/content/ComponentName; PLcom/android/server/contentcapture/ContentCapturePerUserService;->getSessionId(Landroid/os/IBinder;)I PLcom/android/server/contentcapture/ContentCapturePerUserService;->isContentCaptureServiceForUserLocked(I)Z PLcom/android/server/contentcapture/ContentCapturePerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo; -HPLcom/android/server/contentcapture/ContentCapturePerUserService;->onActivityEventLocked(Landroid/content/ComponentName;I)V PLcom/android/server/contentcapture/ContentCapturePerUserService;->onConnected()V HPLcom/android/server/contentcapture/ContentCapturePerUserService;->onDataSharedLocked(Landroid/view/contentcapture/DataShareRequest;Landroid/service/contentcapture/IDataShareCallback$Stub;)V PLcom/android/server/contentcapture/ContentCapturePerUserService;->onPackageUpdatedLocked()V @@ -15760,7 +16408,7 @@ PLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSynthet PLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda1;->run(Landroid/os/IInterface;)V PLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda2;-><init>(Landroid/view/contentcapture/DataRemovalRequest;)V PLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda2;->run(Landroid/os/IInterface;)V -PLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda3;-><init>(Landroid/view/contentcapture/DataShareRequest;Landroid/service/contentcapture/IDataShareCallback$Stub;)V +HPLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda3;-><init>(Landroid/view/contentcapture/DataShareRequest;Landroid/service/contentcapture/IDataShareCallback$Stub;)V HPLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda3;->run(Landroid/os/IInterface;)V PLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda4;-><init>(ILandroid/service/contentcapture/SnapshotData;)V HPLcom/android/server/contentcapture/RemoteContentCaptureService$$ExternalSyntheticLambda4;->run(Landroid/os/IInterface;)V @@ -15852,6 +16500,13 @@ PLcom/android/server/contentsuggestions/RemoteContentSuggestionsService;->notify PLcom/android/server/contentsuggestions/RemoteContentSuggestionsService;->provideContextImage(ILandroid/hardware/HardwareBuffer;ILandroid/os/Bundle;)V PLcom/android/server/contentsuggestions/RemoteContentSuggestionsService;->suggestContentSelections(Landroid/app/contentsuggestions/SelectionsRequest;Landroid/app/contentsuggestions/ISelectionsCallback;)V HSPLcom/android/server/coverage/CoverageService;-><clinit>()V +HSPLcom/android/server/credentials/CredentialManagerService$CredentialManagerServiceStub;-><init>(Lcom/android/server/credentials/CredentialManagerService;)V +HSPLcom/android/server/credentials/CredentialManagerService;-><init>(Landroid/content/Context;)V +PLcom/android/server/credentials/CredentialManagerService;->getServiceSettingsProperty()Ljava/lang/String; +PLcom/android/server/credentials/CredentialManagerService;->newServiceLocked(IZ)Lcom/android/server/credentials/CredentialManagerServiceImpl; +PLcom/android/server/credentials/CredentialManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService; +HSPLcom/android/server/credentials/CredentialManagerService;->onStart()V +PLcom/android/server/credentials/CredentialManagerServiceImpl;-><init>(Lcom/android/server/credentials/CredentialManagerService;Ljava/lang/Object;I)V HSPLcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/criticalevents/CriticalEventLog;)V PLcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda0;->run()V HSPLcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/criticalevents/CriticalEventLog;Lcom/android/server/criticalevents/CriticalEventLog$ILogLoader;)V @@ -15920,7 +16575,7 @@ HSPLcom/android/server/devicepolicy/ActiveAdmin;->removeDeprecatedRestrictions(L HPLcom/android/server/devicepolicy/ActiveAdmin;->writeAttributeValueToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;I)V HPLcom/android/server/devicepolicy/ActiveAdmin;->writeAttributeValueToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;J)V HPLcom/android/server/devicepolicy/ActiveAdmin;->writeAttributeValueToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;Z)V -HPLcom/android/server/devicepolicy/ActiveAdmin;->writeAttributeValuesToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V+]Ljava/util/Collection;Ljava/util/ArrayList;,Landroid/util/ArraySet;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Landroid/util/MapCollections$ArrayIterator;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; +HPLcom/android/server/devicepolicy/ActiveAdmin;->writeAttributeValuesToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V+]Ljava/util/Collection;Landroid/util/ArraySet;,Ljava/util/ArrayList;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; HPLcom/android/server/devicepolicy/ActiveAdmin;->writePackageListToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;Ljava/util/List;)V HPLcom/android/server/devicepolicy/ActiveAdmin;->writeTextToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;Ljava/lang/String;)V HPLcom/android/server/devicepolicy/ActiveAdmin;->writeToXml(Landroid/util/TypedXmlSerializer;)V @@ -15929,7 +16584,7 @@ HSPLcom/android/server/devicepolicy/BaseIDevicePolicyManager;-><init>()V HSPLcom/android/server/devicepolicy/CallerIdentity;-><init>(ILjava/lang/String;Landroid/content/ComponentName;)V HPLcom/android/server/devicepolicy/CallerIdentity;->getComponentName()Landroid/content/ComponentName; HPLcom/android/server/devicepolicy/CallerIdentity;->getPackageName()Ljava/lang/String; -HPLcom/android/server/devicepolicy/CallerIdentity;->getUid()I +HSPLcom/android/server/devicepolicy/CallerIdentity;->getUid()I HPLcom/android/server/devicepolicy/CallerIdentity;->getUserHandle()Landroid/os/UserHandle; HSPLcom/android/server/devicepolicy/CallerIdentity;->getUserId()I HPLcom/android/server/devicepolicy/CallerIdentity;->hasAdminComponent()Z @@ -15969,7 +16624,7 @@ HSPLcom/android/server/devicepolicy/DeviceManagementResourcesProvider;->load()V HSPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;-><init>()V PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->canAdminGrantSensorsPermissionsForUser(I)Z PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->dump(Landroid/util/IndentingPrintWriter;)V -PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getPasswordQuality(I)I +HPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getPasswordQuality(I)I PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getPermissionPolicy(I)I HSPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getScreenCaptureDisallowedUser()I HPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->isScreenCaptureAllowed(I)Z @@ -16015,7 +16670,7 @@ HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheti HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda136;->test(Ljava/lang/Object;)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda137;->getOrThrow()Ljava/lang/Object; HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda139;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;I)V -PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda139;->runOrThrow()V +HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda139;->runOrThrow()V HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda13;->runOrThrow()V HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda140;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V @@ -16046,6 +16701,8 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticL PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda19;->getOrThrow()Ljava/lang/Object; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/util/List;)V HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda20;->runOrThrow()V +PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda22;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V +PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda22;->runOrThrow()V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/CallerIdentity;)V HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda23;->getOrThrow()Ljava/lang/Object; PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V @@ -16055,7 +16712,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticL PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda2;->runOrThrow()V -PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Lcom/android/server/devicepolicy/CallerIdentity;Landroid/content/ComponentName;)V +HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Lcom/android/server/devicepolicy/CallerIdentity;Landroid/content/ComponentName;)V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda30;->runOrThrow()V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/ActiveAdmin;IIZLandroid/content/ComponentName;)V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda31;->runOrThrow()V @@ -16103,8 +16760,10 @@ HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSynthetic HPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda81;->getOrThrow()Ljava/lang/Object; PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda85;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda85;->runOrThrow()V -PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda86;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V -PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda86;->getOrThrow()Ljava/lang/Object; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda86;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda86;->getOrThrow()Ljava/lang/Object; +PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda87;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyData;I)V +PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda87;->runOrThrow()V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda8;->runOrThrow()V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda94;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/CallerIdentity;)V PLcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda94;->getOrThrow()Ljava/lang/Object; @@ -16277,7 +16936,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$jNwpnH HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$l_hMe9WC-MxTJrB8DucYweA0Oik(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$mKEPP3VRy2HnmLMkeLiKAIPqPAA(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$nuzSJxmFVDMxtCpuVzTQJAxcKyc(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ZILandroid/content/Context;J)V -PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$qz5V-Qfyvvq5IE_1y1iCeRdjzRk(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Lcom/android/server/devicepolicy/ActiveAdmin; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$qz5V-Qfyvvq5IE_1y1iCeRdjzRk(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)Lcom/android/server/devicepolicy/ActiveAdmin; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$r1lznElDKs28xJBJoVmfJbPMV3s(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/admin/ParcelableResource; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$rJdQx3eOmq_FnQ5shOxaxdI8Eu4(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)Ljava/lang/Boolean; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->$r8$lambda$rlXnWEUWxuO0BqFpYgzFkkyzSEM(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/ActiveAdmin;IIZLandroid/content/ComponentName;)V @@ -16321,7 +16980,7 @@ HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->applyProfileRes HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->areAllUsersAffiliatedWithDeviceLocked()Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->canAdminGrantSensorsPermissionsForUser(I)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->canManageCaCerts(Lcom/android/server/devicepolicy/CallerIdentity;)Z -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->canManageUsers(Lcom/android/server/devicepolicy/CallerIdentity;)Z +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->canManageUsers(Lcom/android/server/devicepolicy/CallerIdentity;)Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->canQueryAdminPolicy(Lcom/android/server/devicepolicy/CallerIdentity;)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->canSetPasswordQualityOnParent(Ljava/lang/String;Lcom/android/server/devicepolicy/CallerIdentity;)Z HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->canUsbDataSignalingBeDisabled()Z @@ -16363,7 +17022,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminFor PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForCallerLocked(Landroid/content/ComponentName;IZ)Lcom/android/server/devicepolicy/ActiveAdmin; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForUidLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/ActiveAdmin; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminOrCheckPermissionForCallerLocked(Landroid/content/ComponentName;ILjava/lang/String;)Lcom/android/server/devicepolicy/ActiveAdmin; -PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminOrCheckPermissionForCallerLocked(Landroid/content/ComponentName;IZLjava/lang/String;)Lcom/android/server/devicepolicy/ActiveAdmin; +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminOrCheckPermissionForCallerLocked(Landroid/content/ComponentName;IZLjava/lang/String;)Lcom/android/server/devicepolicy/ActiveAdmin; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminPackagesLocked(I)Ljava/util/Set; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminUncheckedLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/ActiveAdmin; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminUncheckedLocked(Landroid/content/ComponentName;IZ)Lcom/android/server/devicepolicy/ActiveAdmin; @@ -16385,7 +17044,7 @@ HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdenti HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdentity(Landroid/content/ComponentName;)Lcom/android/server/devicepolicy/CallerIdentity;+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdentity(Landroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/devicepolicy/CallerIdentity;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/devicepolicy/ActiveAdmin;Lcom/android/server/devicepolicy/ActiveAdmin; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCallerIdentity(Ljava/lang/String;)Lcom/android/server/devicepolicy/CallerIdentity; -PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCameraDisabled(Landroid/content/ComponentName;IZ)Z +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCameraDisabled(Landroid/content/ComponentName;IZ)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCredentialOwner(IZ)I HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileCallerIdDisabledForUser(I)Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileContactsSearchDisabledForUser(I)Z @@ -16399,7 +17058,7 @@ HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDelegatedScop HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOrProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerAdminLocked()Lcom/android/server/devicepolicy/ActiveAdmin; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;+]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector; -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerLocked(Lcom/android/server/devicepolicy/CallerIdentity;)Lcom/android/server/devicepolicy/ActiveAdmin; +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerName()Ljava/lang/String; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerOrProfileOwnerOfOrganizationOwnedDeviceLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerOrProfileOwnerOfOrganizationOwnedDeviceParentLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; @@ -16418,7 +17077,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getEnrollmentSpec PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getFactoryResetProtectionPolicy(Landroid/content/ComponentName;)Landroid/app/admin/FactoryResetProtectionPolicy; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getFrpManagementAgentUid()I PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getFrpManagementAgentUidOrThrow()I -PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getIntentFilterActions(Landroid/content/IntentFilter;)[Ljava/lang/String; +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getIntentFilterActions(Landroid/content/IntentFilter;)[Ljava/lang/String; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeepUninstalledPackagesLocked()Ljava/util/List; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I+]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/devicepolicy/ActiveAdmin;Lcom/android/server/devicepolicy/ActiveAdmin; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLockObject()Ljava/lang/Object;+]Lcom/android/internal/util/StatLogger;Lcom/android/internal/util/StatLogger; @@ -16455,12 +17114,12 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPolicyManagedP HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPowerManagerInternal()Landroid/os/PowerManagerInternal; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin;+]Landroid/app/admin/DeviceAdminInfo;Landroid/app/admin/DeviceAdminInfo;]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAdminsForCurrentProfileGroup()Ljava/util/List; -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;+]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerLocked(Lcom/android/server/devicepolicy/CallerIdentity;)Lcom/android/server/devicepolicy/ActiveAdmin; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;+]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerName(I)Ljava/lang/String; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerNameUnchecked(I)Ljava/lang/String; -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOfOrganizationOwnedDeviceLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOrDeviceOwnerLocked(Lcom/android/server/devicepolicy/CallerIdentity;)Lcom/android/server/devicepolicy/ActiveAdmin; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOfOrganizationOwnedDeviceLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOrDeviceOwnerLocked(I)Lcom/android/server/devicepolicy/ActiveAdmin; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOrDeviceOwnerSupervisionComponent(Landroid/os/UserHandle;)Landroid/content/ComponentName; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileParentId(I)I HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileParentUserIfRequested(IZ)I @@ -16479,7 +17138,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUpdatableStrin HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserData(I)Lcom/android/server/devicepolicy/DevicePolicyData;+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserDataUnchecked(I)Lcom/android/server/devicepolicy/DevicePolicyData;+]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserIdToWipeForFailedPasswords(Lcom/android/server/devicepolicy/ActiveAdmin;)I -HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;+]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserProvisioningState()I PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserProvisioningState(I)I PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserRestrictions(Landroid/content/ComponentName;Z)Landroid/os/Bundle; @@ -16495,9 +17154,9 @@ HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleStartUser PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleStopUser(I)V PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleUnlockUser(I)V PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasAccountFeatures(Landroid/accounts/AccountManager;Landroid/accounts/Account;[Ljava/lang/String;)Z -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCallingOrSelfPermission(Ljava/lang/String;)Z +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCallingOrSelfPermission(Ljava/lang/String;)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCallingPermission(Ljava/lang/String;)Z -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCrossUsersPermission(Lcom/android/server/devicepolicy/CallerIdentity;I)Z+]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasCrossUsersPermission(Lcom/android/server/devicepolicy/CallerIdentity;I)Z+]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasDeviceIdAccessUnchecked(Ljava/lang/String;I)Z+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Landroid/content/ComponentName;Landroid/content/ComponentName; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasDeviceOwner()Z HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasFullCrossUsersPermission(Lcom/android/server/devicepolicy/CallerIdentity;I)Z @@ -16518,10 +17177,11 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCredentialManag PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCurrentInputMethodSetByOwner()Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDefaultDeviceOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwner(Landroid/content/ComponentName;I)Z +PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwnerLocked(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Landroid/content/ComponentName;Landroid/content/ComponentName; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwnerUserId(I)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isEncryptionSupported()Z -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isFinancedDeviceOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isFinancedDeviceOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isLockTaskPermitted(Ljava/lang/String;)Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isLogoutEnabled()Z HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isManagedProfile(I)Z @@ -16534,7 +17194,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPackageInstalle HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPackageSuspended(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z+]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPasswordSufficientForUserWithoutCheckpointLocked(Landroid/app/admin/PasswordMetrics;I)Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Landroid/content/ComponentName;I)Z -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Landroid/content/ComponentName;Landroid/content/ComponentName; +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;]Landroid/content/ComponentName;Landroid/content/ComponentName; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(I)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Landroid/content/ComponentName;I)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Lcom/android/server/devicepolicy/CallerIdentity;)Z @@ -16547,7 +17207,7 @@ HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSecondaryLocks PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSecurityLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;)Z HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSeparateProfileChallengeEnabled(I)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSupervisionComponentLocked(Landroid/content/ComponentName;)Z -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSystemUid(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSystemUid(Lcom/android/server/devicepolicy/CallerIdentity;)Z+]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUidDeviceOwnerLocked(I)Z+]Lcom/android/server/devicepolicy/Owners;Lcom/android/server/devicepolicy/Owners;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;]Landroid/content/ComponentName;Landroid/content/ComponentName; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUidProfileOwnerLocked(I)Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;)Z+]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService; @@ -16565,7 +17225,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$ensureMini HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$findAdmin$4(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getActiveAdminsForAffectedUserLocked$14(Landroid/content/pm/UserInfo;)Z HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getActiveAdminsForLockscreenPoliciesLocked$13(Landroid/content/pm/UserInfo;)Z -HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getActiveAdminsForUserAndItsManagedProfilesLocked$15(ILjava/util/ArrayList;Ljava/util/function/Predicate;)V+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/UserManager;Landroid/os/UserManager;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/devicepolicy/ActiveAdmin;Lcom/android/server/devicepolicy/ActiveAdmin;]Ljava/util/function/Predicate;Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda121;,Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda151;,Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda32;,Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda136; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getActiveAdminsForUserAndItsManagedProfilesLocked$15(ILjava/util/ArrayList;Ljava/util/function/Predicate;)V+]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/devicepolicy/ActiveAdmin;Lcom/android/server/devicepolicy/ActiveAdmin;]Landroid/os/UserManager;Landroid/os/UserManager;]Ljava/util/function/Predicate;Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda121;,Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda151;,Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda32;,Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda136;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getAlwaysOnVpnPackage$44(Lcom/android/server/devicepolicy/CallerIdentity;)Ljava/lang/String; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationLabel$70(ILjava/lang/String;)Ljava/lang/String; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$85(Ljava/lang/String;Lcom/android/server/devicepolicy/CallerIdentity;)Landroid/os/Bundle; @@ -16575,7 +17235,7 @@ HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getDrawa PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getNetworkLoggingAffectedUser$120()Ljava/lang/Integer; HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$106(Lcom/android/server/devicepolicy/CallerIdentity;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Integer;+]Lcom/android/server/devicepolicy/CallerIdentity;Lcom/android/server/devicepolicy/CallerIdentity;]Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService;]Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPolicyManagedProfiles$167(I)Ljava/util/List; -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$69(I)Lcom/android/server/devicepolicy/ActiveAdmin; +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$69(I)Lcom/android/server/devicepolicy/ActiveAdmin; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$72(I)Ljava/lang/Integer;+]Landroid/os/UserManager;Landroid/os/UserManager; HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getString$160(Ljava/lang/String;)Landroid/app/admin/ParcelableResource; PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUpdatableString$162(I[Ljava/lang/Object;)Ljava/lang/String; @@ -16642,7 +17302,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->notSupportedOnAut PLcom/android/server/devicepolicy/DevicePolicyManagerService;->notifyPendingSystemUpdate(Landroid/app/admin/SystemUpdateInfo;)V PLcom/android/server/devicepolicy/DevicePolicyManagerService;->onInstalledCertificatesChanged(Landroid/os/UserHandle;Ljava/util/Collection;)V HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->onLockSettingsReady()V -HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->packageHasActiveAdmins(Ljava/lang/String;I)Z +HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->packageHasActiveAdmins(Ljava/lang/String;I)Z PLcom/android/server/devicepolicy/DevicePolicyManagerService;->passwordQualityInvocationOrderCheckEnabled(Ljava/lang/String;I)Z HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->performPolicyVersionUpgrade()V HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushActiveAdminPackages()V @@ -16727,7 +17387,7 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSecureSetting( PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSecurityLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setStatusBarDisabled(Landroid/content/ComponentName;Z)Z -PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setStorageEncryption(Landroid/content/ComponentName;Z)I +HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setStorageEncryption(Landroid/content/ComponentName;Z)I PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSystemUpdatePolicy(Landroid/content/ComponentName;Landroid/app/admin/SystemUpdatePolicy;)V HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setUserControlDisabledPackages(Landroid/content/ComponentName;Ljava/util/List;)V HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;ZZ)V @@ -16872,7 +17532,7 @@ PLcom/android/server/devicepolicy/OwnersData$OwnerInfo;->dump(Landroid/util/Inde HSPLcom/android/server/devicepolicy/OwnersData$OwnerInfo;->readFromXml(Landroid/util/TypedXmlPullParser;)Lcom/android/server/devicepolicy/OwnersData$OwnerInfo; PLcom/android/server/devicepolicy/OwnersData$OwnerInfo;->writeToXml(Landroid/util/TypedXmlSerializer;Ljava/lang/String;)V HSPLcom/android/server/devicepolicy/OwnersData$ProfileOwnerReadWriter;-><init>(Lcom/android/server/devicepolicy/OwnersData;I)V -PLcom/android/server/devicepolicy/OwnersData$ProfileOwnerReadWriter;->readInner(Landroid/util/TypedXmlPullParser;ILjava/lang/String;)Z +HSPLcom/android/server/devicepolicy/OwnersData$ProfileOwnerReadWriter;->readInner(Landroid/util/TypedXmlPullParser;ILjava/lang/String;)Z HSPLcom/android/server/devicepolicy/OwnersData;-><init>(Lcom/android/server/devicepolicy/PolicyPathProvider;)V PLcom/android/server/devicepolicy/OwnersData;->dump(Landroid/util/IndentingPrintWriter;)V HSPLcom/android/server/devicepolicy/OwnersData;->getDeviceOwnerFile()Ljava/io/File; @@ -16916,7 +17576,7 @@ PLcom/android/server/devicepolicy/SecurityLogMonitor;->pause()V PLcom/android/server/devicepolicy/SecurityLogMonitor;->resume()V PLcom/android/server/devicepolicy/SecurityLogMonitor;->retrieveLogs()Ljava/util/List; HSPLcom/android/server/devicepolicy/SecurityLogMonitor;->run()V -PLcom/android/server/devicepolicy/SecurityLogMonitor;->saveLastEvents(Ljava/util/ArrayList;)V +HPLcom/android/server/devicepolicy/SecurityLogMonitor;->saveLastEvents(Ljava/util/ArrayList;)V HSPLcom/android/server/devicepolicy/SecurityLogMonitor;->start(I)V HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;-><init>()V HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;->getOwnerTransferMetadataDir()Ljava/io/File; @@ -17018,7 +17678,7 @@ HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;-><init>(Lcom HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->isRunning()Z HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->reset()V HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->start()V+]Lcom/android/server/display/AmbientBrightnessStatsTracker$Clock;Lcom/android/server/display/AmbientBrightnessStatsTracker$$ExternalSyntheticLambda0; -HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->totalDurationSec()F +HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->totalDurationSec()F+]Lcom/android/server/display/AmbientBrightnessStatsTracker$Clock;Lcom/android/server/display/AmbientBrightnessStatsTracker$$ExternalSyntheticLambda0; HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->$r8$lambda$PpdGe5Aypn-LWzDAucX-R3O7B_k(Lcom/android/server/display/AmbientBrightnessStatsTracker;)J HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->-$$Nest$fgetmInjector(Lcom/android/server/display/AmbientBrightnessStatsTracker;)Lcom/android/server/display/AmbientBrightnessStatsTracker$Injector; HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->-$$Nest$fgetmUserManager(Lcom/android/server/display/AmbientBrightnessStatsTracker;)Landroid/os/UserManager; @@ -17250,7 +17910,7 @@ HSPLcom/android/server/display/BrightnessTracker;->-$$Nest$fgetmBrightnessConfig HSPLcom/android/server/display/BrightnessTracker;->-$$Nest$fgetmColorSamplingEnabled(Lcom/android/server/display/BrightnessTracker;)Z HSPLcom/android/server/display/BrightnessTracker;->-$$Nest$fputmBrightnessConfiguration(Lcom/android/server/display/BrightnessTracker;Landroid/hardware/display/BrightnessConfiguration;)V HSPLcom/android/server/display/BrightnessTracker;->-$$Nest$mbackgroundStart(Lcom/android/server/display/BrightnessTracker;F)V -PLcom/android/server/display/BrightnessTracker;->-$$Nest$mbatteryLevelChanged(Lcom/android/server/display/BrightnessTracker;II)V +HPLcom/android/server/display/BrightnessTracker;->-$$Nest$mbatteryLevelChanged(Lcom/android/server/display/BrightnessTracker;II)V PLcom/android/server/display/BrightnessTracker;->-$$Nest$mdisableColorSampling(Lcom/android/server/display/BrightnessTracker;)V PLcom/android/server/display/BrightnessTracker;->-$$Nest$menableColorSampling(Lcom/android/server/display/BrightnessTracker;)V PLcom/android/server/display/BrightnessTracker;->-$$Nest$mhandleBrightnessChanged(Lcom/android/server/display/BrightnessTracker;FZFZZJLjava/lang/String;)V @@ -17305,33 +17965,35 @@ PLcom/android/server/display/ColorFade;->checkGlErrors(Ljava/lang/String;Z)Z PLcom/android/server/display/ColorFade;->createEglContext(Z)Z PLcom/android/server/display/ColorFade;->createEglSurface(ZZ)Z HSPLcom/android/server/display/ColorFade;->createNativeFloatBuffer(I)Ljava/nio/FloatBuffer; -PLcom/android/server/display/ColorFade;->createSurfaceControl(Z)Z +HPLcom/android/server/display/ColorFade;->createSurfaceControl(Z)Z PLcom/android/server/display/ColorFade;->destroyEglSurface()V PLcom/android/server/display/ColorFade;->destroyGLBuffers()V PLcom/android/server/display/ColorFade;->destroyGLShaders()V PLcom/android/server/display/ColorFade;->destroyScreenshotTexture()V PLcom/android/server/display/ColorFade;->destroySurface()V -PLcom/android/server/display/ColorFade;->detachEglContext()V +HPLcom/android/server/display/ColorFade;->detachEglContext()V HSPLcom/android/server/display/ColorFade;->dismiss()V PLcom/android/server/display/ColorFade;->dismissResources()V HPLcom/android/server/display/ColorFade;->draw(F)Z HPLcom/android/server/display/ColorFade;->drawFaded(FF)V PLcom/android/server/display/ColorFade;->dump(Ljava/io/PrintWriter;)V PLcom/android/server/display/ColorFade;->initGLBuffers()Z -PLcom/android/server/display/ColorFade;->initGLShaders(Landroid/content/Context;)Z +HPLcom/android/server/display/ColorFade;->initGLShaders(Landroid/content/Context;)Z PLcom/android/server/display/ColorFade;->loadShader(Landroid/content/Context;II)I PLcom/android/server/display/ColorFade;->ortho(FFFFFF)V -PLcom/android/server/display/ColorFade;->prepare(Landroid/content/Context;I)Z +HPLcom/android/server/display/ColorFade;->prepare(Landroid/content/Context;I)Z PLcom/android/server/display/ColorFade;->readFile(Landroid/content/Context;I)Ljava/lang/String; PLcom/android/server/display/ColorFade;->setQuad(Ljava/nio/FloatBuffer;FFFF)V -PLcom/android/server/display/ColorFade;->setScreenshotTextureAndSetViewport(Landroid/window/ScreenCapture$ScreenshotHardwareBuffer;)Z +HPLcom/android/server/display/ColorFade;->setScreenshotTextureAndSetViewport(Landroid/window/ScreenCapture$ScreenshotHardwareBuffer;)Z PLcom/android/server/display/ColorFade;->showSurface(F)Z HSPLcom/android/server/display/DensityMapping$$ExternalSyntheticLambda0;-><init>()V HSPLcom/android/server/display/DensityMapping$Entry;-><clinit>()V HSPLcom/android/server/display/DensityMapping$Entry;-><init>(III)V +PLcom/android/server/display/DensityMapping$Entry;->toString()Ljava/lang/String; HSPLcom/android/server/display/DensityMapping;-><init>([Lcom/android/server/display/DensityMapping$Entry;)V HSPLcom/android/server/display/DensityMapping;->createByOwning([Lcom/android/server/display/DensityMapping$Entry;)Lcom/android/server/display/DensityMapping; HSPLcom/android/server/display/DensityMapping;->getDensityForResolution(II)I +PLcom/android/server/display/DensityMapping;->toString()Ljava/lang/String; HSPLcom/android/server/display/DensityMapping;->verifyDensityMapping([Lcom/android/server/display/DensityMapping$Entry;)V HSPLcom/android/server/display/DeviceStateToLayoutMap;-><init>()V HSPLcom/android/server/display/DeviceStateToLayoutMap;->createLayout(I)Lcom/android/server/display/layout/Layout; @@ -17383,17 +18045,21 @@ PLcom/android/server/display/DisplayDevice;->setRequestedColorModeLocked(I)V PLcom/android/server/display/DisplayDevice;->setSurfaceLocked(Landroid/view/SurfaceControl$Transaction;Landroid/view/Surface;)V HSPLcom/android/server/display/DisplayDeviceConfig$1;-><clinit>()V HSPLcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData$ThrottlingLevel;-><init>(IF)V +PLcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData$ThrottlingLevel;->toString()Ljava/lang/String; HSPLcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData;-><init>(Ljava/util/List;)V HSPLcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData;->create(Lcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData;)Lcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData; HSPLcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData;->create(Ljava/util/List;)Lcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData; +PLcom/android/server/display/DisplayDeviceConfig$BrightnessThrottlingData;->toString()Ljava/lang/String; HSPLcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;-><init>()V HSPLcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;->copyTo(Lcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;)V PLcom/android/server/display/DisplayDeviceConfig$HighBrightnessModeData;->toString()Ljava/lang/String; HSPLcom/android/server/display/DisplayDeviceConfig$SensorData;-><init>()V PLcom/android/server/display/DisplayDeviceConfig$SensorData;->matches(Ljava/lang/String;Ljava/lang/String;)Z PLcom/android/server/display/DisplayDeviceConfig$SensorData;->toString()Ljava/lang/String; +HSPLcom/android/server/display/DisplayDeviceConfig;-><clinit>()V HSPLcom/android/server/display/DisplayDeviceConfig;-><init>(Landroid/content/Context;)V HSPLcom/android/server/display/DisplayDeviceConfig;->constrainNitsAndBacklightArrays()V +HSPLcom/android/server/display/DisplayDeviceConfig;->constraintInRangeIfNeeded([F)[F HSPLcom/android/server/display/DisplayDeviceConfig;->convertInterpolationType(Ljava/lang/String;)I HSPLcom/android/server/display/DisplayDeviceConfig;->convertThermalStatus(Lcom/android/server/display/config/ThermalStatus;)I HSPLcom/android/server/display/DisplayDeviceConfig;->copyUninitializedValuesFromSecondaryConfig(Lcom/android/server/display/config/DisplayConfiguration;)V @@ -17401,6 +18067,14 @@ HSPLcom/android/server/display/DisplayDeviceConfig;->create(Landroid/content/Con PLcom/android/server/display/DisplayDeviceConfig;->create(Landroid/content/Context;Z)Lcom/android/server/display/DisplayDeviceConfig; HSPLcom/android/server/display/DisplayDeviceConfig;->createBacklightConversionSplines()V HSPLcom/android/server/display/DisplayDeviceConfig;->createWithoutDefaultValues(Landroid/content/Context;JZ)Lcom/android/server/display/DisplayDeviceConfig; +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientBrighteningLevels()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientBrighteningLevelsIdle()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientBrighteningPercentages()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientBrighteningPercentagesIdle()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientDarkeningLevels()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientDarkeningLevelsIdle()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientDarkeningPercentages()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientDarkeningPercentagesIdle()[F HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientHorizonLong()I HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientHorizonShort()I HSPLcom/android/server/display/DisplayDeviceConfig;->getAmbientLightSensor()Lcom/android/server/display/DisplayDeviceConfig$SensorData; @@ -17415,6 +18089,8 @@ HSPLcom/android/server/display/DisplayDeviceConfig;->getAutoBrightnessDarkeningL HSPLcom/android/server/display/DisplayDeviceConfig;->getBacklightFromBrightness(F)F+]Landroid/util/Spline;Landroid/util/Spline$MonotoneCubicSpline; HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightness()[F HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessDefault()F +HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessLevelAndPercentage(Lcom/android/server/display/config/BrightnessThresholds;II[F[F)Landroid/util/Pair; +HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessLevelAndPercentage(Lcom/android/server/display/config/BrightnessThresholds;II[F[FZ)Landroid/util/Pair; HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampDecreaseMaxMillis()J HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampFastDecrease()F HSPLcom/android/server/display/DisplayDeviceConfig;->getBrightnessRampFastIncrease()F @@ -17434,14 +18110,24 @@ HSPLcom/android/server/display/DisplayDeviceConfig;->getNits()[F HSPLcom/android/server/display/DisplayDeviceConfig;->getNitsFromBacklight(F)F+]Landroid/util/Spline;Landroid/util/Spline$MonotoneCubicSpline; HSPLcom/android/server/display/DisplayDeviceConfig;->getProximitySensor()Lcom/android/server/display/DisplayDeviceConfig$SensorData; PLcom/android/server/display/DisplayDeviceConfig;->getRefreshRateLimitations()Ljava/util/List; +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenBrighteningLevels()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenBrighteningLevelsIdle()[F HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenBrighteningMinThreshold()F HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenBrighteningMinThresholdIdle()F +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenBrighteningPercentages()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenBrighteningPercentagesIdle()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenDarkeningLevels()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenDarkeningLevelsIdle()[F HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenDarkeningMinThreshold()F HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenDarkeningMinThresholdIdle()F +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenDarkeningPercentages()[F +HSPLcom/android/server/display/DisplayDeviceConfig;->getScreenDarkeningPercentagesIdle()[F HSPLcom/android/server/display/DisplayDeviceConfig;->hasQuirk(Ljava/lang/String;)Z PLcom/android/server/display/DisplayDeviceConfig;->initFromDefaultValues()V HSPLcom/android/server/display/DisplayDeviceConfig;->initFromFile(Ljava/io/File;)Z -HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientBrightnessThresholds(Lcom/android/server/display/config/Thresholds;)V +HSPLcom/android/server/display/DisplayDeviceConfig;->isAllInRange([FFF)Z +HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientBrightnessThresholds(Lcom/android/server/display/config/DisplayConfiguration;)V +HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientBrightnessThresholdsIdle(Lcom/android/server/display/config/DisplayConfiguration;)V HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientHorizonFromDdc(Lcom/android/server/display/config/DisplayConfiguration;)V HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientLightSensorFromConfigXml()V HSPLcom/android/server/display/DisplayDeviceConfig;->loadAmbientLightSensorFromDdc(Lcom/android/server/display/config/DisplayConfiguration;)V @@ -17460,10 +18146,9 @@ HSPLcom/android/server/display/DisplayDeviceConfig;->loadBrightnessThrottlingMap HSPLcom/android/server/display/DisplayDeviceConfig;->loadConfigFromDirectory(Landroid/content/Context;Ljava/io/File;J)Lcom/android/server/display/DisplayDeviceConfig; HSPLcom/android/server/display/DisplayDeviceConfig;->loadDefaultConfigurationXml(Landroid/content/Context;)Lcom/android/server/display/config/DisplayConfiguration; HSPLcom/android/server/display/DisplayDeviceConfig;->loadDensityMapping(Lcom/android/server/display/config/DisplayConfiguration;)V -HSPLcom/android/server/display/DisplayDeviceConfig;->loadDisplayBrightnessThresholds(Lcom/android/server/display/config/Thresholds;)V +HSPLcom/android/server/display/DisplayDeviceConfig;->loadDisplayBrightnessThresholds(Lcom/android/server/display/config/DisplayConfiguration;)V +HSPLcom/android/server/display/DisplayDeviceConfig;->loadDisplayBrightnessThresholdsIdle(Lcom/android/server/display/config/DisplayConfiguration;)V HSPLcom/android/server/display/DisplayDeviceConfig;->loadHighBrightnessModeData(Lcom/android/server/display/config/DisplayConfiguration;)V -HSPLcom/android/server/display/DisplayDeviceConfig;->loadIdleAmbientBrightnessThresholds(Lcom/android/server/display/config/Thresholds;)V -HSPLcom/android/server/display/DisplayDeviceConfig;->loadIdleDisplayBrightnessThresholds(Lcom/android/server/display/config/Thresholds;)V HSPLcom/android/server/display/DisplayDeviceConfig;->loadProxSensorFromDdc(Lcom/android/server/display/config/DisplayConfiguration;)V HSPLcom/android/server/display/DisplayDeviceConfig;->loadQuirks(Lcom/android/server/display/config/DisplayConfiguration;)V HSPLcom/android/server/display/DisplayDeviceConfig;->loadSdrHdrRatioMap(Lcom/android/server/display/config/HighBrightnessMode;)Landroid/util/Spline; @@ -17548,6 +18233,7 @@ PLcom/android/server/display/DisplayManagerService$BinderService;->requestColorM PLcom/android/server/display/DisplayManagerService$BinderService;->setBrightness(IF)V PLcom/android/server/display/DisplayManagerService$BinderService;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V PLcom/android/server/display/DisplayManagerService$BinderService;->setTemporaryBrightness(IF)V +PLcom/android/server/display/DisplayManagerService$BinderService;->setUserPreferredDisplayMode(ILandroid/view/Display$Mode;)V PLcom/android/server/display/DisplayManagerService$BinderService;->setVirtualDisplayState(Landroid/hardware/display/IVirtualDisplayCallback;Z)V PLcom/android/server/display/DisplayManagerService$BinderService;->setVirtualDisplaySurface(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/view/Surface;)V HSPLcom/android/server/display/DisplayManagerService$BrightnessPair;-><init>(Lcom/android/server/display/DisplayManagerService;FF)V @@ -17593,7 +18279,7 @@ HSPLcom/android/server/display/DisplayManagerService$LocalService;->performTrave PLcom/android/server/display/DisplayManagerService$LocalService;->persistBrightnessTrackerState()V HSPLcom/android/server/display/DisplayManagerService$LocalService;->registerDisplayGroupListener(Landroid/hardware/display/DisplayManagerInternal$DisplayGroupListener;)V PLcom/android/server/display/DisplayManagerService$LocalService;->registerDisplayTransactionListener(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V -HSPLcom/android/server/display/DisplayManagerService$LocalService;->requestPowerState(ILandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z+]Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/LogicalDisplay;]Lcom/android/server/display/DisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/display/LogicalDisplayMapper;Lcom/android/server/display/LogicalDisplayMapper;]Lcom/android/server/display/DisplayGroup;Lcom/android/server/display/DisplayGroup;]Lcom/android/server/display/DisplayPowerController;Lcom/android/server/display/DisplayPowerController;]Lcom/android/server/display/DisplayPowerControllerInterface;Lcom/android/server/display/DisplayPowerController; +HSPLcom/android/server/display/DisplayManagerService$LocalService;->requestPowerState(ILandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z+]Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/LogicalDisplay;]Lcom/android/server/display/DisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/display/LogicalDisplayMapper;Lcom/android/server/display/LogicalDisplayMapper;]Lcom/android/server/display/DisplayPowerControllerInterface;Lcom/android/server/display/DisplayPowerController;]Lcom/android/server/display/DisplayGroup;Lcom/android/server/display/DisplayGroup;]Lcom/android/server/display/DisplayPowerController;Lcom/android/server/display/DisplayPowerController; HSPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayAccessUIDs(Landroid/util/SparseArray;)V HSPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayInfoOverrideFromWindowManager(ILandroid/view/DisplayInfo;)V HSPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayProperties(IZFIFFZZ)V @@ -17622,6 +18308,7 @@ HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayPower HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayPowerControllers(Lcom/android/server/display/DisplayManagerService;)Landroid/util/SparseArray; HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmDisplayStates(Lcom/android/server/display/DisplayManagerService;)Landroid/util/SparseIntArray; HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmHandler(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler; +HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmInputManagerInternal(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/input/InputManagerInternal; PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmIsDocked(Lcom/android/server/display/DisplayManagerService;)Z HSPLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmLogicalDisplayMapper(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/LogicalDisplayMapper; PLcom/android/server/display/DisplayManagerService;->-$$Nest$fgetmPersistentDataStore(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/PersistentDataStore; @@ -17681,7 +18368,7 @@ HSPLcom/android/server/display/DisplayManagerService;->configureDisplayLocked(La HSPLcom/android/server/display/DisplayManagerService;->configurePreferredDisplayModeLocked(Lcom/android/server/display/LogicalDisplay;)V PLcom/android/server/display/DisplayManagerService;->createVirtualDisplayInternal(Landroid/hardware/display/VirtualDisplayConfig;Landroid/hardware/display/IVirtualDisplayCallback;Landroid/media/projection/IMediaProjection;Landroid/companion/virtual/IVirtualDevice;Landroid/window/DisplayWindowPolicyController;Ljava/lang/String;)I PLcom/android/server/display/DisplayManagerService;->createVirtualDisplayLocked(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/media/projection/IMediaProjection;ILjava/lang/String;Landroid/view/Surface;ILandroid/hardware/display/VirtualDisplayConfig;)I -HSPLcom/android/server/display/DisplayManagerService;->deliverDisplayEvent(ILandroid/util/ArraySet;I)V+]Lcom/android/server/display/DisplayManagerService$CallbackRecord;Lcom/android/server/display/DisplayManagerService$CallbackRecord;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/display/DisplayManagerService;->deliverDisplayEvent(ILandroid/util/ArraySet;I)V+]Lcom/android/server/display/DisplayManagerService$CallbackRecord;Lcom/android/server/display/DisplayManagerService$CallbackRecord;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLcom/android/server/display/DisplayManagerService;->deliverDisplayGroupEvent(II)V PLcom/android/server/display/DisplayManagerService;->dumpInternal(Ljava/io/PrintWriter;)V HSPLcom/android/server/display/DisplayManagerService;->getBrightnessConfigForDisplayWithPdsFallbackLocked(Ljava/lang/String;I)Landroid/hardware/display/BrightnessConfiguration; @@ -17746,11 +18433,14 @@ HSPLcom/android/server/display/DisplayManagerService;->setDisplayAccessUIDsInter HSPLcom/android/server/display/DisplayManagerService;->setDisplayInfoOverrideFromWindowManagerInternal(ILandroid/view/DisplayInfo;)V HSPLcom/android/server/display/DisplayManagerService;->setDisplayPropertiesInternal(IZFIFFZZ)V+]Lcom/android/server/display/DisplayModeDirector;Lcom/android/server/display/DisplayModeDirector;]Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/LogicalDisplay;]Lcom/android/server/display/DisplayModeDirector$AppRequestObserver;Lcom/android/server/display/DisplayModeDirector$AppRequestObserver;]Lcom/android/server/display/LogicalDisplayMapper;Lcom/android/server/display/LogicalDisplayMapper;]Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayManagerService; HPLcom/android/server/display/DisplayManagerService;->setDockedAndIdleEnabled(ZI)V +PLcom/android/server/display/DisplayManagerService;->setUserPreferredDisplayModeInternal(ILandroid/view/Display$Mode;)V +PLcom/android/server/display/DisplayManagerService;->setUserPreferredModeForDisplayLocked(ILandroid/view/Display$Mode;)V PLcom/android/server/display/DisplayManagerService;->setVirtualDisplayStateInternal(Landroid/os/IBinder;Z)V PLcom/android/server/display/DisplayManagerService;->setVirtualDisplaySurfaceInternal(Landroid/os/IBinder;Landroid/view/Surface;)V HSPLcom/android/server/display/DisplayManagerService;->setupSchedulerPolicies()V HSPLcom/android/server/display/DisplayManagerService;->shouldRegisterNonEssentialDisplayAdaptersLocked()Z PLcom/android/server/display/DisplayManagerService;->stopWifiDisplayScanLocked(Lcom/android/server/display/DisplayManagerService$CallbackRecord;)V +PLcom/android/server/display/DisplayManagerService;->storeModeInPersistentDataStoreLocked(IIIF)V HSPLcom/android/server/display/DisplayManagerService;->systemReady(Z)V PLcom/android/server/display/DisplayManagerService;->systemScreenshotInternal(I)Landroid/window/ScreenCapture$ScreenshotHardwareBuffer; PLcom/android/server/display/DisplayManagerService;->unregisterDisplayTransactionListenerInternal(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V @@ -18237,15 +18927,13 @@ PLcom/android/server/display/HighBrightnessModeController;->stop()V HSPLcom/android/server/display/HighBrightnessModeController;->unregisterHdrListener()V HSPLcom/android/server/display/HighBrightnessModeController;->updateHbmMode()V HSPLcom/android/server/display/HighBrightnessModeController;->updateHbmStats(I)V -HSPLcom/android/server/display/HysteresisLevels;-><init>([I[I[FFF)V -HSPLcom/android/server/display/HysteresisLevels;-><init>([I[I[IFF)V -HSPLcom/android/server/display/HysteresisLevels;->constraintInRangeIfNeeded([F)[F +HSPLcom/android/server/display/HysteresisLevels;-><init>([F[F[F[FFF)V +HSPLcom/android/server/display/HysteresisLevels;-><init>([F[F[F[FFFZ)V PLcom/android/server/display/HysteresisLevels;->dump(Ljava/io/PrintWriter;)V HPLcom/android/server/display/HysteresisLevels;->getBrighteningThreshold(F)F HPLcom/android/server/display/HysteresisLevels;->getDarkeningThreshold(F)F -HPLcom/android/server/display/HysteresisLevels;->getReferenceLevel(F[F)F -HSPLcom/android/server/display/HysteresisLevels;->isAllInRange([FFF)Z -HSPLcom/android/server/display/HysteresisLevels;->setArrayFormat([IF)[F +PLcom/android/server/display/HysteresisLevels;->getReferenceLevel(F[F[F)F +HSPLcom/android/server/display/HysteresisLevels;->setArrayFormat([FF)[F HSPLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;-><init>(Landroid/os/IBinder;ZLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;)V HSPLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;->setBacklight(FFFF)V+]Lcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;Lcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy; HSPLcom/android/server/display/LocalDisplayAdapter$BacklightAdapter;->setForceSurfaceControl(Z)V @@ -18282,6 +18970,7 @@ HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->applyPen PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->dumpLocked(Ljava/io/PrintWriter;)V HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayModeRecord(Landroid/view/SurfaceControl$DisplayMode;Ljava/util/List;)Lcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord; HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findMatchingModeIdLocked(I)I +PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findMode(IIF)Landroid/view/Display$Mode; HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findSfDisplayModeIdLocked(II)I HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findUserPreferredModeIdLocked(Landroid/view/Display$Mode;)I HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->getDisplayDeviceConfig()Lcom/android/server/display/DisplayDeviceConfig; @@ -18295,6 +18984,7 @@ HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->loadDisp HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onActiveDisplayModeChangedLocked(I)V PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onFrameRateOverridesChanged([Landroid/view/DisplayEventReceiver$FrameRateOverride;)V HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onOverlayChangedLocked()V +PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->refreshRatesEquals(Ljava/util/List;[F)Z HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestColorModeLocked(I)V HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestDisplayStateLocked(IFF)Ljava/lang/Runnable;+]Lcom/android/server/display/DisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;]Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice; HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setAutoLowLatencyModeLocked(Z)V @@ -18316,9 +19006,11 @@ HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateSt HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;-><init>(Lcom/android/server/display/LocalDisplayAdapter;)V HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;-><init>(Lcom/android/server/display/LocalDisplayAdapter;Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener-IA;)V HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;->onFrameRateOverridesChanged(JJ[Landroid/view/DisplayEventReceiver$FrameRateOverride;)V +PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;->onHotplug(JJZ)V HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayEventListener;->onModeChanged(JJI)V HSPLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;-><init>(Landroid/os/Looper;Lcom/android/server/display/LocalDisplayAdapter$DisplayEventListener;)V PLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;->onFrameRateOverridesChanged(JJ[Landroid/view/DisplayEventReceiver$FrameRateOverride;)V +PLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;->onHotplug(JJZ)V HSPLcom/android/server/display/LocalDisplayAdapter$ProxyDisplayEventReceiver;->onModeChanged(JJI)V HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;-><init>()V HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getBootDisplayModeSupport()Z @@ -18328,12 +19020,14 @@ HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getDyna HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getPhysicalDisplayIds()[J HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getPhysicalDisplayToken(J)Landroid/os/IBinder; HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->getStaticDisplayInfo(Landroid/os/IBinder;)Landroid/view/SurfaceControl$StaticDisplayInfo; +PLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->setBootDisplayMode(Landroid/os/IBinder;I)V HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->setDesiredDisplayModeSpecs(Landroid/os/IBinder;Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;)Z HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->setDisplayBrightness(Landroid/os/IBinder;FFFF)Z HSPLcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy;->setDisplayPowerMode(Landroid/os/IBinder;I)V HSPLcom/android/server/display/LocalDisplayAdapter;->-$$Nest$fgetmDevices(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray; HSPLcom/android/server/display/LocalDisplayAdapter;->-$$Nest$fgetmIsBootDisplayModeSupported(Lcom/android/server/display/LocalDisplayAdapter;)Z HSPLcom/android/server/display/LocalDisplayAdapter;->-$$Nest$fgetmSurfaceControlProxy(Lcom/android/server/display/LocalDisplayAdapter;)Lcom/android/server/display/LocalDisplayAdapter$SurfaceControlProxy; +PLcom/android/server/display/LocalDisplayAdapter;->-$$Nest$mtryConnectDisplayLocked(Lcom/android/server/display/LocalDisplayAdapter;J)V HSPLcom/android/server/display/LocalDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;)V HSPLcom/android/server/display/LocalDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Lcom/android/server/display/LocalDisplayAdapter$Injector;)V HSPLcom/android/server/display/LocalDisplayAdapter;->getOverlayContext()Landroid/content/Context; @@ -18436,6 +19130,8 @@ HSPLcom/android/server/display/PersistentDataStore$DisplayState;->loadFromXml(La HPLcom/android/server/display/PersistentDataStore$DisplayState;->saveToXml(Landroid/util/TypedXmlSerializer;)V PLcom/android/server/display/PersistentDataStore$DisplayState;->setBrightness(F)Z PLcom/android/server/display/PersistentDataStore$DisplayState;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)Z +PLcom/android/server/display/PersistentDataStore$DisplayState;->setRefreshRate(F)Z +PLcom/android/server/display/PersistentDataStore$DisplayState;->setResolution(II)Z HSPLcom/android/server/display/PersistentDataStore$Injector;-><init>()V PLcom/android/server/display/PersistentDataStore$Injector;->finishWrite(Ljava/io/OutputStream;Z)V HSPLcom/android/server/display/PersistentDataStore$Injector;->openRead()Ljava/io/InputStream; @@ -18474,6 +19170,8 @@ HPLcom/android/server/display/PersistentDataStore;->saveToXml(Landroid/util/Type HPLcom/android/server/display/PersistentDataStore;->setBrightness(Lcom/android/server/display/DisplayDevice;F)Z PLcom/android/server/display/PersistentDataStore;->setBrightnessConfigurationForDisplayLocked(Landroid/hardware/display/BrightnessConfiguration;Lcom/android/server/display/DisplayDevice;ILjava/lang/String;)Z PLcom/android/server/display/PersistentDataStore;->setDirty()V +PLcom/android/server/display/PersistentDataStore;->setUserPreferredRefreshRate(Lcom/android/server/display/DisplayDevice;F)Z +PLcom/android/server/display/PersistentDataStore;->setUserPreferredResolution(Lcom/android/server/display/DisplayDevice;II)Z HSPLcom/android/server/display/RampAnimator$DualRampAnimator$1;-><init>(Lcom/android/server/display/RampAnimator$DualRampAnimator;)V HPLcom/android/server/display/RampAnimator$DualRampAnimator$1;->run()V+]Lcom/android/server/display/RampAnimator$Listener;Lcom/android/server/display/DisplayPowerController$4;]Lcom/android/server/display/RampAnimator;Lcom/android/server/display/RampAnimator;]Lcom/android/server/display/RampAnimator$DualRampAnimator;Lcom/android/server/display/RampAnimator$DualRampAnimator;]Landroid/view/Choreographer;Landroid/view/Choreographer; HPLcom/android/server/display/RampAnimator$DualRampAnimator;->-$$Nest$fgetmChoreographer(Lcom/android/server/display/RampAnimator$DualRampAnimator;)Landroid/view/Choreographer; @@ -18562,7 +19260,7 @@ PLcom/android/server/display/brightness/BrightnessEvent;->setLux(F)V HSPLcom/android/server/display/brightness/BrightnessEvent;->setPhysicalDisplayId(Ljava/lang/String;)V HSPLcom/android/server/display/brightness/BrightnessEvent;->setPowerFactor(F)V PLcom/android/server/display/brightness/BrightnessEvent;->setPreThresholdBrightness(F)V -PLcom/android/server/display/brightness/BrightnessEvent;->setPreThresholdLux(F)V +HPLcom/android/server/display/brightness/BrightnessEvent;->setPreThresholdLux(F)V HSPLcom/android/server/display/brightness/BrightnessEvent;->setRbcStrength(I)V HSPLcom/android/server/display/brightness/BrightnessEvent;->setReason(Lcom/android/server/display/brightness/BrightnessReason;)V PLcom/android/server/display/brightness/BrightnessEvent;->setRecommendedBrightness(F)V @@ -18577,7 +19275,7 @@ HSPLcom/android/server/display/brightness/BrightnessReason;->equals(Ljava/lang/O PLcom/android/server/display/brightness/BrightnessReason;->getModifier()I HSPLcom/android/server/display/brightness/BrightnessReason;->getReason()I HSPLcom/android/server/display/brightness/BrightnessReason;->reasonToString(I)Ljava/lang/String; -HSPLcom/android/server/display/brightness/BrightnessReason;->set(Lcom/android/server/display/brightness/BrightnessReason;)V +HSPLcom/android/server/display/brightness/BrightnessReason;->set(Lcom/android/server/display/brightness/BrightnessReason;)V+]Lcom/android/server/display/brightness/BrightnessReason;Lcom/android/server/display/brightness/BrightnessReason; HSPLcom/android/server/display/brightness/BrightnessReason;->setModifier(I)V HSPLcom/android/server/display/brightness/BrightnessReason;->setReason(I)V HSPLcom/android/server/display/brightness/BrightnessReason;->toString()Ljava/lang/String; @@ -18603,7 +19301,7 @@ HSPLcom/android/server/display/color/AppSaturationController;->getOrCreateUserId HSPLcom/android/server/display/color/AppSaturationController;->getSaturationControllerLocked(Ljava/lang/String;I)Lcom/android/server/display/color/AppSaturationController$SaturationController; PLcom/android/server/display/color/AppSaturationController;->setSaturationLevel(Ljava/lang/String;Ljava/lang/String;II)Z PLcom/android/server/display/color/ColorDisplayService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/display/color/DisplayTransformManager;Lcom/android/server/display/color/TintController;)V -PLcom/android/server/display/color/ColorDisplayService$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V +HPLcom/android/server/display/color/ColorDisplayService$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V PLcom/android/server/display/color/ColorDisplayService$2;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Handler;)V PLcom/android/server/display/color/ColorDisplayService$2;->onChange(ZLandroid/net/Uri;)V PLcom/android/server/display/color/ColorDisplayService$3;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/TintController;[FLcom/android/server/display/color/DisplayTransformManager;)V @@ -18623,6 +19321,8 @@ PLcom/android/server/display/color/ColorDisplayService$BinderService;->isDeviceC HPLcom/android/server/display/color/ColorDisplayService$BinderService;->isNightDisplayActivated()Z HPLcom/android/server/display/color/ColorDisplayService$BinderService;->isReduceBrightColorsActivated()Z PLcom/android/server/display/color/ColorDisplayService$BinderService;->setAppSaturationLevel(Ljava/lang/String;I)Z +PLcom/android/server/display/color/ColorDisplayService$BinderService;->setColorMode(I)V +PLcom/android/server/display/color/ColorDisplayService$BinderService;->setNightDisplayActivated(Z)Z PLcom/android/server/display/color/ColorDisplayService$BinderService;->setSaturationLevel(I)Z HSPLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V HSPLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->attachColorTransformController(Ljava/lang/String;ILjava/lang/ref/WeakReference;)Z @@ -18693,6 +19393,8 @@ PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$mgetNightDispla PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$mgetNightDisplayLastActivatedTimeSetting(Lcom/android/server/display/color/ColorDisplayService;)Ljava/time/LocalDateTime; PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$misDeviceColorManagedInternal(Lcom/android/server/display/color/ColorDisplayService;)Z HSPLcom/android/server/display/color/ColorDisplayService;->-$$Nest$misDisplayWhiteBalanceSettingEnabled(Lcom/android/server/display/color/ColorDisplayService;)Z +PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$monDisplayColorModeChanged(Lcom/android/server/display/color/ColorDisplayService;I)V +PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$msetColorModeInternal(Lcom/android/server/display/color/ColorDisplayService;I)V PLcom/android/server/display/color/ColorDisplayService;->-$$Nest$msetUp(Lcom/android/server/display/color/ColorDisplayService;)V HSPLcom/android/server/display/color/ColorDisplayService;-><clinit>()V HSPLcom/android/server/display/color/ColorDisplayService;-><init>(Landroid/content/Context;)V @@ -18730,6 +19432,7 @@ HSPLcom/android/server/display/color/ColorDisplayService;->onUserStarting(Lcom/a PLcom/android/server/display/color/ColorDisplayService;->onUserStopping(Lcom/android/server/SystemService$TargetUser;)V PLcom/android/server/display/color/ColorDisplayService;->resetReduceBrightColors()Z PLcom/android/server/display/color/ColorDisplayService;->setAppSaturationLevelInternal(Ljava/lang/String;Ljava/lang/String;I)Z +PLcom/android/server/display/color/ColorDisplayService;->setColorModeInternal(I)V PLcom/android/server/display/color/ColorDisplayService;->setSaturationLevelInternal(I)V PLcom/android/server/display/color/ColorDisplayService;->setUp()V PLcom/android/server/display/color/ColorDisplayService;->setUpDisplayCompositionColorSpaces(Landroid/content/res/Resources;)V @@ -18777,6 +19480,7 @@ PLcom/android/server/display/color/TintController;->matrixToString([FI)Ljava/lan PLcom/android/server/display/color/TintController;->setActivated(Ljava/lang/Boolean;)V PLcom/android/server/display/color/TintController;->setAnimator(Lcom/android/server/display/color/ColorDisplayService$TintValueAnimator;)V HSPLcom/android/server/display/config/BrightnessThresholds;-><init>()V +HSPLcom/android/server/display/config/BrightnessThresholds;->getBrightnessThresholdPoints()Lcom/android/server/display/config/ThresholdPoints; HSPLcom/android/server/display/config/BrightnessThresholds;->getMinimum()Ljava/math/BigDecimal; HSPLcom/android/server/display/config/BrightnessThresholds;->read(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/display/config/BrightnessThresholds; HSPLcom/android/server/display/config/BrightnessThresholds;->setMinimum(Ljava/math/BigDecimal;)V @@ -19005,23 +19709,13 @@ HPLcom/android/server/dreams/DreamController;->attach(Landroid/service/dreams/ID PLcom/android/server/dreams/DreamController;->dump(Ljava/io/PrintWriter;)V PLcom/android/server/dreams/DreamController;->lambda$new$0()V PLcom/android/server/dreams/DreamController;->lambda$stopDream$1(Lcom/android/server/dreams/DreamController$DreamRecord;)V -HPLcom/android/server/dreams/DreamController;->startDream(Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;Landroid/content/ComponentName;)V HPLcom/android/server/dreams/DreamController;->stopDream(ZLjava/lang/String;)V -PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V -HPLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda0;->run()V -PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/dreams/DreamManagerService;)V PLcom/android/server/dreams/DreamManagerService$$ExternalSyntheticLambda1;->run()V HSPLcom/android/server/dreams/DreamManagerService$1;-><init>(Lcom/android/server/dreams/DreamManagerService;)V HSPLcom/android/server/dreams/DreamManagerService$2;-><init>(Lcom/android/server/dreams/DreamManagerService;)V HSPLcom/android/server/dreams/DreamManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V PLcom/android/server/dreams/DreamManagerService$3;-><init>(Lcom/android/server/dreams/DreamManagerService;)V -PLcom/android/server/dreams/DreamManagerService$3;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V -HPLcom/android/server/dreams/DreamManagerService$4;-><init>(Lcom/android/server/dreams/DreamManagerService;ZLjava/lang/String;)V -PLcom/android/server/dreams/DreamManagerService$4;->run()V HSPLcom/android/server/dreams/DreamManagerService$5;-><init>(Lcom/android/server/dreams/DreamManagerService;)V -PLcom/android/server/dreams/DreamManagerService$5;->onDreamStopped(Landroid/os/Binder;)V -HSPLcom/android/server/dreams/DreamManagerService$6;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Handler;)V -HSPLcom/android/server/dreams/DreamManagerService$7;-><init>(Lcom/android/server/dreams/DreamManagerService;)V HSPLcom/android/server/dreams/DreamManagerService$BinderService;-><init>(Lcom/android/server/dreams/DreamManagerService;)V HSPLcom/android/server/dreams/DreamManagerService$BinderService;-><init>(Lcom/android/server/dreams/DreamManagerService;Lcom/android/server/dreams/DreamManagerService$BinderService-IA;)V PLcom/android/server/dreams/DreamManagerService$BinderService;->awaken()V @@ -19034,17 +19728,10 @@ PLcom/android/server/dreams/DreamManagerService$BinderService;->getDreamComponen HPLcom/android/server/dreams/DreamManagerService$BinderService;->isDreaming()Z PLcom/android/server/dreams/DreamManagerService$BinderService;->isDreamingOrInPreview()Z HPLcom/android/server/dreams/DreamManagerService$BinderService;->startDozing(Landroid/os/IBinder;II)V -HSPLcom/android/server/dreams/DreamManagerService$DreamHandler;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Looper;)V HSPLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;)V HSPLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;Lcom/android/server/dreams/DreamManagerService$LocalService-IA;)V HSPLcom/android/server/dreams/DreamManagerService$LocalService;->isDreaming()Z -PLcom/android/server/dreams/DreamManagerService$LocalService;->startDream(Z)V -PLcom/android/server/dreams/DreamManagerService$LocalService;->stopDream(Z)V -PLcom/android/server/dreams/DreamManagerService;->$r8$lambda$7fsbHggt18AiNDHG2sShSOLJWe8(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V -PLcom/android/server/dreams/DreamManagerService;->$r8$lambda$8PbxzJ_iQSeiwzaYzcIxSLlQRfY(Lcom/android/server/dreams/DreamManagerService;)V PLcom/android/server/dreams/DreamManagerService;->-$$Nest$fgetmContext(Lcom/android/server/dreams/DreamManagerService;)Landroid/content/Context; -PLcom/android/server/dreams/DreamManagerService;->-$$Nest$fgetmController(Lcom/android/server/dreams/DreamManagerService;)Lcom/android/server/dreams/DreamController; -PLcom/android/server/dreams/DreamManagerService;->-$$Nest$fgetmCurrentDreamToken(Lcom/android/server/dreams/DreamManagerService;)Landroid/os/Binder; HSPLcom/android/server/dreams/DreamManagerService;->-$$Nest$fgetmLock(Lcom/android/server/dreams/DreamManagerService;)Ljava/lang/Object; PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mcheckPermission(Lcom/android/server/dreams/DreamManagerService;Ljava/lang/String;)V PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mcleanupDreamLocked(Lcom/android/server/dreams/DreamManagerService;)V @@ -19057,7 +19744,6 @@ HSPLcom/android/server/dreams/DreamManagerService;->-$$Nest$misDreamingInternal( PLcom/android/server/dreams/DreamManagerService;->-$$Nest$misDreamingOrInPreviewInternal(Lcom/android/server/dreams/DreamManagerService;)Z PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mrequestAwakenInternal(Lcom/android/server/dreams/DreamManagerService;Ljava/lang/String;)V PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mstartDozingInternal(Lcom/android/server/dreams/DreamManagerService;Landroid/os/IBinder;II)V -PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mstartDreamInternal(Lcom/android/server/dreams/DreamManagerService;Z)V PLcom/android/server/dreams/DreamManagerService;->-$$Nest$mstopDreamInternal(Lcom/android/server/dreams/DreamManagerService;ZLjava/lang/String;)V HSPLcom/android/server/dreams/DreamManagerService;->-$$Nest$mstopDreamLocked(Lcom/android/server/dreams/DreamManagerService;ZLjava/lang/String;)V HSPLcom/android/server/dreams/DreamManagerService;->-$$Nest$mwritePulseGestureEnabled(Lcom/android/server/dreams/DreamManagerService;)V @@ -19077,14 +19763,10 @@ PLcom/android/server/dreams/DreamManagerService;->getDreamComponentsForUser(I)[L HSPLcom/android/server/dreams/DreamManagerService;->getServiceInfo(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo; HSPLcom/android/server/dreams/DreamManagerService;->isDreamingInternal()Z PLcom/android/server/dreams/DreamManagerService;->isDreamingOrInPreviewInternal()Z -PLcom/android/server/dreams/DreamManagerService;->lambda$cleanupDreamLocked$1()V -PLcom/android/server/dreams/DreamManagerService;->lambda$startDreamLocked$0(Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V HSPLcom/android/server/dreams/DreamManagerService;->onBootPhase(I)V HSPLcom/android/server/dreams/DreamManagerService;->onStart()V PLcom/android/server/dreams/DreamManagerService;->requestAwakenInternal(Ljava/lang/String;)V HPLcom/android/server/dreams/DreamManagerService;->startDozingInternal(Landroid/os/IBinder;II)V -PLcom/android/server/dreams/DreamManagerService;->startDreamInternal(Z)V -HPLcom/android/server/dreams/DreamManagerService;->startDreamLocked(Landroid/content/ComponentName;ZZI)V PLcom/android/server/dreams/DreamManagerService;->stopDreamInternal(ZLjava/lang/String;)V HSPLcom/android/server/dreams/DreamManagerService;->stopDreamLocked(ZLjava/lang/String;)V HSPLcom/android/server/dreams/DreamManagerService;->validateDream(Landroid/content/ComponentName;)Z @@ -19257,8 +19939,8 @@ HSPLcom/android/server/health/HealthServiceWrapperAidl;-><clinit>()V HSPLcom/android/server/health/HealthServiceWrapperAidl;-><init>(Lcom/android/server/health/HealthRegCallbackAidl;Lcom/android/server/health/HealthServiceWrapperAidl$ServiceManagerStub;)V HSPLcom/android/server/health/HealthServiceWrapperAidl;->getHandlerThread()Landroid/os/HandlerThread; HPLcom/android/server/health/HealthServiceWrapperAidl;->getHealthInfo()Landroid/hardware/health/HealthInfo; -HPLcom/android/server/health/HealthServiceWrapperAidl;->getProperty(ILandroid/os/BatteryProperty;)I -HPLcom/android/server/health/HealthServiceWrapperAidl;->getPropertyInternal(ILandroid/os/BatteryProperty;)I +HPLcom/android/server/health/HealthServiceWrapperAidl;->getProperty(ILandroid/os/BatteryProperty;)I+]Lcom/android/server/health/HealthServiceWrapperAidl;Lcom/android/server/health/HealthServiceWrapperAidl; +HPLcom/android/server/health/HealthServiceWrapperAidl;->getPropertyInternal(ILandroid/os/BatteryProperty;)I+]Landroid/hardware/health/IHealth;Landroid/hardware/health/IHealth$Stub$Proxy;]Landroid/os/BatteryProperty;Landroid/os/BatteryProperty;]Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference; HSPLcom/android/server/health/HealthServiceWrapperAidl;->lambda$scheduleUpdate$0()V HSPLcom/android/server/health/HealthServiceWrapperAidl;->scheduleUpdate()V HSPLcom/android/server/health/HealthServiceWrapperAidl;->traceBegin(Ljava/lang/String;)V @@ -19429,7 +20111,7 @@ HSPLcom/android/server/infra/AbstractPerUserSystemService;->getComponentNameLock HSPLcom/android/server/infra/AbstractPerUserSystemService;->getContext()Landroid/content/Context; PLcom/android/server/infra/AbstractPerUserSystemService;->getMaster()Lcom/android/server/infra/AbstractMasterSystemService; HSPLcom/android/server/infra/AbstractPerUserSystemService;->getServiceComponent(Ljava/lang/String;)Landroid/content/ComponentName; -HPLcom/android/server/infra/AbstractPerUserSystemService;->getServiceComponentName()Landroid/content/ComponentName;+]Landroid/content/pm/ServiceInfo;Landroid/content/pm/ServiceInfo; +HPLcom/android/server/infra/AbstractPerUserSystemService;->getServiceComponentName()Landroid/content/ComponentName;+]Landroid/content/pm/ServiceInfo;Landroid/content/pm/ServiceInfo;]Landroid/content/pm/ComponentInfo;Landroid/content/pm/ServiceInfo; PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceIconLocked()Landroid/graphics/drawable/Drawable; PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceInfo()Landroid/content/pm/ServiceInfo; PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceLabelLocked()Ljava/lang/CharSequence; @@ -19444,6 +20126,7 @@ HSPLcom/android/server/infra/AbstractPerUserSystemService;->isEnabledLocked()Z HSPLcom/android/server/infra/AbstractPerUserSystemService;->isSetupCompletedLocked()Z PLcom/android/server/infra/AbstractPerUserSystemService;->isTemporaryServiceSetLocked()Z PLcom/android/server/infra/AbstractPerUserSystemService;->isVerbose()Z +PLcom/android/server/infra/AbstractPerUserSystemService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo; HSPLcom/android/server/infra/AbstractPerUserSystemService;->updateIsSetupComplete(I)V HSPLcom/android/server/infra/AbstractPerUserSystemService;->updateLocked(Z)Z HSPLcom/android/server/infra/AbstractPerUserSystemService;->updateServiceInfoListLocked()[Landroid/content/ComponentName; @@ -19467,16 +20150,24 @@ PLcom/android/server/infra/ServiceNameResolver;->getDefaultServiceNameList(I)[Lj HSPLcom/android/server/infra/ServiceNameResolver;->getServiceName(I)Ljava/lang/String; HSPLcom/android/server/infra/ServiceNameResolver;->isConfiguredInMultipleMode()Z HSPLcom/android/server/infra/ServiceNameResolver;->setOnTemporaryServiceNameChangedCallback(Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;)V +PLcom/android/server/input/BatteryController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/input/BatteryController;)V HSPLcom/android/server/input/BatteryController$1;-><init>()V +HSPLcom/android/server/input/BatteryController$2;-><init>(Lcom/android/server/input/BatteryController;)V +HPLcom/android/server/input/BatteryController$2;->onInputDeviceChanged(I)V +PLcom/android/server/input/BatteryController;->-$$Nest$fgetmDeviceMonitors(Lcom/android/server/input/BatteryController;)Landroid/util/ArrayMap; +PLcom/android/server/input/BatteryController;->-$$Nest$fgetmLock(Lcom/android/server/input/BatteryController;)Ljava/lang/Object; HSPLcom/android/server/input/BatteryController;-><clinit>()V HSPLcom/android/server/input/BatteryController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Landroid/os/Looper;)V HSPLcom/android/server/input/BatteryController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Landroid/os/Looper;Lcom/android/server/input/BatteryController$UEventManager;)V PLcom/android/server/input/BatteryController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/input/BatteryController;->monitor()V +PLcom/android/server/input/BatteryController;->onInteractiveChanged(Z)V HSPLcom/android/server/input/BatteryController;->systemRunning()V +HPLcom/android/server/input/BatteryController;->updatePollingLocked(Z)V HPLcom/android/server/input/GestureMonitorSpyWindow;-><init>(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/view/SurfaceControl;Landroid/view/InputChannel;)V PLcom/android/server/input/GestureMonitorSpyWindow;->dump()Ljava/lang/String; PLcom/android/server/input/GestureMonitorSpyWindow;->remove()V +HSPLcom/android/server/input/InputManagerInternal;-><init>()V PLcom/android/server/input/InputManagerService$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/input/InputManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V PLcom/android/server/input/InputManagerService$$ExternalSyntheticLambda1;-><init>(Z)V @@ -19509,6 +20200,7 @@ HSPLcom/android/server/input/InputManagerService$Injector;-><init>(Landroid/cont HSPLcom/android/server/input/InputManagerService$Injector;->getContext()Landroid/content/Context; HSPLcom/android/server/input/InputManagerService$Injector;->getLooper()Landroid/os/Looper; HSPLcom/android/server/input/InputManagerService$Injector;->getNativeService(Lcom/android/server/input/InputManagerService;)Lcom/android/server/input/NativeInputManagerService; +HSPLcom/android/server/input/InputManagerService$Injector;->registerLocalService(Lcom/android/server/input/InputManagerInternal;)V HSPLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;-><init>(Lcom/android/server/input/InputManagerService;ILandroid/hardware/input/IInputDevicesChangedListener;)V HPLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->binderDied()V HSPLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->notifyInputDevicesChanged([I)V @@ -19522,7 +20214,7 @@ HSPLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/andr HSPLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/android/server/input/InputManagerService;Lcom/android/server/input/InputManagerService$LocalService-IA;)V PLcom/android/server/input/InputManagerService$LocalService;->setDisplayEligibilityForPointerCapture(IZ)V HSPLcom/android/server/input/InputManagerService$LocalService;->setDisplayViewports(Ljava/util/List;)V -PLcom/android/server/input/InputManagerService$LocalService;->setInteractive(Z)V +HPLcom/android/server/input/InputManagerService$LocalService;->setInteractive(Z)V PLcom/android/server/input/InputManagerService$LocalService;->setPointerAcceleration(FI)V PLcom/android/server/input/InputManagerService$LocalService;->setPointerIconVisible(ZI)V HSPLcom/android/server/input/InputManagerService$LocalService;->setPulseGestureEnabled(Z)V @@ -19532,6 +20224,7 @@ PLcom/android/server/input/InputManagerService;->$r8$lambda$QkG30iw0I7duv4crl8Wn PLcom/android/server/input/InputManagerService;->$r8$lambda$ZQrlgG0pA6GPzUR-zOrYur-LkMU(Lcom/android/server/input/InputManagerService;Landroid/view/InputChannel;)V HSPLcom/android/server/input/InputManagerService;->$r8$lambda$w4gnA1fY10c6RkqhVntn-9_mOY8(Ljava/util/HashSet;Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V PLcom/android/server/input/InputManagerService;->$r8$lambda$y9OoOzcheSEYNhs-qAMovZqtmsI(Landroid/view/InputDevice;Ljava/util/Locale;Ljava/util/List;Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V +PLcom/android/server/input/InputManagerService;->-$$Nest$fgetmBatteryController(Lcom/android/server/input/InputManagerService;)Lcom/android/server/input/BatteryController; HSPLcom/android/server/input/InputManagerService;->-$$Nest$fgetmDoubleTouchGestureEnableFile(Lcom/android/server/input/InputManagerService;)Ljava/io/File; PLcom/android/server/input/InputManagerService;->-$$Nest$fgetmNative(Lcom/android/server/input/InputManagerService;)Lcom/android/server/input/NativeInputManagerService; HSPLcom/android/server/input/InputManagerService;->-$$Nest$mdeliverInputDevicesChanged(Lcom/android/server/input/InputManagerService;[Landroid/view/InputDevice;)V @@ -19559,7 +20252,7 @@ PLcom/android/server/input/InputManagerService;->checkCallingPermission(Ljava/la PLcom/android/server/input/InputManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;Z)Z PLcom/android/server/input/InputManagerService;->containsInputDeviceWithDescriptor([Landroid/view/InputDevice;Ljava/lang/String;)Z HSPLcom/android/server/input/InputManagerService;->createInputChannel(Ljava/lang/String;)Landroid/view/InputChannel; -PLcom/android/server/input/InputManagerService;->createSpyWindowGestureMonitor(Landroid/os/IBinder;Ljava/lang/String;III)Landroid/view/InputChannel; +HPLcom/android/server/input/InputManagerService;->createSpyWindowGestureMonitor(Landroid/os/IBinder;Ljava/lang/String;III)Landroid/view/InputChannel; HSPLcom/android/server/input/InputManagerService;->deliverInputDevicesChanged([Landroid/view/InputDevice;)V PLcom/android/server/input/InputManagerService;->dispatchUnhandledKey(Landroid/os/IBinder;Landroid/view/KeyEvent;I)Landroid/view/KeyEvent; PLcom/android/server/input/InputManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V @@ -19586,6 +20279,7 @@ HSPLcom/android/server/input/InputManagerService;->getKeyRepeatDelay()I HSPLcom/android/server/input/InputManagerService;->getKeyRepeatTimeout()I HSPLcom/android/server/input/InputManagerService;->getKeyboardLayoutOverlay(Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String; HSPLcom/android/server/input/InputManagerService;->getLayoutDescriptor(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String; +PLcom/android/server/input/InputManagerService;->getLights(I)Ljava/util/List; HSPLcom/android/server/input/InputManagerService;->getLocalesFromLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList; HSPLcom/android/server/input/InputManagerService;->getLongPressTimeout()I PLcom/android/server/input/InputManagerService;->getParentSurfaceForPointers(I)J @@ -19629,6 +20323,7 @@ PLcom/android/server/input/InputManagerService;->onPointerDisplayIdChanged(IFF)V HPLcom/android/server/input/InputManagerService;->onPointerDownOutsideFocus(Landroid/os/IBinder;)V+]Lcom/android/server/input/InputManagerService$WindowManagerCallbacks;Lcom/android/server/wm/InputManagerCallback; HSPLcom/android/server/input/InputManagerService;->registerAccessibilityLargePointerSettingObserver()V HSPLcom/android/server/input/InputManagerService;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V +HSPLcom/android/server/input/InputManagerService;->registerLidSwitchCallbackInternal(Lcom/android/server/input/InputManagerInternal$LidSwitchCallback;)V HSPLcom/android/server/input/InputManagerService;->registerLongPressTimeoutObserver()V HSPLcom/android/server/input/InputManagerService;->registerMaximumObscuringOpacityForTouchSettingObserver()V HSPLcom/android/server/input/InputManagerService;->registerPointerSpeedSettingObserver()V @@ -19665,16 +20360,28 @@ HSPLcom/android/server/input/InputManagerService;->updatePointerSpeedFromSetting HSPLcom/android/server/input/InputManagerService;->updateShowTouchesFromSettings()V HSPLcom/android/server/input/InputManagerService;->visitAllKeyboardLayouts(Lcom/android/server/input/InputManagerService$KeyboardLayoutVisitor;)V HSPLcom/android/server/input/InputManagerService;->visitKeyboardLayoutsInPackage(Landroid/content/pm/PackageManager;Landroid/content/pm/ActivityInfo;Ljava/lang/String;ILcom/android/server/input/InputManagerService$KeyboardLayoutVisitor;)V +HSPLcom/android/server/input/KeyboardBacklightController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/input/KeyboardBacklightController;)V +HSPLcom/android/server/input/KeyboardBacklightController;-><clinit>()V +HSPLcom/android/server/input/KeyboardBacklightController;-><init>(Landroid/content/Context;Lcom/android/server/input/NativeInputManagerService;Lcom/android/server/input/PersistentDataStore;Landroid/os/Looper;)V +PLcom/android/server/input/KeyboardBacklightController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/input/KeyboardBacklightController;->getInputDevice(I)Landroid/view/InputDevice; +PLcom/android/server/input/KeyboardBacklightController;->getKeyboardBacklight(Landroid/view/InputDevice;)Landroid/hardware/lights/Light; +PLcom/android/server/input/KeyboardBacklightController;->onInputDeviceAdded(I)V +PLcom/android/server/input/KeyboardBacklightController;->onInputDeviceChanged(I)V +PLcom/android/server/input/KeyboardBacklightController;->systemRunning()V HSPLcom/android/server/input/NativeInputManagerService$NativeImpl;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/MessageQueue;)V +HSPLcom/android/server/input/PersistentDataStore$Injector;-><init>()V +HSPLcom/android/server/input/PersistentDataStore$Injector;->openRead()Ljava/io/InputStream; PLcom/android/server/input/PersistentDataStore$InputDeviceState;-><clinit>()V PLcom/android/server/input/PersistentDataStore$InputDeviceState;-><init>()V PLcom/android/server/input/PersistentDataStore$InputDeviceState;-><init>(Lcom/android/server/input/PersistentDataStore$InputDeviceState-IA;)V PLcom/android/server/input/PersistentDataStore$InputDeviceState;->loadFromXml(Landroid/util/TypedXmlPullParser;)V PLcom/android/server/input/PersistentDataStore$InputDeviceState;->removeUninstalledKeyboardLayouts(Ljava/util/Set;)Z HSPLcom/android/server/input/PersistentDataStore;-><init>()V +HSPLcom/android/server/input/PersistentDataStore;-><init>(Lcom/android/server/input/PersistentDataStore$Injector;)V HSPLcom/android/server/input/PersistentDataStore;->clearState()V HSPLcom/android/server/input/PersistentDataStore;->getCurrentKeyboardLayout(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/server/input/PersistentDataStore;->getInputDeviceState(Ljava/lang/String;Z)Lcom/android/server/input/PersistentDataStore$InputDeviceState; +HSPLcom/android/server/input/PersistentDataStore;->getInputDeviceState(Ljava/lang/String;)Lcom/android/server/input/PersistentDataStore$InputDeviceState; HSPLcom/android/server/input/PersistentDataStore;->getTouchCalibration(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration; HSPLcom/android/server/input/PersistentDataStore;->load()V PLcom/android/server/input/PersistentDataStore;->loadFromXml(Landroid/util/TypedXmlPullParser;)V @@ -19707,10 +20414,16 @@ HSPLcom/android/server/inputmethod/HandwritingModeController;-><init>(Landroid/o PLcom/android/server/inputmethod/HandwritingModeController;->getCurrentRequestId()Ljava/util/OptionalInt; PLcom/android/server/inputmethod/HandwritingModeController;->reset()V PLcom/android/server/inputmethod/HandwritingModeController;->reset(Z)V +PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/inputmethod/IInputMethodClientInvoker;ZZZ)V +PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda0;->run()V PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/inputmethod/IInputMethodClientInvoker;Lcom/android/internal/inputmethod/InputBindResult;)V PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda2;->run()V +PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/inputmethod/IInputMethodClientInvoker;II)V +PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda3;->run()V PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda5;->run()V PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda6;->run()V +PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/inputmethod/IInputMethodClientInvoker;Z)V +PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda7;->run()V PLcom/android/server/inputmethod/IInputMethodClientInvoker$$ExternalSyntheticLambda9;->run()V PLcom/android/server/inputmethod/IInputMethodClientInvoker;->$r8$lambda$7LdMM97-frxQlQ_GCY7rHhjC3Nc(Lcom/android/server/inputmethod/IInputMethodClientInvoker;ZZZ)V PLcom/android/server/inputmethod/IInputMethodClientInvoker;->$r8$lambda$CsCPuB6ah3enOJXtzqi-_42EelY(Lcom/android/server/inputmethod/IInputMethodClientInvoker;Z)V @@ -19748,7 +20461,7 @@ HPLcom/android/server/inputmethod/IInputMethodInvoker;->setSessionEnabled(Lcom/a PLcom/android/server/inputmethod/IInputMethodInvoker;->showSoftInput(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z HPLcom/android/server/inputmethod/IInputMethodInvoker;->startInput(Landroid/os/IBinder;Lcom/android/internal/inputmethod/IRemoteInputConnection;Landroid/view/inputmethod/EditorInfo;ZILandroid/window/ImeOnBackInvokedDispatcher;)V HPLcom/android/server/inputmethod/IInputMethodInvoker;->unbindInput()V -PLcom/android/server/inputmethod/IInputMethodInvoker;->updateEditorToolType(I)Z +PLcom/android/server/inputmethod/IInputMethodInvoker;->updateEditorToolType(I)V HSPLcom/android/server/inputmethod/ImePlatformCompatUtils;-><init>()V HPLcom/android/server/inputmethod/ImePlatformCompatUtils;->isChangeEnabledByUid(JI)Z HPLcom/android/server/inputmethod/ImePlatformCompatUtils;->shouldClearShowForcedFlag(I)Z @@ -19784,7 +20497,6 @@ PLcom/android/server/inputmethod/InputMethodBindingController;->addFreshWindowTo HPLcom/android/server/inputmethod/InputMethodBindingController;->advanceSequenceNumber()V PLcom/android/server/inputmethod/InputMethodBindingController;->bindCurrentInputMethodService(Landroid/content/ServiceConnection;I)Z PLcom/android/server/inputmethod/InputMethodBindingController;->bindCurrentInputMethodServiceMainConnection()Z -PLcom/android/server/inputmethod/InputMethodBindingController;->bindCurrentInputMethodServiceVisibleConnection()Z PLcom/android/server/inputmethod/InputMethodBindingController;->bindCurrentMethod()Lcom/android/internal/inputmethod/InputBindResult; PLcom/android/server/inputmethod/InputMethodBindingController;->clearCurMethodAndSessions()V PLcom/android/server/inputmethod/InputMethodBindingController;->createImeBindingIntent(Landroid/content/ComponentName;)Landroid/content/Intent; @@ -19816,16 +20528,9 @@ HSPLcom/android/server/inputmethod/InputMethodManagerInternal$1;->onImeParentCha HSPLcom/android/server/inputmethod/InputMethodManagerInternal;-><clinit>()V HSPLcom/android/server/inputmethod/InputMethodManagerInternal;-><init>()V HSPLcom/android/server/inputmethod/InputMethodManagerInternal;->get()Lcom/android/server/inputmethod/InputMethodManagerInternal; -HSPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda0;-><init>(Ljava/util/List;I)V -HSPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V -PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;-><init>()V HPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z -HSPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V -HSPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;I)V -HSPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda3;->run()V HSPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/WindowManagerInternal;)V -PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V -PLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda6;->runOrThrow()V +HPLcom/android/server/inputmethod/InputMethodManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V PLcom/android/server/inputmethod/InputMethodManagerService$1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/IInputMethodInvoker;Landroid/view/InputChannel;)V HPLcom/android/server/inputmethod/InputMethodManagerService$1;->sessionCreated(Lcom/android/internal/inputmethod/IInputMethodSession;)V HSPLcom/android/server/inputmethod/InputMethodManagerService$2;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/hardware/input/InputManager;)V @@ -19857,6 +20562,7 @@ PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivileged HPLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportFullscreenModeAsync(Z)V HPLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportStartInputAsync(Landroid/os/IBinder;)V PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->setImeWindowStatusAsync(II)V +PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->showMySoftInput(ILcom/android/internal/infra/AndroidFuture;)V PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->updateStatusIconAsync(Ljava/lang/String;I)V HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;-><init>(Landroid/content/Context;)V HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onBootPhase(I)V @@ -19917,14 +20623,11 @@ HPLcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;-><in PLcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;ILcom/android/server/inputmethod/IInputMethodClientInvoker;)V PLcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;->run()V HSPLcom/android/server/inputmethod/InputMethodManagerService;->$r8$lambda$AhkKGaXMb2go3kAOJFxNNwN_Wcw(Lcom/android/server/inputmethod/InputMethodManagerService;I)V -PLcom/android/server/inputmethod/InputMethodManagerService;->$r8$lambda$Bd04MdqO5r-vMVJMGEfJgvoa-iE(Lcom/android/server/inputmethod/InputMethodManagerService;)V PLcom/android/server/inputmethod/InputMethodManagerService;->$r8$lambda$vz_z57ulRhr4T1Ld16KRvnRuVVc(Lcom/android/server/inputmethod/InputMethodManagerService;Z)V -PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmAccessibilityManager(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/view/accessibility/AccessibilityManager; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmAdditionalSubtypeMap(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/util/ArrayMap; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmAutofillController(Lcom/android/server/inputmethod/InputMethodManagerService;)Lcom/android/server/inputmethod/AutofillSuggestionsController; HPLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmHandler(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/os/Handler; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmLoggedDeniedGetInputMethodWindowVisibleHeightForUid(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/util/SparseBooleanArray; -PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmLoggedDeniedIsInputMethodPickerShownForTestForUid(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/util/SparseBooleanArray; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmMenuController(Lcom/android/server/inputmethod/InputMethodManagerService;)Lcom/android/server/inputmethod/InputMethodMenuController; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fgetmUserSwitchHandlerTask(Lcom/android/server/inputmethod/InputMethodManagerService;)Lcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$fputmCurPerceptible(Lcom/android/server/inputmethod/InputMethodManagerService;Z)V @@ -19934,8 +20637,6 @@ PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mapplyImeVi PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mcreateInputContentUriToken(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mdumpAsStringNoCheck(Lcom/android/server/inputmethod/InputMethodManagerService;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mdumpDebug(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/util/proto/ProtoOutputStream;J)V -PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mgetEnabledInputMethodListLocked(Lcom/android/server/inputmethod/InputMethodManagerService;I)Ljava/util/List; -PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mgetInputMethodListLocked(Lcom/android/server/inputmethod/InputMethodManagerService;II)Ljava/util/List; PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mhandleShellCommandTraceInputMethod(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/ShellCommand;)I PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mhideMySoftInput(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mnotifyUserAction(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V @@ -19944,6 +20645,7 @@ PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mremoveStyl PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mreportFullscreenMode(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V HPLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mreportStartInput(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$msetImeWindowStatus(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V +PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mshowMySoftInput(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;I)V PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mswitchUserOnHandlerLocked(Lcom/android/server/inputmethod/InputMethodManagerService;ILcom/android/server/inputmethod/IInputMethodClientInvoker;)V PLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$mupdateStatusIcon(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V HSPLcom/android/server/inputmethod/InputMethodManagerService;->-$$Nest$smisStylusDevice(Landroid/view/InputDevice;)Z @@ -19980,12 +20682,9 @@ PLcom/android/server/inputmethod/InputMethodManagerService;->getCurrentInputMeth HPLcom/android/server/inputmethod/InputMethodManagerService;->getCurrentInputMethodSubtypeLocked()Landroid/view/inputmethod/InputMethodSubtype; PLcom/android/server/inputmethod/InputMethodManagerService;->getDisplayIdToShowImeLocked()I HPLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodList(I)Ljava/util/List; -HPLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodListLocked(I)Ljava/util/List; PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodSubtypeList(Ljava/lang/String;ZI)Ljava/util/List; -PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodSubtypeListLocked(Ljava/lang/String;ZI)Ljava/util/List; PLcom/android/server/inputmethod/InputMethodManagerService;->getImeShowFlagsLocked()I PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodList(II)Ljava/util/List; -PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodListLocked(II)Ljava/util/List; HPLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodNavButtonFlagsLocked()I PLcom/android/server/inputmethod/InputMethodManagerService;->getLastBindTimeLocked()J HSPLcom/android/server/inputmethod/InputMethodManagerService;->getPackageManagerForUser(Landroid/content/Context;I)Landroid/content/pm/PackageManager; @@ -20006,7 +20705,6 @@ HPLcom/android/server/inputmethod/InputMethodManagerService;->isImeClientFocused PLcom/android/server/inputmethod/InputMethodManagerService;->isImeTraceEnabled()Z HPLcom/android/server/inputmethod/InputMethodManagerService;->isSelectedMethodBoundLocked()Z HSPLcom/android/server/inputmethod/InputMethodManagerService;->isStylusDevice(Landroid/view/InputDevice;)Z -HPLcom/android/server/inputmethod/InputMethodManagerService;->lambda$reportPerceptibleAsync$3()V PLcom/android/server/inputmethod/InputMethodManagerService;->lambda$systemRunning$1(Z)V HSPLcom/android/server/inputmethod/InputMethodManagerService;->lambda$systemRunning$2(I)V HSPLcom/android/server/inputmethod/InputMethodManagerService;->maybeInitImeNavbarConfigLocked(I)V @@ -20052,12 +20750,12 @@ PLcom/android/server/inputmethod/InputMethodManagerService;->shouldRestoreImeVis HPLcom/android/server/inputmethod/InputMethodManagerService;->shouldShowImeSwitcherLocked(I)Z HPLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputLocked(Landroid/os/IBinder;IILandroid/os/ResultReceiver;I)Z PLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputLocked(Landroid/os/IBinder;ILandroid/os/ResultReceiver;I)Z +PLcom/android/server/inputmethod/InputMethodManagerService;->showMySoftInput(Landroid/os/IBinder;I)V HPLcom/android/server/inputmethod/InputMethodManagerService;->showSoftInput(Lcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IILandroid/os/ResultReceiver;I)Z HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputOrWindowGainedFocus(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult; HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputOrWindowGainedFocusInternalLocked(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult; HPLcom/android/server/inputmethod/InputMethodManagerService;->startInputUncheckedLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;Landroid/view/inputmethod/EditorInfo;IIILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult; HPLcom/android/server/inputmethod/InputMethodManagerService;->switchUserOnHandlerLocked(ILcom/android/server/inputmethod/IInputMethodClientInvoker;)V -HSPLcom/android/server/inputmethod/InputMethodManagerService;->systemRunning(Lcom/android/server/statusbar/StatusBarManagerService;)V HPLcom/android/server/inputmethod/InputMethodManagerService;->tryReuseConnectionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;)Lcom/android/internal/inputmethod/InputBindResult; HSPLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentClientLocked(I)V HSPLcom/android/server/inputmethod/InputMethodManagerService;->updateCurrentProfileIds()V @@ -20143,7 +20841,7 @@ HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->switch HSPLcom/android/server/inputmethod/InputMethodUtils;->-$$Nest$sfgetNOT_A_SUBTYPE_ID_STR()Ljava/lang/String; HSPLcom/android/server/inputmethod/InputMethodUtils;-><clinit>()V HSPLcom/android/server/inputmethod/InputMethodUtils;->canAddToLastInputMethod(Landroid/view/inputmethod/InputMethodSubtype;)Z -HPLcom/android/server/inputmethod/InputMethodUtils;->checkIfPackageBelongsToUid(Landroid/app/AppOpsManager;ILjava/lang/String;)Z +PLcom/android/server/inputmethod/InputMethodUtils;->checkIfPackageBelongsToUid(Landroid/content/pm/PackageManagerInternal;ILjava/lang/String;)Z PLcom/android/server/inputmethod/InputMethodUtils;->getImeAndSubtypeDisplayName(Landroid/content/Context;Landroid/view/inputmethod/InputMethodInfo;Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/CharSequence; PLcom/android/server/inputmethod/InputMethodUtils;->isSoftInputModeStateVisibleAllowed(II)Z HPLcom/android/server/inputmethod/InputMethodUtils;->resolveUserId(IILjava/io/PrintWriter;)[I @@ -20332,17 +21030,11 @@ PLcom/android/server/integrity/serializer/RuleMetadataSerializer;->serialize(Lco PLcom/android/server/integrity/serializer/RuleMetadataSerializer;->serializeTaggedValue(Landroid/util/TypedXmlSerializer;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/job/GrantedUriPermissions;->checkGrantFlags(I)Z HSPLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda0;-><init>()V -HPLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda1;-><init>()V -HPLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V -HSPLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/job/JobConcurrencyManager;)V -PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda2;->run()V PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda3;-><init>(Landroid/util/IndentingPrintWriter;)V PLcom/android/server/job/JobConcurrencyManager$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V HSPLcom/android/server/job/JobConcurrencyManager$1;-><init>(Lcom/android/server/job/JobConcurrencyManager;)V HPLcom/android/server/job/JobConcurrencyManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V PLcom/android/server/job/JobConcurrencyManager$ContextAssignment;-><init>()V -PLcom/android/server/job/JobConcurrencyManager$ContextAssignment;-><init>(Lcom/android/server/job/JobConcurrencyManager$ContextAssignment-IA;)V HPLcom/android/server/job/JobConcurrencyManager$ContextAssignment;->clear()V HSPLcom/android/server/job/JobConcurrencyManager$GracePeriodObserver;-><init>(Landroid/content/Context;)V HPLcom/android/server/job/JobConcurrencyManager$PackageStats;->-$$Nest$madjustRunningCount(Lcom/android/server/job/JobConcurrencyManager$PackageStats;ZZ)V @@ -20410,7 +21102,7 @@ PLcom/android/server/job/JobConcurrencyManager;->maybeStopLongRunningJobsLocked( HPLcom/android/server/job/JobConcurrencyManager;->noteConcurrency()V PLcom/android/server/job/JobConcurrencyManager;->onAppRemovedLocked(Ljava/lang/String;I)V HSPLcom/android/server/job/JobConcurrencyManager;->onInteractiveStateChanged(Z)V -HPLcom/android/server/job/JobConcurrencyManager;->onJobCompletedLocked(Lcom/android/server/job/JobServiceContext;Lcom/android/server/job/controllers/JobStatus;I)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/Pools$Pool;Landroid/util/Pools$SimplePool;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/job/PendingJobQueue;Lcom/android/server/job/PendingJobQueue;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobServiceContext;Lcom/android/server/job/JobServiceContext;]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager;]Lcom/android/server/job/JobConcurrencyManager$WorkCountTracker;Lcom/android/server/job/JobConcurrencyManager$WorkCountTracker; +HPLcom/android/server/job/JobConcurrencyManager;->onJobCompletedLocked(Lcom/android/server/job/JobServiceContext;Lcom/android/server/job/controllers/JobStatus;I)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/Pools$Pool;Landroid/util/Pools$SimplePool;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/PendingJobQueue;Lcom/android/server/job/PendingJobQueue;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobServiceContext;Lcom/android/server/job/JobServiceContext;]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager;]Lcom/android/server/job/JobConcurrencyManager$WorkCountTracker;Lcom/android/server/job/JobConcurrencyManager$WorkCountTracker; HSPLcom/android/server/job/JobConcurrencyManager;->onSystemReady()V HSPLcom/android/server/job/JobConcurrencyManager;->onThirdPartyAppsCanStart()V HSPLcom/android/server/job/JobConcurrencyManager;->onUidBiasChangedLocked(II)V @@ -20460,8 +21152,14 @@ HSPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda0;-><init HPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z HSPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/JobSchedulerService;)V HSPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/job/JobSchedulerService;)V +PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/job/JobSchedulerService;)V +PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda4;-><init>(I)V HPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;)Z +PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;-><init>(I)V +PLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z +HSPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda6;-><init>()V +HPLcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda6;->getCategory(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/utils/quota/Category; HSPLcom/android/server/job/JobSchedulerService$1;-><init>(Ljava/time/ZoneId;)V HSPLcom/android/server/job/JobSchedulerService$1;->millis()J HSPLcom/android/server/job/JobSchedulerService$2;-><init>(Ljava/time/ZoneId;)V @@ -20493,6 +21191,7 @@ HSPLcom/android/server/job/JobSchedulerService$Constants;->updateTareSettingsLoc HSPLcom/android/server/job/JobSchedulerService$ConstantsObserver;-><init>(Lcom/android/server/job/JobSchedulerService;)V HSPLcom/android/server/job/JobSchedulerService$ConstantsObserver;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService$ConstantsObserver-IA;)V HSPLcom/android/server/job/JobSchedulerService$ConstantsObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V +PLcom/android/server/job/JobSchedulerService$ConstantsObserver;->onTareEnabledStateChanged(Z)V HSPLcom/android/server/job/JobSchedulerService$ConstantsObserver;->start()V PLcom/android/server/job/JobSchedulerService$DeferredJobCounter;-><init>()V PLcom/android/server/job/JobSchedulerService$DeferredJobCounter;->accept(Lcom/android/server/job/controllers/JobStatus;)V @@ -20511,13 +21210,12 @@ HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->getAllPendingJo HSPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->getPendingJob(I)Landroid/app/job/JobInfo; HSPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->schedule(Landroid/app/job/JobInfo;)I+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobSchedulerService$JobSchedulerStub;Lcom/android/server/job/JobSchedulerService$JobSchedulerStub; HPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I -HSPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->validateJobFlags(Landroid/app/job/JobInfo;I)V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo; +HSPLcom/android/server/job/JobSchedulerService$JobSchedulerStub;->validateJobFlags(Landroid/app/job/JobInfo;I)V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Lcom/android/server/SystemService;Lcom/android/server/job/JobSchedulerService;]Landroid/content/Context;Landroid/app/ContextImpl; HPLcom/android/server/job/JobSchedulerService$LocalService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/job/JobSchedulerService$LocalService;Ljava/util/List;)V HPLcom/android/server/job/JobSchedulerService$LocalService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HPLcom/android/server/job/JobSchedulerService$LocalService;->$r8$lambda$5Zq9BJx0-W6H-q8IPOMMnJJu8Jo(Lcom/android/server/job/JobSchedulerService$LocalService;Ljava/util/List;Lcom/android/server/job/controllers/JobStatus;)V HSPLcom/android/server/job/JobSchedulerService$LocalService;-><init>(Lcom/android/server/job/JobSchedulerService;)V PLcom/android/server/job/JobSchedulerService$LocalService;->addBackingUpUid(I)V -PLcom/android/server/job/JobSchedulerService$LocalService;->cancelJobsForUid(IIILjava/lang/String;)V PLcom/android/server/job/JobSchedulerService$LocalService;->clearAllBackingUpUids()V PLcom/android/server/job/JobSchedulerService$LocalService;->getPersistStats()Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats; HPLcom/android/server/job/JobSchedulerService$LocalService;->getSystemScheduledPendingJobs()Ljava/util/List; @@ -20537,8 +21235,10 @@ HPLcom/android/server/job/JobSchedulerService$ReadyJobQueueFunctor;->postProcess HSPLcom/android/server/job/JobSchedulerService$StandbyTracker;-><init>(Lcom/android/server/job/JobSchedulerService;)V PLcom/android/server/job/JobSchedulerService$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V HPLcom/android/server/job/JobSchedulerService$StandbyTracker;->onUserInteractionStarted(Ljava/lang/String;I)V +PLcom/android/server/job/JobSchedulerService;->$r8$lambda$Aa0RM7xKhnHXVX1ro4SiEnoG1Kg(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/JobStatus;)V HPLcom/android/server/job/JobSchedulerService;->$r8$lambda$TQG23Ovctx1aIo09D7L3AX_yNAM(Lcom/android/server/job/JobSchedulerService;I)Z HPLcom/android/server/job/JobSchedulerService;->$r8$lambda$fy4dseMOOYc2DsUmak_zC6LSTc4(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/utils/quota/Category; +PLcom/android/server/job/JobSchedulerService;->$r8$lambda$rZ8JZ4r7-K_ANiIoF6gMWX_KqFE(ILcom/android/server/job/controllers/JobStatus;)Z PLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmBackingUpUids(Lcom/android/server/job/JobSchedulerService;)Landroid/util/SparseBooleanArray; PLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmChangedJobList(Lcom/android/server/job/JobSchedulerService;)Landroid/util/ArraySet; HSPLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmDeviceIdleJobsController(Lcom/android/server/job/JobSchedulerService;)Lcom/android/server/job/controllers/DeviceIdleJobsController; @@ -20546,6 +21246,7 @@ HPLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmPendingJobQueue(Lco PLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmPrefetchController(Lcom/android/server/job/JobSchedulerService;)Lcom/android/server/job/controllers/PrefetchController; PLcom/android/server/job/JobSchedulerService;->-$$Nest$fgetmUidToPackageCache(Lcom/android/server/job/JobSchedulerService;)Landroid/util/SparseSetArray; HPLcom/android/server/job/JobSchedulerService;->-$$Nest$mcancelJob(Lcom/android/server/job/JobSchedulerService;IIII)Z +PLcom/android/server/job/JobSchedulerService;->-$$Nest$mcancelJobsForPackageAndUidLocked(Lcom/android/server/job/JobSchedulerService;Ljava/lang/String;IZZIILjava/lang/String;)V HPLcom/android/server/job/JobSchedulerService;->-$$Nest$mcheckChangedJobListLocked(Lcom/android/server/job/JobSchedulerService;)V PLcom/android/server/job/JobSchedulerService;->-$$Nest$mgetPackageName(Lcom/android/server/job/JobSchedulerService;Landroid/content/Intent;)Ljava/lang/String; PLcom/android/server/job/JobSchedulerService;->-$$Nest$mmaybeQueueReadyJobsForExecutionLocked(Lcom/android/server/job/JobSchedulerService;)V @@ -20559,7 +21260,7 @@ HSPLcom/android/server/job/JobSchedulerService;->areUsersStartedLocked(Lcom/andr HPLcom/android/server/job/JobSchedulerService;->cancelJob(IIII)Z HPLcom/android/server/job/JobSchedulerService;->cancelJobImplLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;IILjava/lang/String;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/JobPackageTracker;Lcom/android/server/job/JobPackageTracker;]Lcom/android/server/job/PendingJobQueue;Lcom/android/server/job/PendingJobQueue;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager; HSPLcom/android/server/job/JobSchedulerService;->cancelJobsForNonExistentUsers()V -PLcom/android/server/job/JobSchedulerService;->cancelJobsForUid(IIILjava/lang/String;)Z +PLcom/android/server/job/JobSchedulerService;->cancelJobsForPackageAndUidLocked(Ljava/lang/String;IZZIILjava/lang/String;)V HPLcom/android/server/job/JobSchedulerService;->checkChangedJobListLocked()V+]Landroid/os/Handler;Lcom/android/server/job/JobSchedulerService$JobHandler;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor;Lcom/android/server/job/JobSchedulerService$MaybeReadyJobQueueFunctor; HSPLcom/android/server/job/JobSchedulerService;->checkIfRestricted(Lcom/android/server/job/controllers/JobStatus;)Lcom/android/server/job/restrictions/JobRestriction;+]Lcom/android/server/job/restrictions/JobRestriction;Lcom/android/server/job/restrictions/ThermalStatusRestriction;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService; HPLcom/android/server/job/JobSchedulerService;->clearPendingJobQueue()V @@ -20573,7 +21274,7 @@ HSPLcom/android/server/job/JobSchedulerService;->getLock()Ljava/lang/Object; HPLcom/android/server/job/JobSchedulerService;->getMaxJobExecutionTimeMs(Lcom/android/server/job/controllers/JobStatus;)J+]Lcom/android/server/job/controllers/TareController;Lcom/android/server/job/controllers/TareController; HPLcom/android/server/job/JobSchedulerService;->getMinJobExecutionGuaranteeMs(Lcom/android/server/job/controllers/JobStatus;)J PLcom/android/server/job/JobSchedulerService;->getPackageName(Landroid/content/Intent;)Ljava/lang/String; -HPLcom/android/server/job/JobSchedulerService;->getPackagesForUidLocked(I)Landroid/util/ArraySet;+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; +HSPLcom/android/server/job/JobSchedulerService;->getPackagesForUidLocked(I)Landroid/util/ArraySet;+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; HSPLcom/android/server/job/JobSchedulerService;->getPendingJob(II)Landroid/app/job/JobInfo;+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/job/JobStore;Lcom/android/server/job/JobStore; HSPLcom/android/server/job/JobSchedulerService;->getPendingJobQueue()Lcom/android/server/job/PendingJobQueue; HPLcom/android/server/job/JobSchedulerService;->getPendingJobs(I)Ljava/util/List;+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/job/JobStore;Lcom/android/server/job/JobStore;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -20583,12 +21284,14 @@ HSPLcom/android/server/job/JobSchedulerService;->getTestableContext()Landroid/co HSPLcom/android/server/job/JobSchedulerService;->getUidBias(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; HSPLcom/android/server/job/JobSchedulerService;->isBatteryCharging()Z+]Lcom/android/server/job/JobSchedulerService$BatteryStateTracker;Lcom/android/server/job/JobSchedulerService$BatteryStateTracker; HSPLcom/android/server/job/JobSchedulerService;->isBatteryNotLow()Z+]Lcom/android/server/job/JobSchedulerService$BatteryStateTracker;Lcom/android/server/job/JobSchedulerService$BatteryStateTracker; -HSPLcom/android/server/job/JobSchedulerService;->isComponentUsable(Lcom/android/server/job/controllers/JobStatus;)Z+]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; +HSPLcom/android/server/job/JobSchedulerService;->isComponentUsable(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; HSPLcom/android/server/job/JobSchedulerService;->isCurrentlyRunningLocked(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager; PLcom/android/server/job/JobSchedulerService;->isLongRunningLocked(Lcom/android/server/job/controllers/JobStatus;)Z HSPLcom/android/server/job/JobSchedulerService;->isReadyToBeExecutedLocked(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService; HSPLcom/android/server/job/JobSchedulerService;->isReadyToBeExecutedLocked(Lcom/android/server/job/controllers/JobStatus;Z)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/job/PendingJobQueue;Lcom/android/server/job/PendingJobQueue;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobStore;Lcom/android/server/job/JobStore;]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager; HPLcom/android/server/job/JobSchedulerService;->isUidActive(I)Z +PLcom/android/server/job/JobSchedulerService;->lambda$dumpInternal$7(ILcom/android/server/job/controllers/JobStatus;)Z +HPLcom/android/server/job/JobSchedulerService;->lambda$onBootPhase$4(Lcom/android/server/job/controllers/JobStatus;)V HPLcom/android/server/job/JobSchedulerService;->lambda$static$0(ILjava/lang/String;Ljava/lang/String;)Lcom/android/server/utils/quota/Category; PLcom/android/server/job/JobSchedulerService;->maybeQueueReadyJobsForExecutionLocked()V HSPLcom/android/server/job/JobSchedulerService;->maybeRunPendingJobsLocked()V+]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobConcurrencyManager;Lcom/android/server/job/JobConcurrencyManager; @@ -20665,7 +21368,7 @@ HPLcom/android/server/job/JobServiceContext;->removeOpTimeOutLocked()V+]Landroid HPLcom/android/server/job/JobServiceContext;->scheduleOpTimeOutLocked()V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Landroid/os/Handler;Lcom/android/server/job/JobServiceContext$JobServiceHandler;]Lcom/android/server/job/JobServiceContext;Lcom/android/server/job/JobServiceContext; HPLcom/android/server/job/JobServiceContext;->sendStopMessageLocked(Ljava/lang/String;)V HPLcom/android/server/job/JobServiceContext;->verifyCallerLocked(Lcom/android/server/job/JobServiceContext$JobCallback;)Z -PLcom/android/server/job/JobStore$1$$ExternalSyntheticLambda0;-><init>(Ljava/util/List;)V +HPLcom/android/server/job/JobStore$1$$ExternalSyntheticLambda0;-><init>(Ljava/util/List;)V HPLcom/android/server/job/JobStore$1$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HPLcom/android/server/job/JobStore$1;->$r8$lambda$ZikJkDDt5KQaHJN4EZAQQUHLdb8(Ljava/util/List;Lcom/android/server/job/controllers/JobStatus;)V HSPLcom/android/server/job/JobStore$1;-><init>(Lcom/android/server/job/JobStore;)V @@ -20688,11 +21391,10 @@ HSPLcom/android/server/job/JobStore$JobSet;->add(Lcom/android/server/job/control HSPLcom/android/server/job/JobStore$JobSet;->contains(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLcom/android/server/job/JobStore$JobSet;->countJobsForUid(I)I+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/job/JobStore$JobSet;->forEachJob(ILjava/util/function/Consumer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/function/Consumer;Lcom/android/server/job/JobSchedulerService$LocalService$$ExternalSyntheticLambda0; -HSPLcom/android/server/job/JobStore$JobSet;->forEachJob(Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/function/Consumer;megamorphic_types]Ljava/util/function/Predicate;Lcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda0;,Lcom/android/server/job/controllers/DeviceIdleJobsController$$ExternalSyntheticLambda2;,Lcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda1; +HSPLcom/android/server/job/JobStore$JobSet;->forEachJob(Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/function/Consumer;megamorphic_types]Ljava/util/function/Predicate;Lcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda1;,Lcom/android/server/job/controllers/ComponentController$$ExternalSyntheticLambda0;,Lcom/android/server/job/controllers/DeviceIdleJobsController$$ExternalSyntheticLambda2; HSPLcom/android/server/job/JobStore$JobSet;->forEachJobForSourceUid(ILjava/util/function/Consumer;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/function/Consumer;Lcom/android/server/job/JobSchedulerService$DeferredJobCounter;,Lcom/android/server/job/controllers/DeviceIdleJobsController$DeviceIdleUpdateFunctor;,Lcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;,Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor; HSPLcom/android/server/job/JobStore$JobSet;->get(II)Lcom/android/server/job/controllers/JobStatus;+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet; PLcom/android/server/job/JobStore$JobSet;->getAllJobs()Ljava/util/List; -HSPLcom/android/server/job/JobStore$JobSet;->getJobsByUid(I)Ljava/util/List;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/job/JobStore$JobSet;->lambda$removeJobsOfUnlistedUsers$0([ILcom/android/server/job/controllers/JobStatus;)Z HSPLcom/android/server/job/JobStore$JobSet;->lambda$removeJobsOfUnlistedUsers$1([ILcom/android/server/job/controllers/JobStatus;)Z HSPLcom/android/server/job/JobStore$JobSet;->remove(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet; @@ -20719,7 +21421,7 @@ HSPLcom/android/server/job/JobStore;->-$$Nest$smisSyncJob(Lcom/android/server/jo HSPLcom/android/server/job/JobStore;-><clinit>()V HSPLcom/android/server/job/JobStore;-><init>(Landroid/content/Context;Ljava/lang/Object;Ljava/io/File;)V HSPLcom/android/server/job/JobStore;->add(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/JobStore$JobSet;Lcom/android/server/job/JobStore$JobSet;]Lcom/android/server/job/JobStore;Lcom/android/server/job/JobStore; -HSPLcom/android/server/job/JobStore;->containsJob(Lcom/android/server/job/controllers/JobStatus;)Z +HSPLcom/android/server/job/JobStore;->containsJob(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/JobStore$JobSet;Lcom/android/server/job/JobStore$JobSet; HSPLcom/android/server/job/JobStore;->convertRtcBoundsToElapsed(Landroid/util/Pair;J)Landroid/util/Pair; HSPLcom/android/server/job/JobStore;->countJobsForUid(I)I+]Lcom/android/server/job/JobStore$JobSet;Lcom/android/server/job/JobStore$JobSet; HPLcom/android/server/job/JobStore;->forEachJob(ILjava/util/function/Consumer;)V @@ -20727,7 +21429,6 @@ HSPLcom/android/server/job/JobStore;->forEachJob(Ljava/util/function/Consumer;)V PLcom/android/server/job/JobStore;->forEachJob(Ljava/util/function/Predicate;Ljava/util/function/Consumer;)V HSPLcom/android/server/job/JobStore;->forEachJobForSourceUid(ILjava/util/function/Consumer;)V+]Lcom/android/server/job/JobStore$JobSet;Lcom/android/server/job/JobStore$JobSet; HSPLcom/android/server/job/JobStore;->getJobByUidAndJobId(II)Lcom/android/server/job/controllers/JobStatus;+]Lcom/android/server/job/JobStore$JobSet;Lcom/android/server/job/JobStore$JobSet; -HSPLcom/android/server/job/JobStore;->getJobsByUid(I)Ljava/util/List;+]Lcom/android/server/job/JobStore$JobSet;Lcom/android/server/job/JobStore$JobSet; PLcom/android/server/job/JobStore;->getPersistStats()Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats; HSPLcom/android/server/job/JobStore;->initAndGet(Lcom/android/server/job/JobSchedulerService;)Lcom/android/server/job/JobStore; HPLcom/android/server/job/JobStore;->intArrayToString([I)Ljava/lang/String;+]Ljava/util/StringJoiner;Ljava/util/StringJoiner; @@ -20753,7 +21454,7 @@ PLcom/android/server/job/PendingJobQueue$AppJobQueue;-><init>(Lcom/android/serve HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->add(Lcom/android/server/job/controllers/JobStatus;)V HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->addAll(Ljava/util/List;)V+]Landroid/util/Pools$Pool;Landroid/util/Pools$SimplePool;]Ljava/util/List;Ljava/util/ArrayList; HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->clear()V -PLcom/android/server/job/PendingJobQueue$AppJobQueue;->contains(Lcom/android/server/job/controllers/JobStatus;)Z +HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->contains(Lcom/android/server/job/controllers/JobStatus;)Z HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->indexOf(Lcom/android/server/job/controllers/JobStatus;)I+]Ljava/util/List;Ljava/util/ArrayList; HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->lambda$static$0(Lcom/android/server/job/PendingJobQueue$AppJobQueue$AdjustedJobStatus;Lcom/android/server/job/PendingJobQueue$AppJobQueue$AdjustedJobStatus;)I+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; HPLcom/android/server/job/PendingJobQueue$AppJobQueue;->next()Lcom/android/server/job/controllers/JobStatus; @@ -20777,15 +21478,15 @@ HSPLcom/android/server/job/PendingJobQueue;->size()I PLcom/android/server/job/controllers/BackgroundJobsController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;Landroid/util/IndentingPrintWriter;)V PLcom/android/server/job/controllers/BackgroundJobsController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V HSPLcom/android/server/job/controllers/BackgroundJobsController$1;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;)V -HPLcom/android/server/job/controllers/BackgroundJobsController$1;->updateAllJobs()V +HSPLcom/android/server/job/controllers/BackgroundJobsController$1;->updateAllJobs()V HSPLcom/android/server/job/controllers/BackgroundJobsController$1;->updateJobsForUid(IZ)V HSPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;)V HSPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;-><init>(Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor-IA;)V -HPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->accept(Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController; -HPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->accept(Ljava/lang/Object;)V+]Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor; +HSPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->accept(Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController; +HSPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->accept(Ljava/lang/Object;)V+]Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;Lcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor; HSPLcom/android/server/job/controllers/BackgroundJobsController$UpdateJobFunctor;->prepare(I)V PLcom/android/server/job/controllers/BackgroundJobsController;->$r8$lambda$eQB_xxnwc8eZC0ZhlpQQCbZeaqQ(Lcom/android/server/job/controllers/BackgroundJobsController;Landroid/util/IndentingPrintWriter;Lcom/android/server/job/controllers/JobStatus;)V -HPLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$mupdateAllJobRestrictionsLocked(Lcom/android/server/job/controllers/BackgroundJobsController;)V +HSPLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$mupdateAllJobRestrictionsLocked(Lcom/android/server/job/controllers/BackgroundJobsController;)V HSPLcom/android/server/job/controllers/BackgroundJobsController;->-$$Nest$mupdateJobRestrictionsForUidLocked(Lcom/android/server/job/controllers/BackgroundJobsController;IZ)V HSPLcom/android/server/job/controllers/BackgroundJobsController;-><clinit>()V HSPLcom/android/server/job/controllers/BackgroundJobsController;-><init>(Lcom/android/server/job/JobSchedulerService;)V @@ -20794,7 +21495,7 @@ HSPLcom/android/server/job/controllers/BackgroundJobsController;->evaluateStateL PLcom/android/server/job/controllers/BackgroundJobsController;->lambda$dumpControllerStateLocked$0(Landroid/util/IndentingPrintWriter;Lcom/android/server/job/controllers/JobStatus;)V HSPLcom/android/server/job/controllers/BackgroundJobsController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController; HPLcom/android/server/job/controllers/BackgroundJobsController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)V -HPLcom/android/server/job/controllers/BackgroundJobsController;->updateAllJobRestrictionsLocked()V +HSPLcom/android/server/job/controllers/BackgroundJobsController;->updateAllJobRestrictionsLocked()V HSPLcom/android/server/job/controllers/BackgroundJobsController;->updateJobRestrictionsForUidLocked(IZ)V HSPLcom/android/server/job/controllers/BackgroundJobsController;->updateJobRestrictionsLocked(II)V HSPLcom/android/server/job/controllers/BackgroundJobsController;->updateSingleJobRestrictionLocked(Lcom/android/server/job/controllers/JobStatus;JI)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/AppStateTrackerImpl;Lcom/android/server/AppStateTrackerImpl;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; @@ -20812,7 +21513,7 @@ HSPLcom/android/server/job/controllers/BatteryController;-><init>(Lcom/android/s PLcom/android/server/job/controllers/BatteryController;->dumpControllerStateLocked(Landroid/util/IndentingPrintWriter;Ljava/util/function/Predicate;)V HSPLcom/android/server/job/controllers/BatteryController;->hasTopExemptionLocked(Lcom/android/server/job/controllers/JobStatus;)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService; PLcom/android/server/job/controllers/BatteryController;->lambda$onBatteryStateChangedLocked$0()V -HPLcom/android/server/job/controllers/BatteryController;->maybeReportNewChargingStateLocked()V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/BatteryController;Lcom/android/server/job/controllers/BatteryController;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/FlexibilityController;Lcom/android/server/job/controllers/FlexibilityController;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/StateChangedListener;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/controllers/BatteryController$PowerTracker;Lcom/android/server/job/controllers/BatteryController$PowerTracker;]Lcom/android/server/job/controllers/StateController;Lcom/android/server/job/controllers/BatteryController;]Ljava/lang/Boolean;Ljava/lang/Boolean; +HPLcom/android/server/job/controllers/BatteryController;->maybeReportNewChargingStateLocked()V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/BatteryController;Lcom/android/server/job/controllers/BatteryController;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/StateController;Lcom/android/server/job/controllers/BatteryController;]Lcom/android/server/job/controllers/FlexibilityController;Lcom/android/server/job/controllers/FlexibilityController;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/StateChangedListener;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/controllers/BatteryController$PowerTracker;Lcom/android/server/job/controllers/BatteryController$PowerTracker; HSPLcom/android/server/job/controllers/BatteryController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/BatteryController;Lcom/android/server/job/controllers/BatteryController;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/controllers/BatteryController$PowerTracker;Lcom/android/server/job/controllers/BatteryController$PowerTracker; HPLcom/android/server/job/controllers/BatteryController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/ArraySet;Landroid/util/ArraySet; PLcom/android/server/job/controllers/BatteryController;->onBatteryStateChangedLocked()V @@ -20912,7 +21613,7 @@ HPLcom/android/server/job/controllers/ConnectivityController;->isStrongEnough(Lc HPLcom/android/server/job/controllers/ConnectivityController;->isUsable(Landroid/net/NetworkCapabilities;)Z HPLcom/android/server/job/controllers/ConnectivityController;->maybeAdjustRegisteredCallbacksLocked()V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Landroid/os/Handler;Lcom/android/server/job/controllers/ConnectivityController$CcHandler;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/StateController;Lcom/android/server/job/controllers/ConnectivityController;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController;]Landroid/util/Pools$Pool;Landroid/util/Pools$SimplePool;]Landroid/net/ConnectivityManager;Landroid/net/ConnectivityManager; HSPLcom/android/server/job/controllers/ConnectivityController;->maybeRegisterDefaultNetworkCallbackLocked(Lcom/android/server/job/controllers/JobStatus;)V -HPLcom/android/server/job/controllers/ConnectivityController;->maybeRevokeStandbyExceptionLocked(Lcom/android/server/job/controllers/JobStatus;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController; +HPLcom/android/server/job/controllers/ConnectivityController;->maybeRevokeStandbyExceptionLocked(Lcom/android/server/job/controllers/JobStatus;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLcom/android/server/job/controllers/ConnectivityController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/StateController;Lcom/android/server/job/controllers/ConnectivityController;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController; HPLcom/android/server/job/controllers/ConnectivityController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController; PLcom/android/server/job/controllers/ConnectivityController;->onAppRemovedLocked(Ljava/lang/String;I)V @@ -20927,7 +21628,7 @@ HPLcom/android/server/job/controllers/ConnectivityController;->requestStandbyExc HPLcom/android/server/job/controllers/ConnectivityController;->revokeStandbyExceptionLocked(I)V PLcom/android/server/job/controllers/ConnectivityController;->startTrackingRestrictedJobLocked(Lcom/android/server/job/controllers/JobStatus;)V PLcom/android/server/job/controllers/ConnectivityController;->stopTrackingRestrictedJobLocked(Lcom/android/server/job/controllers/JobStatus;)V -HPLcom/android/server/job/controllers/ConnectivityController;->unregisterDefaultNetworkCallbackLocked(IJ)Z+]Landroid/util/Pools$Pool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/net/ConnectivityManager;Landroid/net/ConnectivityManager; +HPLcom/android/server/job/controllers/ConnectivityController;->unregisterDefaultNetworkCallbackLocked(IJ)Z+]Landroid/util/Pools$Pool;Landroid/util/Pools$SimplePool;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/net/ConnectivityManager;Landroid/net/ConnectivityManager;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController; HPLcom/android/server/job/controllers/ConnectivityController;->updateAllTrackedJobsLocked(Z)V HSPLcom/android/server/job/controllers/ConnectivityController;->updateConstraintsSatisfied(Lcom/android/server/job/controllers/JobStatus;)Z HSPLcom/android/server/job/controllers/ConnectivityController;->updateConstraintsSatisfied(Lcom/android/server/job/controllers/JobStatus;JLandroid/net/Network;Landroid/net/NetworkCapabilities;)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/FlexibilityController;Lcom/android/server/job/controllers/FlexibilityController;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController;]Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities; @@ -21015,7 +21716,7 @@ HSPLcom/android/server/job/controllers/FlexibilityController;->maybeStartTrackin HPLcom/android/server/job/controllers/FlexibilityController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)V+]Lcom/android/server/job/controllers/FlexibilityController$FlexibilityTracker;Lcom/android/server/job/controllers/FlexibilityController$FlexibilityTracker;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/utils/AlarmQueue;Lcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue; PLcom/android/server/job/controllers/FlexibilityController;->onAppRemovedLocked(Ljava/lang/String;I)V HSPLcom/android/server/job/controllers/FlexibilityController;->onConstantsUpdatedLocked()V -HSPLcom/android/server/job/controllers/FlexibilityController;->onUidBiasChangedLocked(III)V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/job/controllers/FlexibilityController;Lcom/android/server/job/controllers/FlexibilityController;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/lang/Long;Ljava/lang/Long;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobStore;Lcom/android/server/job/JobStore; +HSPLcom/android/server/job/controllers/FlexibilityController;->onUidBiasChangedLocked(III)V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Lcom/android/server/job/controllers/FlexibilityController;Lcom/android/server/job/controllers/FlexibilityController;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/JobStore;Lcom/android/server/job/JobStore;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/lang/Long;Ljava/lang/Long; HSPLcom/android/server/job/controllers/FlexibilityController;->prepareForUpdatedConstantsLocked()V HPLcom/android/server/job/controllers/FlexibilityController;->setConstraintSatisfied(IZJ)V HSPLcom/android/server/job/controllers/IdleController;-><init>(Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/controllers/FlexibilityController;)V @@ -21027,7 +21728,7 @@ PLcom/android/server/job/controllers/IdleController;->reportNewIdleState(Z)V PLcom/android/server/job/controllers/IdleController;->startTrackingRestrictedJobLocked(Lcom/android/server/job/controllers/JobStatus;)V PLcom/android/server/job/controllers/IdleController;->stopTrackingRestrictedJobLocked(Lcom/android/server/job/controllers/JobStatus;)V HSPLcom/android/server/job/controllers/JobStatus;-><clinit>()V -HSPLcom/android/server/job/controllers/JobStatus;-><init>(Landroid/app/job/JobInfo;ILjava/lang/String;IILjava/lang/String;IJJJJII)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/app/job/JobInfo$TriggerContentUri;Landroid/app/job/JobInfo$TriggerContentUri;]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/app/job/JobInfo$Builder;Landroid/app/job/JobInfo$Builder;]Landroid/net/NetworkRequest$Builder;Landroid/net/NetworkRequest$Builder;]Landroid/content/ComponentName;Landroid/content/ComponentName; +HSPLcom/android/server/job/controllers/JobStatus;-><init>(Landroid/app/job/JobInfo;ILjava/lang/String;IILjava/lang/String;IJJJJII)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Landroid/app/job/JobInfo$TriggerContentUri;Landroid/app/job/JobInfo$TriggerContentUri;]Landroid/app/job/JobInfo$Builder;Landroid/app/job/JobInfo$Builder;]Landroid/net/NetworkRequest$Builder;Landroid/net/NetworkRequest$Builder;]Landroid/content/ComponentName;Landroid/content/ComponentName; HSPLcom/android/server/job/controllers/JobStatus;-><init>(Landroid/app/job/JobInfo;ILjava/lang/String;IILjava/lang/String;JJJJLandroid/util/Pair;II)V HPLcom/android/server/job/controllers/JobStatus;-><init>(Lcom/android/server/job/controllers/JobStatus;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; HPLcom/android/server/job/controllers/JobStatus;-><init>(Lcom/android/server/job/controllers/JobStatus;JJIJJ)V @@ -21121,8 +21822,8 @@ HSPLcom/android/server/job/controllers/JobStatus;->setConnectivityConstraintSati HSPLcom/android/server/job/controllers/JobStatus;->setConstraintSatisfied(IJZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; HPLcom/android/server/job/controllers/JobStatus;->setContentTriggerConstraintSatisfied(JZ)Z HSPLcom/android/server/job/controllers/JobStatus;->setDeadlineConstraintSatisfied(JZ)Z -HSPLcom/android/server/job/controllers/JobStatus;->setDeviceNotDozingConstraintSatisfied(JZZ)Z -HPLcom/android/server/job/controllers/JobStatus;->setExpeditedJobQuotaApproved(JZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; +HSPLcom/android/server/job/controllers/JobStatus;->setDeviceNotDozingConstraintSatisfied(JZZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; +HSPLcom/android/server/job/controllers/JobStatus;->setExpeditedJobQuotaApproved(JZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; HSPLcom/android/server/job/controllers/JobStatus;->setExpeditedJobTareApproved(JZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; PLcom/android/server/job/controllers/JobStatus;->setFirstForceBatchedTimeElapsed(J)V HSPLcom/android/server/job/controllers/JobStatus;->setFlexibilityConstraintSatisfied(JZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; @@ -21149,15 +21850,15 @@ PLcom/android/server/job/controllers/JobStatus;->updateExpeditedDependencies()V HSPLcom/android/server/job/controllers/JobStatus;->updateMediaBackupExemptionStatus()Z+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo; HSPLcom/android/server/job/controllers/JobStatus;->updateNetworkBytesLocked()V+]Landroid/app/job/JobInfo;Landroid/app/job/JobInfo;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/job/JobWorkItem;Landroid/app/job/JobWorkItem; HSPLcom/android/server/job/controllers/JobStatus;->wouldBeReadyWithConstraint(I)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus; -HPLcom/android/server/job/controllers/Package;-><init>(ILjava/lang/String;)V +HSPLcom/android/server/job/controllers/Package;-><init>(ILjava/lang/String;)V HPLcom/android/server/job/controllers/Package;->equals(Ljava/lang/Object;)Z PLcom/android/server/job/controllers/Package;->hashCode()I -HPLcom/android/server/job/controllers/Package;->packageToString(ILjava/lang/String;)Ljava/lang/String; +HSPLcom/android/server/job/controllers/Package;->packageToString(ILjava/lang/String;)Ljava/lang/String; PLcom/android/server/job/controllers/Package;->toString()Ljava/lang/String; PLcom/android/server/job/controllers/PrefetchController$$ExternalSyntheticLambda0;-><init>(Ljava/util/function/Predicate;Landroid/util/IndentingPrintWriter;)V PLcom/android/server/job/controllers/PrefetchController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HSPLcom/android/server/job/controllers/PrefetchController$1;-><init>(Lcom/android/server/job/controllers/PrefetchController;)V -PLcom/android/server/job/controllers/PrefetchController$1;->onEstimatedLaunchTimeChanged(ILjava/lang/String;J)V +HPLcom/android/server/job/controllers/PrefetchController$1;->onEstimatedLaunchTimeChanged(ILjava/lang/String;J)V HSPLcom/android/server/job/controllers/PrefetchController$PcConstants;->-$$Nest$fgetmShouldReevaluateConstraints(Lcom/android/server/job/controllers/PrefetchController$PcConstants;)Z HSPLcom/android/server/job/controllers/PrefetchController$PcConstants;->-$$Nest$fputmShouldReevaluateConstraints(Lcom/android/server/job/controllers/PrefetchController$PcConstants;Z)V PLcom/android/server/job/controllers/PrefetchController$PcConstants;->-$$Nest$mdump(Lcom/android/server/job/controllers/PrefetchController$PcConstants;Landroid/util/IndentingPrintWriter;)V @@ -21246,7 +21947,7 @@ HSPLcom/android/server/job/controllers/QuotaController$StandbyTracker;-><init>(L PLcom/android/server/job/controllers/QuotaController$StandbyTracker;->lambda$onAppIdleStateChanged$0(IILjava/lang/String;)V HPLcom/android/server/job/controllers/QuotaController$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V HSPLcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;-><init>(Lcom/android/server/job/controllers/QuotaController;)V -HPLcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;->onAppAdded(I)V +HSPLcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;->onAppAdded(I)V HPLcom/android/server/job/controllers/QuotaController$TempAllowlistTracker;->onAppRemoved(I)V PLcom/android/server/job/controllers/QuotaController$TimedEventTooOldPredicate;->-$$Nest$mupdateNow(Lcom/android/server/job/controllers/QuotaController$TimedEventTooOldPredicate;)V HSPLcom/android/server/job/controllers/QuotaController$TimedEventTooOldPredicate;-><init>()V @@ -21285,8 +21986,8 @@ HPLcom/android/server/job/controllers/QuotaController$TopAppTimer;->isActive()Z HPLcom/android/server/job/controllers/QuotaController$TopAppTimer;->processEventLocked(Landroid/app/usage/UsageEvents$Event;)V HSPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;-><init>(Lcom/android/server/job/controllers/QuotaController;)V HSPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;-><init>(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController$UidConstraintUpdater-IA;)V -HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->accept(Lcom/android/server/job/controllers/JobStatus;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/utils/AlarmQueue;Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue; -HPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->accept(Ljava/lang/Object;)V +HSPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->accept(Lcom/android/server/job/controllers/JobStatus;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/utils/AlarmQueue;Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue; +HSPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->accept(Ljava/lang/Object;)V HSPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->postProcess()V+]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap; HSPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->prepare()V HSPLcom/android/server/job/controllers/QuotaController$UidConstraintUpdater;->reset()V @@ -21308,7 +22009,7 @@ HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmForeground HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmHandler(Lcom/android/server/job/controllers/QuotaController;)Lcom/android/server/job/controllers/QuotaController$QcHandler; PLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmInQuotaAlarmQueue(Lcom/android/server/job/controllers/QuotaController;)Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue; HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmPkgTimers(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseArrayMap; -HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTempAllowlistCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseBooleanArray; +HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTempAllowlistCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseBooleanArray; HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTempAllowlistGraceCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseLongArray; HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTopAppCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseBooleanArray; HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$fgetmTopAppGraceCache(Lcom/android/server/job/controllers/QuotaController;)Landroid/util/SparseLongArray; @@ -21321,8 +22022,8 @@ HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$misTopStartedJob HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$mmaybeUpdateConstraintForPkgLocked(Lcom/android/server/job/controllers/QuotaController;JILjava/lang/String;)Landroid/util/ArraySet; HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$mmaybeUpdateConstraintForUidLocked(Lcom/android/server/job/controllers/QuotaController;I)Landroid/util/ArraySet;+]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController; HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$msaveTimingSession(Lcom/android/server/job/controllers/QuotaController;ILjava/lang/String;Lcom/android/server/job/controllers/QuotaController$TimingSession;ZJ)V -HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$msetConstraintSatisfied(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/JobStatus;JZZ)Z -HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$msetExpeditedQuotaApproved(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/JobStatus;JZ)Z+]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController; +HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$msetConstraintSatisfied(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/JobStatus;JZZ)Z +HSPLcom/android/server/job/controllers/QuotaController;->-$$Nest$msetExpeditedQuotaApproved(Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/JobStatus;JZ)Z+]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController; PLcom/android/server/job/controllers/QuotaController;->-$$Nest$mtransactQuotaLocked(Lcom/android/server/job/controllers/QuotaController;ILjava/lang/String;JLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;J)Z HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$sfgetDEBUG()Z HPLcom/android/server/job/controllers/QuotaController;->-$$Nest$smhashLong(J)I @@ -21366,7 +22067,7 @@ PLcom/android/server/job/controllers/QuotaController;->lambda$handleNewChargingS HPLcom/android/server/job/controllers/QuotaController;->lambda$new$2(Ljava/util/List;)V HSPLcom/android/server/job/controllers/QuotaController;->lambda$onConstantsUpdatedLocked$3()V HPLcom/android/server/job/controllers/QuotaController;->maybeScheduleCleanupAlarmLocked()V -HPLcom/android/server/job/controllers/QuotaController;->maybeScheduleStartAlarmLocked(ILjava/lang/String;I)V +HSPLcom/android/server/job/controllers/QuotaController;->maybeScheduleStartAlarmLocked(ILjava/lang/String;I)V HSPLcom/android/server/job/controllers/QuotaController;->maybeStartTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;)V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/job/controllers/QuotaController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/QuotaController;Lcom/android/server/job/controllers/QuotaController;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/utils/AlarmQueue;Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue; HSPLcom/android/server/job/controllers/QuotaController;->maybeUpdateAllConstraintsLocked()V @@ -21380,7 +22081,7 @@ HPLcom/android/server/job/controllers/QuotaController;->prepareForExecutionLocke HSPLcom/android/server/job/controllers/QuotaController;->prepareForUpdatedConstantsLocked()V HPLcom/android/server/job/controllers/QuotaController;->saveTimingSession(ILjava/lang/String;Lcom/android/server/job/controllers/QuotaController$TimingSession;ZJ)V HSPLcom/android/server/job/controllers/QuotaController;->setConstraintSatisfied(Lcom/android/server/job/controllers/JobStatus;JZZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService; -HPLcom/android/server/job/controllers/QuotaController;->setExpeditedQuotaApproved(Lcom/android/server/job/controllers/JobStatus;JZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController;]Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController; +HSPLcom/android/server/job/controllers/QuotaController;->setExpeditedQuotaApproved(Lcom/android/server/job/controllers/JobStatus;JZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController;]Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController; HPLcom/android/server/job/controllers/QuotaController;->transactQuotaLocked(ILjava/lang/String;JLcom/android/server/job/controllers/QuotaController$ShrinkableDebits;J)Z HPLcom/android/server/job/controllers/QuotaController;->unprepareFromExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/job/controllers/QuotaController$Timer;Lcom/android/server/job/controllers/QuotaController$Timer;]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/job/controllers/QuotaController;->updateExecutionStatsLocked(ILjava/lang/String;Lcom/android/server/job/controllers/QuotaController$ExecutionStats;)V+]Ljava/time/Clock;Lcom/android/server/job/JobSchedulerService$2;]Lcom/android/server/job/controllers/QuotaController$TimedEvent;Lcom/android/server/job/controllers/QuotaController$TimingSession;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/job/controllers/QuotaController$Timer;Lcom/android/server/job/controllers/QuotaController$Timer;]Ljava/util/List;Ljava/util/ArrayList; @@ -21443,7 +22144,7 @@ HSPLcom/android/server/job/controllers/TareController;->maybeStartTrackingJobLoc HPLcom/android/server/job/controllers/TareController;->maybeStopTrackingJobLocked(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/tare/EconomyManagerInternal;Lcom/android/server/tare/InternalResourceService$LocalService;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/job/controllers/TareController;Lcom/android/server/job/controllers/TareController;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLcom/android/server/job/controllers/TareController;->onConstantsUpdatedLocked()V HPLcom/android/server/job/controllers/TareController;->prepareForExecutionLocked(Lcom/android/server/job/controllers/JobStatus;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/EconomyManagerInternal;Lcom/android/server/tare/InternalResourceService$LocalService;]Lcom/android/server/job/controllers/TareController;Lcom/android/server/job/controllers/TareController;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/job/JobSchedulerService;Lcom/android/server/job/JobSchedulerService; -HPLcom/android/server/job/controllers/TareController;->removeJobFromBillList(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/tare/EconomyManagerInternal;Lcom/android/server/tare/InternalResourceService$LocalService;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/util/ArraySet;Landroid/util/ArraySet; +HPLcom/android/server/job/controllers/TareController;->removeJobFromBillList(Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/EconomyManagerInternal;Lcom/android/server/tare/InternalResourceService$LocalService;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLcom/android/server/job/controllers/TareController;->setExpeditedTareApproved(Lcom/android/server/job/controllers/JobStatus;JZ)Z+]Lcom/android/server/job/controllers/JobStatus;Lcom/android/server/job/controllers/JobStatus;]Lcom/android/server/job/controllers/ConnectivityController;Lcom/android/server/job/controllers/ConnectivityController;]Lcom/android/server/job/StateChangedListener;Lcom/android/server/job/JobSchedulerService;]Lcom/android/server/job/controllers/BackgroundJobsController;Lcom/android/server/job/controllers/BackgroundJobsController; HSPLcom/android/server/job/controllers/TimeController$1;-><init>(Lcom/android/server/job/controllers/TimeController;)V PLcom/android/server/job/controllers/TimeController$1;->onAlarm()V @@ -21644,6 +22345,7 @@ HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getLocat HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getLocationPowerSaveModeHelper()Lcom/android/server/location/injector/LocationPowerSaveModeHelper; HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getLocationSettings()Lcom/android/server/location/settings/LocationSettings; HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getLocationUsageLogger()Lcom/android/server/location/injector/LocationUsageLogger; +HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getPackageResetHelper()Lcom/android/server/location/injector/PackageResetHelper; HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getScreenInteractiveHelper()Lcom/android/server/location/injector/ScreenInteractiveHelper; HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getSettingsHelper()Lcom/android/server/location/injector/SettingsHelper; HSPLcom/android/server/location/LocationManagerService$SystemInjector;->getUserInfoHelper()Lcom/android/server/location/injector/UserInfoHelper; @@ -21697,6 +22399,7 @@ HSPLcom/android/server/location/LocationManagerService;->registerLocationListene HPLcom/android/server/location/LocationManagerService;->registerLocationPendingIntent(Ljava/lang/String;Landroid/location/LocationRequest;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/location/LocationManagerService;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V PLcom/android/server/location/LocationManagerService;->removeProviderRequestListener(Landroid/location/provider/IProviderRequestListener;)V +PLcom/android/server/location/LocationManagerService;->setExtraLocationControllerPackage(Ljava/lang/String;)V HPLcom/android/server/location/LocationManagerService;->setExtraLocationControllerPackageEnabled(Z)V PLcom/android/server/location/LocationManagerService;->unregisterGnssNmeaCallback(Landroid/location/IGnssNmeaListener;)V PLcom/android/server/location/LocationManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V @@ -21885,6 +22588,7 @@ HPLcom/android/server/location/contexthub/ContextHubServiceUtil;->createNanoAppM HPLcom/android/server/location/contexthub/ContextHubServiceUtil;->createNanoAppStateList([Landroid/hardware/contexthub/NanoappInfo;)Ljava/util/List;+]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/location/contexthub/ContextHubServiceUtil;->createPrimitiveIntArray(Ljava/util/Collection;)[I PLcom/android/server/location/contexthub/ContextHubServiceUtil;->formatDateFromTimestamp(J)Ljava/lang/String; +PLcom/android/server/location/contexthub/ContextHubServiceUtil;->toTransactionResult(I)I PLcom/android/server/location/contexthub/ContextHubStatsLog;->write(IIJI)V HSPLcom/android/server/location/contexthub/ContextHubStatsLog;->write(IJI)V HSPLcom/android/server/location/contexthub/ContextHubTransactionManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/contexthub/ContextHubTransactionManager;Lcom/android/server/location/contexthub/ContextHubServiceTransaction;)V @@ -21910,7 +22614,7 @@ HPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAi HPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V HPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback$$ExternalSyntheticLambda2;->run()V HPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->$r8$lambda$E4dlty-EGXAtfu-deYq1IsLL57w(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Ljava/util/List;)V -PLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->$r8$lambda$huf68dnVwiT5HHBlvvekf3dB_cI(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V +HPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->$r8$lambda$huf68dnVwiT5HHBlvvekf3dB_cI(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V HSPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;-><init>(Lcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl;ILcom/android/server/location/contexthub/IContextHubWrapper$ICallback;)V HPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->handleContextHubMessage(Landroid/hardware/contexthub/ContextHubMessage;[Ljava/lang/String;)V HPLcom/android/server/location/contexthub/IContextHubWrapper$ContextHubWrapperAidl$ContextHubAidlCallback;->handleNanoappInfo([Landroid/hardware/contexthub/NanoappInfo;)V @@ -22142,6 +22846,7 @@ HSPLcom/android/server/location/gnss/GnssConfiguration;->-$$Nest$smnative_set_su HSPLcom/android/server/location/gnss/GnssConfiguration;->-$$Nest$smnative_set_supl_version(I)Z HSPLcom/android/server/location/gnss/GnssConfiguration;-><clinit>()V HSPLcom/android/server/location/gnss/GnssConfiguration;-><init>(Landroid/content/Context;)V +PLcom/android/server/location/gnss/GnssConfiguration;->getBooleanConfig(Ljava/lang/String;Z)Z HSPLcom/android/server/location/gnss/GnssConfiguration;->getC2KHost()Ljava/lang/String; HSPLcom/android/server/location/gnss/GnssConfiguration;->getC2KPort(I)I HSPLcom/android/server/location/gnss/GnssConfiguration;->getEsExtensionSec()I @@ -22155,12 +22860,13 @@ HSPLcom/android/server/location/gnss/GnssConfiguration;->getSuplEs(I)I HSPLcom/android/server/location/gnss/GnssConfiguration;->getSuplHost()Ljava/lang/String; HSPLcom/android/server/location/gnss/GnssConfiguration;->getSuplMode(I)I HSPLcom/android/server/location/gnss/GnssConfiguration;->getSuplPort(I)I +PLcom/android/server/location/gnss/GnssConfiguration;->isActiveSimEmergencySuplEnabled()Z HSPLcom/android/server/location/gnss/GnssConfiguration;->isConfigEsExtensionSecSupported(Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;)Z HSPLcom/android/server/location/gnss/GnssConfiguration;->isConfigGpsLockSupported(Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;)Z HSPLcom/android/server/location/gnss/GnssConfiguration;->isConfigSuplEsSupported(Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;)Z PLcom/android/server/location/gnss/GnssConfiguration;->isLongTermPsdsServerConfigured()Z HSPLcom/android/server/location/gnss/GnssConfiguration;->isSimAbsent(Landroid/content/Context;)Z -HSPLcom/android/server/location/gnss/GnssConfiguration;->loadPropertiesFromCarrierConfig(ZI)V +HSPLcom/android/server/location/gnss/GnssConfiguration;->loadPropertiesFromCarrierConfig(ZI)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/telephony/CarrierConfigManager;Landroid/telephony/CarrierConfigManager;]Ljava/lang/Object;Ljava/lang/Integer;,Ljava/lang/Boolean;]Ljava/util/Properties;Ljava/util/Properties;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/BaseBundle;Landroid/os/PersistableBundle;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/MapCollections$KeySet; HSPLcom/android/server/location/gnss/GnssConfiguration;->loadPropertiesFromGpsDebugConfig(Ljava/util/Properties;)V HSPLcom/android/server/location/gnss/GnssConfiguration;->logConfigurations()V HSPLcom/android/server/location/gnss/GnssConfiguration;->reloadGpsProperties()V @@ -22174,9 +22880,14 @@ PLcom/android/server/location/gnss/GnssGeofenceProxy;->isHardwareGeofenceSupport PLcom/android/server/location/gnss/GnssGeofenceProxy;->removeHardwareGeofence(I)Z HSPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda0;->onUserChanged(II)V +PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda10;-><init>(Ljava/lang/String;)V PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z HPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda11;-><init>(Ljava/lang/String;)V HPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda11;->test(Ljava/lang/Object;)Z +PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda12;-><init>(I)V +PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda12;->test(Ljava/lang/Object;)Z +PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda13;-><init>(Ljava/lang/String;)V +PLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z HSPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V HSPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V HSPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V @@ -22188,6 +22899,8 @@ HPLcom/android/server/location/gnss/GnssListenerMultiplexer$$ExternalSyntheticLa HSPLcom/android/server/location/gnss/GnssListenerMultiplexer$1;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V PLcom/android/server/location/gnss/GnssListenerMultiplexer$1;->onLocationPermissionsChanged(I)V PLcom/android/server/location/gnss/GnssListenerMultiplexer$1;->onLocationPermissionsChanged(Ljava/lang/String;)V +PLcom/android/server/location/gnss/GnssListenerMultiplexer$2;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;)V +PLcom/android/server/location/gnss/GnssListenerMultiplexer$2;->onPackageReset(Ljava/lang/String;)V HPLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;-><init>(Lcom/android/server/location/gnss/GnssListenerMultiplexer;Ljava/lang/Object;Landroid/location/util/identity/CallerIdentity;Landroid/os/IInterface;)V PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getBinderFromKey(Landroid/os/IBinder;)Landroid/os/IBinder; HPLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->getBinderFromKey(Ljava/lang/Object;)Landroid/os/IBinder; @@ -22204,13 +22917,15 @@ PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistrat HPLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->onLocationPermissionsChanged(Ljava/lang/String;)Z HPLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->onRegister()V PLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;->toString()Ljava/lang/String; +PLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$518piq3sc87jKKbXrk0qudlLShw(Ljava/lang/String;Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$5cBO4A3p1nQ6a5ehfSezDbkW16c(IZLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z -PLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$D0snTG2JOzVWN9aUQx5r-qo2MkU(Lcom/android/server/location/gnss/GnssListenerMultiplexer;IZ)V +HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$D0snTG2JOzVWN9aUQx5r-qo2MkU(Lcom/android/server/location/gnss/GnssListenerMultiplexer;IZ)V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$GiVpExniosYFEYhFiZMi3GOu8kw(Lcom/android/server/location/gnss/GnssListenerMultiplexer;II)V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$kMZ3FcWC1FluWIQseCu4kPvs1yQ(ILcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->$r8$lambda$le8Y9WAN_aBeMi7lhbyD36qW87A(Ljava/lang/String;Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z PLcom/android/server/location/gnss/GnssListenerMultiplexer;->-$$Nest$monLocationPermissionsChanged(Lcom/android/server/location/gnss/GnssListenerMultiplexer;I)V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->-$$Nest$monLocationPermissionsChanged(Lcom/android/server/location/gnss/GnssListenerMultiplexer;Ljava/lang/String;)V +PLcom/android/server/location/gnss/GnssListenerMultiplexer;->-$$Nest$monPackageReset(Lcom/android/server/location/gnss/GnssListenerMultiplexer;Ljava/lang/String;)V HSPLcom/android/server/location/gnss/GnssListenerMultiplexer;-><init>(Lcom/android/server/location/injector/Injector;)V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->addListener(Landroid/location/util/identity/CallerIdentity;Landroid/os/IInterface;)V HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->addListener(Ljava/lang/Object;Landroid/location/util/identity/CallerIdentity;Landroid/os/IInterface;)V @@ -22224,10 +22939,12 @@ PLcom/android/server/location/gnss/GnssListenerMultiplexer;->isSupported()Z HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->lambda$onAppForegroundChanged$6(IZLcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->lambda$onLocationPermissionsChanged$4(Ljava/lang/String;Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z PLcom/android/server/location/gnss/GnssListenerMultiplexer;->lambda$onLocationPermissionsChanged$5(ILcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z +PLcom/android/server/location/gnss/GnssListenerMultiplexer;->lambda$onPackageReset$7(Ljava/lang/String;Lcom/android/server/location/gnss/GnssListenerMultiplexer$GnssListenerRegistration;)Z HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->mergeRegistrations(Ljava/util/Collection;)Ljava/lang/Object; HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->onAppForegroundChanged(IZ)V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onLocationPermissionsChanged(I)V HPLcom/android/server/location/gnss/GnssListenerMultiplexer;->onLocationPermissionsChanged(Ljava/lang/String;)V +PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onPackageReset(Ljava/lang/String;)V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onRegister()V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onUnregister()V PLcom/android/server/location/gnss/GnssListenerMultiplexer;->onUserChanged(II)V @@ -22235,7 +22952,7 @@ PLcom/android/server/location/gnss/GnssListenerMultiplexer;->removeListener(Land PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda0;->run()V HPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;Landroid/location/GnssStatus;)V -PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda10;->run()V +HPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda10;->run()V HSPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V HSPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V HSPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V @@ -22249,15 +22966,18 @@ PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda18;-><init>()V PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda18;->onLocationChanged(Landroid/location/Location;)V HPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;Ljava/lang/Runnable;)V -PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda20;->run()V +HPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda20;->run()V HSPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;[I[I)V HSPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda21;->run()V +PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda23;->run()V +PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I[B)V +PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda24;->run()V PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda25;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda25;->run()V PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;I)V PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda26;->run()V -PLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;ZLandroid/location/Location;)V +HPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;ZLandroid/location/Location;)V HPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda4;->run()V HSPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/location/gnss/GnssLocationProvider;)V HSPLcom/android/server/location/gnss/GnssLocationProvider$$ExternalSyntheticLambda6;->run()V @@ -22393,7 +23113,7 @@ HPLcom/android/server/location/gnss/GnssManagerService;->registerGnssStatusCallb PLcom/android/server/location/gnss/GnssManagerService;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V PLcom/android/server/location/gnss/GnssManagerService;->unregisterGnssNmeaCallback(Landroid/location/IGnssNmeaListener;)V PLcom/android/server/location/gnss/GnssManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V -PLcom/android/server/location/gnss/GnssMeasurementsProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/GnssMeasurementsProvider;Landroid/location/GnssMeasurementsEvent;)V +HPLcom/android/server/location/gnss/GnssMeasurementsProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/gnss/GnssMeasurementsProvider;Landroid/location/GnssMeasurementsEvent;)V HPLcom/android/server/location/gnss/GnssMeasurementsProvider$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/location/gnss/GnssMeasurementsProvider$$ExternalSyntheticLambda1;-><init>(Landroid/location/GnssMeasurementsEvent;)V HPLcom/android/server/location/gnss/GnssMeasurementsProvider$$ExternalSyntheticLambda1;->operate(Ljava/lang/Object;)V @@ -22543,6 +23263,7 @@ PLcom/android/server/location/gnss/GnssNmeaProvider;->unregisterWithService()V PLcom/android/server/location/gnss/GnssPositionMode;-><init>(IIIIIZ)V PLcom/android/server/location/gnss/GnssPositionMode;->equals(Ljava/lang/Object;)Z PLcom/android/server/location/gnss/GnssPowerStats;-><init>(IJDDDDDD[D)V +PLcom/android/server/location/gnss/GnssPowerStats;->dump(Ljava/io/FileDescriptor;Landroid/util/IndentingPrintWriter;[Ljava/lang/String;Landroid/location/GnssCapabilities;)V PLcom/android/server/location/gnss/GnssPowerStats;->getElapsedRealtimeUncertaintyNanos()D PLcom/android/server/location/gnss/GnssPowerStats;->getMultibandAcquisitionModeEnergyMilliJoule()D PLcom/android/server/location/gnss/GnssPowerStats;->getMultibandTrackingModeEnergyMilliJoule()D @@ -22550,6 +23271,8 @@ PLcom/android/server/location/gnss/GnssPowerStats;->getOtherModesEnergyMilliJoul PLcom/android/server/location/gnss/GnssPowerStats;->getSinglebandAcquisitionModeEnergyMilliJoule()D PLcom/android/server/location/gnss/GnssPowerStats;->getSinglebandTrackingModeEnergyMilliJoule()D PLcom/android/server/location/gnss/GnssPowerStats;->getTotalEnergyMilliJoule()D +PLcom/android/server/location/gnss/GnssPowerStats;->hasElapsedRealtimeNanos()Z +PLcom/android/server/location/gnss/GnssPowerStats;->hasElapsedRealtimeUncertaintyNanos()Z PLcom/android/server/location/gnss/GnssPsdsDownloader;-><clinit>()V HPLcom/android/server/location/gnss/GnssPsdsDownloader;-><init>(Ljava/util/Properties;)V HPLcom/android/server/location/gnss/GnssPsdsDownloader;->doDownload(Ljava/lang/String;)[B @@ -22933,6 +23656,10 @@ HSPLcom/android/server/location/injector/LocationUsageLogger;->categorizeActivit HSPLcom/android/server/location/injector/LocationUsageLogger;->getCallbackType(IZZ)I HSPLcom/android/server/location/injector/LocationUsageLogger;->hitApiUsageLogCap()Z HSPLcom/android/server/location/injector/LocationUsageLogger;->logLocationApiUsage(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/location/LocationRequest;ZZLandroid/location/Geofence;Z)V +HSPLcom/android/server/location/injector/PackageResetHelper;-><init>()V +PLcom/android/server/location/injector/PackageResetHelper;->notifyPackageReset(Ljava/lang/String;)V +PLcom/android/server/location/injector/PackageResetHelper;->register(Lcom/android/server/location/injector/PackageResetHelper$Responder;)V +PLcom/android/server/location/injector/PackageResetHelper;->unregister(Lcom/android/server/location/injector/PackageResetHelper$Responder;)V HSPLcom/android/server/location/injector/ScreenInteractiveHelper;-><init>()V HSPLcom/android/server/location/injector/ScreenInteractiveHelper;->addListener(Lcom/android/server/location/injector/ScreenInteractiveHelper$ScreenInteractiveChangedListener;)V HPLcom/android/server/location/injector/ScreenInteractiveHelper;->notifyScreenInteractiveChanged(Z)V @@ -23004,6 +23731,15 @@ PLcom/android/server/location/injector/SystemLocationPowerSaveModeHelper;->accep HPLcom/android/server/location/injector/SystemLocationPowerSaveModeHelper;->getLocationPowerSaveMode()I PLcom/android/server/location/injector/SystemLocationPowerSaveModeHelper;->lambda$accept$0(I)V HSPLcom/android/server/location/injector/SystemLocationPowerSaveModeHelper;->onSystemReady()V +PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver;Ljava/lang/String;)V +PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver$$ExternalSyntheticLambda1;->run()V +PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;->$r8$lambda$tOkhUVoPhzL8C3Yj4vF_ARWPM-M(Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver;Ljava/lang/String;)V +PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;-><init>(Lcom/android/server/location/injector/SystemPackageResetHelper;)V +PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;-><init>(Lcom/android/server/location/injector/SystemPackageResetHelper;Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver-IA;)V +PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;->lambda$onReceive$1(Ljava/lang/String;)V +PLcom/android/server/location/injector/SystemPackageResetHelper$Receiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +HSPLcom/android/server/location/injector/SystemPackageResetHelper;-><init>(Landroid/content/Context;)V +PLcom/android/server/location/injector/SystemPackageResetHelper;->onRegister()V HSPLcom/android/server/location/injector/SystemScreenInteractiveHelper$1;-><init>(Lcom/android/server/location/injector/SystemScreenInteractiveHelper;)V HPLcom/android/server/location/injector/SystemScreenInteractiveHelper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/location/injector/SystemScreenInteractiveHelper;-><init>(Landroid/content/Context;)V @@ -23093,7 +23829,7 @@ HPLcom/android/server/location/listeners/BinderListenerRegistration;->onRegister HPLcom/android/server/location/listeners/BinderListenerRegistration;->onUnregister()V HSPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;-><init>(Lcom/android/server/location/listeners/ListenerMultiplexer;)V HSPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->acquire()Lcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard; -HSPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->close()V+]Ljava/util/Map$Entry;Ljava/util/AbstractMap$SimpleImmutableEntry;]Lcom/android/server/location/listeners/ListenerMultiplexer;Lcom/android/server/location/provider/LocationProviderManager;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;Lcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer; +HSPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->close()V+]Ljava/util/Map$Entry;Ljava/util/AbstractMap$SimpleImmutableEntry;]Lcom/android/server/location/listeners/ListenerMultiplexer;Lcom/android/server/location/provider/LocationProviderManager;,Lcom/android/server/location/provider/PassiveLocationProviderManager;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;Lcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer; HSPLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->isReentrant()Z PLcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;->markForRemoval(Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V HSPLcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer;-><init>(Lcom/android/server/location/listeners/ListenerMultiplexer;)V @@ -23105,7 +23841,7 @@ PLcom/android/server/location/listeners/ListenerMultiplexer;->-$$Nest$fgetmRegis PLcom/android/server/location/listeners/ListenerMultiplexer;->-$$Nest$fgetmUpdateServiceBuffer(Lcom/android/server/location/listeners/ListenerMultiplexer;)Lcom/android/server/location/listeners/ListenerMultiplexer$UpdateServiceBuffer; HSPLcom/android/server/location/listeners/ListenerMultiplexer;-><init>()V HPLcom/android/server/location/listeners/ListenerMultiplexer;->deliverToListeners(Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;)V -HPLcom/android/server/location/listeners/ListenerMultiplexer;->deliverToListeners(Ljava/util/function/Function;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/Function;Lcom/android/server/location/gnss/GnssMeasurementsProvider$$ExternalSyntheticLambda0;,Lcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda26;,Lcom/android/server/location/gnss/GnssStatusProvider$$ExternalSyntheticLambda3;,Lcom/android/server/location/gnss/GnssNmeaProvider$1;,Lcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda19;]Lcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;Lcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;]Lcom/android/server/location/listeners/ListenerRegistration;megamorphic_types +HPLcom/android/server/location/listeners/ListenerMultiplexer;->deliverToListeners(Ljava/util/function/Function;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/Function;Lcom/android/server/location/gnss/GnssMeasurementsProvider$$ExternalSyntheticLambda0;,Lcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda26;,Lcom/android/server/location/gnss/GnssStatusProvider$$ExternalSyntheticLambda3;,Lcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda19;,Lcom/android/server/location/gnss/GnssNmeaProvider$1;]Lcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;Lcom/android/server/location/listeners/ListenerMultiplexer$ReentrancyGuard;]Lcom/android/server/location/listeners/ListenerRegistration;megamorphic_types PLcom/android/server/location/listeners/ListenerMultiplexer;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/location/listeners/ListenerMultiplexer;->getServiceState()Ljava/lang/String; PLcom/android/server/location/listeners/ListenerMultiplexer;->onActive()V @@ -23125,6 +23861,7 @@ HPLcom/android/server/location/listeners/ListenerMultiplexer;->updateService()V+ HPLcom/android/server/location/listeners/ListenerRegistration$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/location/listeners/ListenerRegistration;)V HPLcom/android/server/location/listeners/ListenerRegistration$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; HPLcom/android/server/location/listeners/ListenerRegistration$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/location/listeners/ListenerRegistration;)V +PLcom/android/server/location/listeners/ListenerRegistration$$ExternalSyntheticLambda1;->onFailure(Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Ljava/lang/Exception;)V HPLcom/android/server/location/listeners/ListenerRegistration;->$r8$lambda$xOIhIOzzo5r2z8R0vVp6VpGdQAg(Lcom/android/server/location/listeners/ListenerRegistration;)Ljava/lang/Object; HSPLcom/android/server/location/listeners/ListenerRegistration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;)V PLcom/android/server/location/listeners/ListenerRegistration;->equals(Ljava/lang/Object;)Z @@ -23228,7 +23965,10 @@ HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSynthet PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda20;-><init>()V PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda21;->test(Ljava/lang/Object;)Z +PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda23;-><init>()V +PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda25;->test(Ljava/lang/Object;)Z +PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda26;-><init>(Ljava/lang/String;)V PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda26;->test(Ljava/lang/Object;)Z HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda27;-><init>(Ljava/lang/String;)V HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda27;->test(Ljava/lang/Object;)Z @@ -23236,8 +23976,12 @@ HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSynthe HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda28;->test(Ljava/lang/Object;)Z HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/provider/LocationProviderManager$StateChangedListener;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda29;->run()V -PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda30;->test(Ljava/lang/Object;)Z -PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda31;->test(Ljava/lang/Object;)Z +HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda30;-><init>(IZ)V +HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda30;->test(Ljava/lang/Object;)Z +PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda31;-><init>(Ljava/lang/String;)V +HPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda31;->test(Ljava/lang/Object;)Z +PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda33;-><init>(I)V +PLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda33;->test(Ljava/lang/Object;)Z HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda3;->onUserChanged(II)V HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V @@ -23251,6 +23995,10 @@ HSPLcom/android/server/location/provider/LocationProviderManager$$ExternalSynthe HSPLcom/android/server/location/provider/LocationProviderManager$1;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V PLcom/android/server/location/provider/LocationProviderManager$1;->onLocationPermissionsChanged(I)V HSPLcom/android/server/location/provider/LocationProviderManager$1;->onLocationPermissionsChanged(Ljava/lang/String;)V +HSPLcom/android/server/location/provider/LocationProviderManager$2;-><init>(Lcom/android/server/location/provider/LocationProviderManager;)V +PLcom/android/server/location/provider/LocationProviderManager$2;->onPackageReset(Ljava/lang/String;)V +PLcom/android/server/location/provider/LocationProviderManager$3;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/provider/ProviderRequest;)V +PLcom/android/server/location/provider/LocationProviderManager$3;->onAlarm()V HSPLcom/android/server/location/provider/LocationProviderManager$ExternalWakeLockReleaser;-><init>(Landroid/location/util/identity/CallerIdentity;Landroid/os/PowerManager$WakeLock;)V HPLcom/android/server/location/provider/LocationProviderManager$ExternalWakeLockReleaser;->sendResult(Landroid/os/Bundle;)V PLcom/android/server/location/provider/LocationProviderManager$GetCurrentLocationListenerRegistration$1;-><init>(Lcom/android/server/location/provider/LocationProviderManager$GetCurrentLocationListenerRegistration;Landroid/location/LocationResult;)V @@ -23275,7 +24023,9 @@ HPLcom/android/server/location/provider/LocationProviderManager$LastLocation;->s HPLcom/android/server/location/provider/LocationProviderManager$LastLocation;->setBypass(Landroid/location/Location;)V HSPLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;-><init>(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/LocationRequest;Landroid/location/util/identity/CallerIdentity;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;I)V PLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->binderDied()V +PLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->onOperationFailure(Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Ljava/lang/Exception;)V HSPLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->onRegister()V +PLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->onTransportFailure(Ljava/lang/Exception;)V HPLcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;->onUnregister()V HSPLcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;-><init>(Landroid/location/ILocationListener;)V HPLcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;->deliverOnLocationChanged(Landroid/location/LocationResult;Landroid/os/IRemoteCallback;)V+]Landroid/location/LocationResult;Landroid/location/LocationResult;]Landroid/location/ILocationListener;Landroid/location/ILocationListener$Stub$Proxy;,Landroid/location/LocationManager$LocationListenerTransport; @@ -23291,12 +24041,12 @@ HSPLcom/android/server/location/provider/LocationProviderManager$LocationRegistr HSPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$$ExternalSyntheticLambda1;->operate(Ljava/lang/Object;)V HSPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;)V HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;)V -HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1;->test(Landroid/location/Location;)Z+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;]Landroid/location/Location;Landroid/location/Location;]Landroid/location/LocationRequest;Landroid/location/LocationRequest; +HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1;->test(Landroid/location/Location;)Z+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;]Landroid/location/Location;Landroid/location/Location;]Landroid/location/LocationRequest;Landroid/location/LocationRequest; HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1;->test(Ljava/lang/Object;)Z+]Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1;Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration$1; HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;-><init>(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;Landroid/location/LocationResult;Z)V -HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->onPostExecute(Z)V+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;]Lcom/android/server/location/listeners/RemovableListenerRegistration;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;]Landroid/location/LocationRequest;Landroid/location/LocationRequest; -HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->onPreExecute()V+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;]Landroid/location/LocationResult;Landroid/location/LocationResult;]Landroid/os/PowerManager$WakeLock;Landroid/os/PowerManager$WakeLock; -HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->operate(Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;)V+]Lcom/android/server/location/eventlog/LocationEventLog;Lcom/android/server/location/eventlog/LocationEventLog;]Landroid/location/LocationResult;Landroid/location/LocationResult;]Landroid/location/util/identity/CallerIdentity;Landroid/location/util/identity/CallerIdentity;]Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;,Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentTransport;]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration; +HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->onPostExecute(Z)V+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;]Lcom/android/server/location/listeners/RemovableListenerRegistration;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;]Landroid/location/LocationRequest;Landroid/location/LocationRequest; +HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->onPreExecute()V+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;]Landroid/location/LocationResult;Landroid/location/LocationResult;]Landroid/os/PowerManager$WakeLock;Landroid/os/PowerManager$WakeLock; +HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->operate(Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;)V+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration;]Lcom/android/server/location/eventlog/LocationEventLog;Lcom/android/server/location/eventlog/LocationEventLog;]Landroid/location/LocationResult;Landroid/location/LocationResult;]Landroid/location/util/identity/CallerIdentity;Landroid/location/util/identity/CallerIdentity;]Lcom/android/server/location/provider/LocationProviderManager$LocationTransport;Lcom/android/server/location/provider/LocationProviderManager$LocationListenerTransport;,Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentTransport; HPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;->operate(Ljava/lang/Object;)V+]Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2;Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration$2; HSPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->$r8$lambda$ScP6Oxi2FD4T3WjF6BPpRCIPC1c(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;)Lcom/android/server/location/provider/LocationProviderManager$ProviderTransport; HSPLcom/android/server/location/provider/LocationProviderManager$LocationRegistration;->$r8$lambda$raISASpbz1Irgkntjc-CrAblUfs(Lcom/android/server/location/provider/LocationProviderManager$LocationRegistration;ZLcom/android/server/location/provider/LocationProviderManager$ProviderTransport;)V @@ -23340,12 +24090,18 @@ HPLcom/android/server/location/provider/LocationProviderManager$Registration;->s PLcom/android/server/location/provider/LocationProviderManager$Registration;->toString()Ljava/lang/String; PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$93NUqXTfUSE5tZtsl_LWgfbHlOc(Lcom/android/server/location/provider/LocationProviderManager;)V PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$CoyDDJvsDAVdhjzGX-_Q8Galtqc(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/ILocationCallback;Lcom/android/server/location/provider/LocationProviderManager$GetCurrentLocationListenerRegistration;)V +PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$FC2urllOKKv1_fE87f2pdRVTdA0(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z +HSPLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$J9m9nWcPAjJiADStZRTnngu73-Y(Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/provider/LocationProviderManager$StateChangedListener;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$K8qgsiqOpZVkMqpfq_4DB177nmg(Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z HSPLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$RYed_vtaZnnYqxlvwQkjiVZutKw(Lcom/android/server/location/provider/LocationProviderManager;II)V PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$U_hR6U953RiwSglLYSxmeZegZ40(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/provider/ProviderRequest;)V PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$f98932VnthUdO_ybXhVTsvc_Ww0(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z +PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$fGZnX5lK5rYY0AGlEt3QAvn8lDI(Lcom/android/server/location/provider/LocationProviderManager;[Landroid/location/LocationManagerInternal$ProviderEnabledListener;IZ)V PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$gx0iV2d4Hs92jTtc8DG3AG6vEC4(Lcom/android/server/location/provider/LocationProviderManager;I)V HSPLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$h4yxqFMnHPWXkTr04uDEnkKXNeQ(Lcom/android/server/location/provider/LocationProviderManager;IZ)V +HPLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$k0eBDH-twsNeF0Qm-OsdapOk94c(Landroid/location/LocationResult;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation; +PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$ksTGtgFuRWIIAWvVINV0sWHrjmE(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z +HPLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$kzPYL5xDs-S-SSDHjCOt9vDwMiQ(Lcom/android/server/location/provider/LocationProviderManager;Landroid/location/Location;)Z PLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$tOu2N67zuUYfUXiymWsHUx8mz2o(Lcom/android/server/location/provider/LocationProviderManager;Z)V HSPLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$xYl1Cn4QeWr4LzIG-AiYMSyjCZM(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z HSPLcom/android/server/location/provider/LocationProviderManager;->$r8$lambda$zsTN8daznMGqhsg_3Arg9AO-KFQ(IZLcom/android/server/location/provider/LocationProviderManager$Registration;)Z @@ -23353,6 +24109,7 @@ PLcom/android/server/location/provider/LocationProviderManager;->-$$Nest$fgetmDe PLcom/android/server/location/provider/LocationProviderManager;->-$$Nest$fputmDelayedRegister(Lcom/android/server/location/provider/LocationProviderManager;Landroid/app/AlarmManager$OnAlarmListener;)V PLcom/android/server/location/provider/LocationProviderManager;->-$$Nest$monLocationPermissionsChanged(Lcom/android/server/location/provider/LocationProviderManager;I)V HSPLcom/android/server/location/provider/LocationProviderManager;->-$$Nest$monLocationPermissionsChanged(Lcom/android/server/location/provider/LocationProviderManager;Ljava/lang/String;)V +PLcom/android/server/location/provider/LocationProviderManager;->-$$Nest$monPackageReset(Lcom/android/server/location/provider/LocationProviderManager;Ljava/lang/String;)V HSPLcom/android/server/location/provider/LocationProviderManager;-><init>(Landroid/content/Context;Lcom/android/server/location/injector/Injector;Ljava/lang/String;Lcom/android/server/location/provider/PassiveLocationProviderManager;)V HSPLcom/android/server/location/provider/LocationProviderManager;->access$000(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object; HPLcom/android/server/location/provider/LocationProviderManager;->access$100(Lcom/android/server/location/provider/LocationProviderManager;)Ljava/lang/Object; @@ -23388,10 +24145,16 @@ HSPLcom/android/server/location/provider/LocationProviderManager;->isActive(Lcom HSPLcom/android/server/location/provider/LocationProviderManager;->isActive(ZLandroid/location/util/identity/CallerIdentity;)Z HSPLcom/android/server/location/provider/LocationProviderManager;->isEnabled(I)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray; PLcom/android/server/location/provider/LocationProviderManager;->lambda$getCurrentLocation$2(Landroid/location/ILocationCallback;Lcom/android/server/location/provider/LocationProviderManager$GetCurrentLocationListenerRegistration;)V -HSPLcom/android/server/location/provider/LocationProviderManager;->lambda$onAppForegroundChanged$10(IZLcom/android/server/location/provider/LocationProviderManager$Registration;)Z +HSPLcom/android/server/location/provider/LocationProviderManager;->lambda$onAppForegroundChanged$10(IZLcom/android/server/location/provider/LocationProviderManager$Registration;)Z+]Lcom/android/server/location/provider/LocationProviderManager$Registration;Lcom/android/server/location/provider/LocationProviderManager$LocationPendingIntentRegistration;,Lcom/android/server/location/provider/LocationProviderManager$LocationListenerRegistration; +PLcom/android/server/location/provider/LocationProviderManager;->lambda$onEnabledChanged$19([Landroid/location/LocationManagerInternal$ProviderEnabledListener;IZ)V +PLcom/android/server/location/provider/LocationProviderManager;->lambda$onEnabledChanged$20(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z HSPLcom/android/server/location/provider/LocationProviderManager;->lambda$onLocationPermissionsChanged$12(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z PLcom/android/server/location/provider/LocationProviderManager;->lambda$onLocationPermissionsChanged$13(ILcom/android/server/location/provider/LocationProviderManager$Registration;)Z PLcom/android/server/location/provider/LocationProviderManager;->lambda$onLocationPowerSaveModeChanged$9(Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z +PLcom/android/server/location/provider/LocationProviderManager;->lambda$onPackageReset$14(Ljava/lang/String;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Z +HPLcom/android/server/location/provider/LocationProviderManager;->lambda$onReportLocation$17(Landroid/location/Location;)Z +HPLcom/android/server/location/provider/LocationProviderManager;->lambda$onReportLocation$18(Landroid/location/LocationResult;Lcom/android/server/location/provider/LocationProviderManager$Registration;)Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation; +HSPLcom/android/server/location/provider/LocationProviderManager;->lambda$onStateChanged$16(Lcom/android/server/location/provider/LocationProviderManager$StateChangedListener;Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V HPLcom/android/server/location/provider/LocationProviderManager;->lambda$setProviderRequest$5(Landroid/location/provider/ProviderRequest;)V HPLcom/android/server/location/provider/LocationProviderManager;->mergeRegistrations(Ljava/util/Collection;)Landroid/location/provider/ProviderRequest; PLcom/android/server/location/provider/LocationProviderManager;->mergeRegistrations(Ljava/util/Collection;)Ljava/lang/Object; @@ -23401,6 +24164,7 @@ PLcom/android/server/location/provider/LocationProviderManager;->onIgnoreSetting PLcom/android/server/location/provider/LocationProviderManager;->onLocationPermissionsChanged(I)V HSPLcom/android/server/location/provider/LocationProviderManager;->onLocationPermissionsChanged(Ljava/lang/String;)V PLcom/android/server/location/provider/LocationProviderManager;->onLocationPowerSaveModeChanged(I)V +PLcom/android/server/location/provider/LocationProviderManager;->onPackageReset(Ljava/lang/String;)V HSPLcom/android/server/location/provider/LocationProviderManager;->onRegister()V HSPLcom/android/server/location/provider/LocationProviderManager;->onRegistrationAdded(Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V HSPLcom/android/server/location/provider/LocationProviderManager;->onRegistrationAdded(Ljava/lang/Object;Lcom/android/server/location/provider/LocationProviderManager$Registration;)V @@ -23408,7 +24172,7 @@ PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationR HPLcom/android/server/location/provider/LocationProviderManager;->onRegistrationRemoved(Ljava/lang/Object;Lcom/android/server/location/provider/LocationProviderManager$Registration;)V PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationReplaced(Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;Ljava/lang/Object;Lcom/android/server/location/listeners/ListenerRegistration;)V PLcom/android/server/location/provider/LocationProviderManager;->onRegistrationReplaced(Ljava/lang/Object;Lcom/android/server/location/provider/LocationProviderManager$Registration;Ljava/lang/Object;Lcom/android/server/location/provider/LocationProviderManager$Registration;)V -HPLcom/android/server/location/provider/LocationProviderManager;->onReportLocation(Landroid/location/LocationResult;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/location/eventlog/LocationEventLog;Lcom/android/server/location/eventlog/LocationEventLog;]Lcom/android/server/location/listeners/ListenerMultiplexer;Lcom/android/server/location/provider/PassiveLocationProviderManager;,Lcom/android/server/location/provider/LocationProviderManager;]Landroid/location/Location;Landroid/location/Location;]Landroid/location/LocationResult;Landroid/location/LocationResult;]Lcom/android/server/location/provider/PassiveLocationProviderManager;Lcom/android/server/location/provider/PassiveLocationProviderManager;]Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/provider/PassiveLocationProviderManager;,Lcom/android/server/location/provider/LocationProviderManager; +HPLcom/android/server/location/provider/LocationProviderManager;->onReportLocation(Landroid/location/LocationResult;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/location/eventlog/LocationEventLog;Lcom/android/server/location/eventlog/LocationEventLog;]Landroid/location/Location;Landroid/location/Location;]Lcom/android/server/location/listeners/ListenerMultiplexer;Lcom/android/server/location/provider/PassiveLocationProviderManager;,Lcom/android/server/location/provider/LocationProviderManager;]Landroid/location/LocationResult;Landroid/location/LocationResult;]Lcom/android/server/location/provider/PassiveLocationProviderManager;Lcom/android/server/location/provider/PassiveLocationProviderManager;]Lcom/android/server/location/provider/LocationProviderManager;Lcom/android/server/location/provider/PassiveLocationProviderManager;,Lcom/android/server/location/provider/LocationProviderManager; PLcom/android/server/location/provider/LocationProviderManager;->onScreenInteractiveChanged(Z)V HSPLcom/android/server/location/provider/LocationProviderManager;->onStateChanged(Lcom/android/server/location/provider/AbstractLocationProvider$State;Lcom/android/server/location/provider/AbstractLocationProvider$State;)V PLcom/android/server/location/provider/LocationProviderManager;->onUnregister()V @@ -23585,12 +24349,13 @@ PLcom/android/server/locksettings/LockSettingsService$LocalService;->getUserPass PLcom/android/server/locksettings/LockSettingsService$LocalService;->isEscrowTokenActive(JI)Z PLcom/android/server/locksettings/LockSettingsService$LocalService;->prepareRebootEscrow()Z HSPLcom/android/server/locksettings/LockSettingsService$LocalService;->setRebootEscrowListener(Lcom/android/internal/widget/RebootEscrowListener;)V +PLcom/android/server/locksettings/LockSettingsService$LocalService;->unlockUserKeyIfUnsecured(I)V HSPLcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V HSPLcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks;-><init>(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks-IA;)V HSPLcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks;->isUserSecure(I)Z PLcom/android/server/locksettings/LockSettingsService$RebootEscrowCallbacks;->onRebootEscrowRestored(B[BI)V HSPLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;-><init>(Landroid/content/Context;)V -PLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->getStrongAuthForUser(I)I +HPLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->getStrongAuthForUser(I)I PLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->handleStrongAuthRequiredChanged(II)V HSPLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->register(Lcom/android/server/locksettings/LockSettingsStrongAuth;)V PLcom/android/server/locksettings/LockSettingsService;->$r8$lambda$3MGFLZ0gUYI0xrDQx0W4aHBnias()V @@ -23598,7 +24363,7 @@ PLcom/android/server/locksettings/LockSettingsService;->$r8$lambda$QbmXyks0lJOr2 HSPLcom/android/server/locksettings/LockSettingsService;->-$$Nest$fgetmContext(Lcom/android/server/locksettings/LockSettingsService;)Landroid/content/Context; HSPLcom/android/server/locksettings/LockSettingsService;->-$$Nest$fgetmRebootEscrowManager(Lcom/android/server/locksettings/LockSettingsService;)Lcom/android/server/locksettings/RebootEscrowManager; PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$fgetmStrongAuth(Lcom/android/server/locksettings/LockSettingsService;)Lcom/android/server/locksettings/LockSettingsStrongAuth; -PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mcleanupDataForReusedUserIdIfNecessary(Lcom/android/server/locksettings/LockSettingsService;I)V +PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mbootCompleted(Lcom/android/server/locksettings/LockSettingsService;)V PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mensureProfileKeystoreUnlocked(Lcom/android/server/locksettings/LockSettingsService;I)V PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mhideEncryptionNotification(Lcom/android/server/locksettings/LockSettingsService;Landroid/os/UserHandle;)V PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$misEscrowTokenActive(Lcom/android/server/locksettings/LockSettingsService;JI)Z @@ -23608,18 +24373,19 @@ HSPLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mloadEscrowDat PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mloadPasswordMetrics(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;I)Landroid/app/admin/PasswordMetrics; HSPLcom/android/server/locksettings/LockSettingsService;->-$$Nest$mmigrateOldDataAfterSystemReady(Lcom/android/server/locksettings/LockSettingsService;)V PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$monCredentialVerified(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;Landroid/app/admin/PasswordMetrics;I)V +PLcom/android/server/locksettings/LockSettingsService;->-$$Nest$munlockUserKeyIfUnsecured(Lcom/android/server/locksettings/LockSettingsService;I)V HSPLcom/android/server/locksettings/LockSettingsService;-><clinit>()V HSPLcom/android/server/locksettings/LockSettingsService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/locksettings/LockSettingsService;-><init>(Lcom/android/server/locksettings/LockSettingsService$Injector;)V PLcom/android/server/locksettings/LockSettingsService;->activateEscrowTokens(Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;I)V +PLcom/android/server/locksettings/LockSettingsService;->bootCompleted()V PLcom/android/server/locksettings/LockSettingsService;->callToAuthSecretIfNeeded(ILcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;)V PLcom/android/server/locksettings/LockSettingsService;->checkBiometricPermission()V PLcom/android/server/locksettings/LockSettingsService;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse; -HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordHavePermission()V +HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordHavePermission()V+]Landroid/content/Context;Landroid/app/ContextImpl; HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordReadPermission()V HSPLcom/android/server/locksettings/LockSettingsService;->checkReadPermission(Ljava/lang/String;I)V+]Landroid/content/Context;Landroid/app/ContextImpl; HSPLcom/android/server/locksettings/LockSettingsService;->checkWritePermission()V -PLcom/android/server/locksettings/LockSettingsService;->cleanupDataForReusedUserIdIfNecessary(I)V PLcom/android/server/locksettings/LockSettingsService;->credentialTypeToString(I)Ljava/lang/String; PLcom/android/server/locksettings/LockSettingsService;->disableEscrowTokenOnNonManagedDevicesIfNeeded(I)V PLcom/android/server/locksettings/LockSettingsService;->doVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;I)Lcom/android/internal/widget/VerifyCredentialResponse; @@ -23629,8 +24395,8 @@ PLcom/android/server/locksettings/LockSettingsService;->ensureProfileKeystoreUnl PLcom/android/server/locksettings/LockSettingsService;->generateKey(Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/server/locksettings/LockSettingsService;->getAuthSecretHal()V HSPLcom/android/server/locksettings/LockSettingsService;->getBoolean(Ljava/lang/String;ZI)Z -HSPLcom/android/server/locksettings/LockSettingsService;->getCredentialType(I)I -HSPLcom/android/server/locksettings/LockSettingsService;->getCredentialTypeInternal(I)I +HSPLcom/android/server/locksettings/LockSettingsService;->getCredentialType(I)I+]Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService; +HSPLcom/android/server/locksettings/LockSettingsService;->getCredentialTypeInternal(I)I+]Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService;]Lcom/android/server/locksettings/SyntheticPasswordManager;Lcom/android/server/locksettings/SyntheticPasswordManager; HSPLcom/android/server/locksettings/LockSettingsService;->getCurrentLskfBasedProtectorId(I)J+]Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService; PLcom/android/server/locksettings/LockSettingsService;->getDecryptedPasswordForTiedProfile(I)Lcom/android/internal/widget/LockscreenCredential; HSPLcom/android/server/locksettings/LockSettingsService;->getGateKeeperService()Landroid/service/gatekeeper/IGateKeeperService; @@ -23657,7 +24423,7 @@ PLcom/android/server/locksettings/LockSettingsService;->isCredentialSharableWith PLcom/android/server/locksettings/LockSettingsService;->isEscrowTokenActive(JI)Z PLcom/android/server/locksettings/LockSettingsService;->isProfileWithSeparatedLock(I)Z PLcom/android/server/locksettings/LockSettingsService;->isProfileWithUnifiedLock(I)Z -HSPLcom/android/server/locksettings/LockSettingsService;->isSyntheticPasswordBasedCredentialLocked(I)Z +HSPLcom/android/server/locksettings/LockSettingsService;->isSyntheticPasswordBasedCredentialLocked(I)Z+]Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService; PLcom/android/server/locksettings/LockSettingsService;->isUserKeyUnlocked(I)Z HSPLcom/android/server/locksettings/LockSettingsService;->isUserSecure(I)Z PLcom/android/server/locksettings/LockSettingsService;->lambda$scheduleGc$8()V @@ -23667,6 +24433,7 @@ PLcom/android/server/locksettings/LockSettingsService;->loadPasswordMetrics(Lcom HSPLcom/android/server/locksettings/LockSettingsService;->maybeShowEncryptionNotificationForUser(ILjava/lang/String;)V HSPLcom/android/server/locksettings/LockSettingsService;->migrateOldData()V HSPLcom/android/server/locksettings/LockSettingsService;->migrateOldDataAfterSystemReady()V +PLcom/android/server/locksettings/LockSettingsService;->migrateUserToSpWithBoundCeKeyLocked(I)V PLcom/android/server/locksettings/LockSettingsService;->onCleanupUser(I)V PLcom/android/server/locksettings/LockSettingsService;->onCredentialVerified(Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;Landroid/app/admin/PasswordMetrics;I)V HSPLcom/android/server/locksettings/LockSettingsService;->onStartUser(I)V @@ -23675,6 +24442,7 @@ PLcom/android/server/locksettings/LockSettingsService;->onUnlockUser(I)V HSPLcom/android/server/locksettings/LockSettingsService;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V PLcom/android/server/locksettings/LockSettingsService;->removeGatekeeperPasswordHandle(J)V PLcom/android/server/locksettings/LockSettingsService;->removeKey(Ljava/lang/String;)V +PLcom/android/server/locksettings/LockSettingsService;->removeStateForReusedUserIdIfNecessary(II)V PLcom/android/server/locksettings/LockSettingsService;->reportSuccessfulBiometricUnlock(ZI)V PLcom/android/server/locksettings/LockSettingsService;->requireStrongAuth(II)V PLcom/android/server/locksettings/LockSettingsService;->scheduleGc()V @@ -23693,7 +24461,9 @@ PLcom/android/server/locksettings/LockSettingsService;->timestampToString(J)Ljav PLcom/android/server/locksettings/LockSettingsService;->tryUnlockWithCachedUnifiedChallenge(I)Z PLcom/android/server/locksettings/LockSettingsService;->unlockChildProfile(IZ)V PLcom/android/server/locksettings/LockSettingsService;->unlockKeystore([BI)V -PLcom/android/server/locksettings/LockSettingsService;->unlockUser(I[B)V +PLcom/android/server/locksettings/LockSettingsService;->unlockUser(I)V +PLcom/android/server/locksettings/LockSettingsService;->unlockUserKey(ILcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;)V +PLcom/android/server/locksettings/LockSettingsService;->unlockUserKeyIfUnsecured(I)V PLcom/android/server/locksettings/LockSettingsService;->unregisterStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V PLcom/android/server/locksettings/LockSettingsService;->userPresent(I)V PLcom/android/server/locksettings/LockSettingsService;->verifyCredential(Lcom/android/internal/widget/LockscreenCredential;II)Lcom/android/internal/widget/VerifyCredentialResponse; @@ -23742,7 +24512,7 @@ HSPLcom/android/server/locksettings/LockSettingsStorage;->getRebootEscrowFile(I) PLcom/android/server/locksettings/LockSettingsStorage;->getRebootEscrowServerBlobFile()Ljava/io/File; HSPLcom/android/server/locksettings/LockSettingsStorage;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;+]Lcom/android/server/locksettings/LockSettingsStorage;Lcom/android/server/locksettings/LockSettingsStorage; HSPLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordDirectoryForUser(I)Ljava/io/File; -HSPLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordStateFileForUser(IJLjava/lang/String;)Ljava/io/File; +HSPLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordStateFileForUser(IJLjava/lang/String;)Ljava/io/File;+]Lcom/android/server/locksettings/LockSettingsStorage;Lcom/android/server/locksettings/LockSettingsStorage; PLcom/android/server/locksettings/LockSettingsStorage;->hasChildProfileLock(I)Z HSPLcom/android/server/locksettings/LockSettingsStorage;->hasFile(Ljava/io/File;)Z HSPLcom/android/server/locksettings/LockSettingsStorage;->hasRebootEscrow(I)Z @@ -23750,7 +24520,7 @@ HSPLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordP HSPLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordProtectorsForUser(Ljava/lang/String;I)Ljava/util/List; HSPLcom/android/server/locksettings/LockSettingsStorage;->prefetchUser(I)V PLcom/android/server/locksettings/LockSettingsStorage;->readChildProfileLock(I)[B -HSPLcom/android/server/locksettings/LockSettingsStorage;->readFile(Ljava/io/File;)[B +HSPLcom/android/server/locksettings/LockSettingsStorage;->readFile(Ljava/io/File;)[B+]Lcom/android/server/locksettings/LockSettingsStorage$Cache;Lcom/android/server/locksettings/LockSettingsStorage$Cache; HSPLcom/android/server/locksettings/LockSettingsStorage;->readKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;+]Lcom/android/server/locksettings/LockSettingsStorage$Cache;Lcom/android/server/locksettings/LockSettingsStorage$Cache;]Landroid/database/Cursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/sqlite/SQLiteOpenHelper;Lcom/android/server/locksettings/LockSettingsStorage$DatabaseHelper;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; PLcom/android/server/locksettings/LockSettingsStorage;->readRebootEscrow(I)[B PLcom/android/server/locksettings/LockSettingsStorage;->readRebootEscrowServerBlob()[B @@ -23776,6 +24546,7 @@ PLcom/android/server/locksettings/LockSettingsStrongAuth$Injector;->getNextAlarm PLcom/android/server/locksettings/LockSettingsStrongAuth$NonStrongBiometricIdleTimeoutAlarmListener;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V PLcom/android/server/locksettings/LockSettingsStrongAuth$NonStrongBiometricIdleTimeoutAlarmListener;->onAlarm()V PLcom/android/server/locksettings/LockSettingsStrongAuth$NonStrongBiometricTimeoutAlarmListener;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V +PLcom/android/server/locksettings/LockSettingsStrongAuth$NonStrongBiometricTimeoutAlarmListener;->onAlarm()V PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;JI)V PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;->onAlarm()V PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;->setLatestStrongAuthTime(J)V @@ -23798,7 +24569,7 @@ PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleNoLongerRequire PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRemoveStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRequireStrongAuth(II)V PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRequireStrongAuthOneUser(II)V -PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleScheduleNonStrongBiometricIdleTimeout(I)V +HPLcom/android/server/locksettings/LockSettingsStrongAuth;->handleScheduleNonStrongBiometricIdleTimeout(I)V PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleScheduleNonStrongBiometricTimeout(I)V PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleScheduleStrongAuthTimeout(I)V PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleStrongBiometricUnlock(I)V @@ -23939,7 +24710,7 @@ PLcom/android/server/locksettings/SyntheticPasswordManager$$ExternalSyntheticLam PLcom/android/server/locksettings/SyntheticPasswordManager$$ExternalSyntheticLambda1;->onValues(ILandroid/hardware/weaver/V1_0/WeaverReadResponse;)V PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationResult;-><init>()V HSPLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;-><init>()V -HSPLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;->fromBytes([B)Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData; +HSPLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;->fromBytes([B)Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;-><init>(B)V PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->deriveFileBasedEncryptionKey()[B PLcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;->deriveGkPassword()[B @@ -23967,7 +24738,7 @@ PLcom/android/server/locksettings/SyntheticPasswordManager;->decryptSpBlob(Ljava PLcom/android/server/locksettings/SyntheticPasswordManager;->destroyEscrowData(I)V PLcom/android/server/locksettings/SyntheticPasswordManager;->destroyState(Ljava/lang/String;JI)V PLcom/android/server/locksettings/SyntheticPasswordManager;->fromByteArrayList(Ljava/util/ArrayList;)[B -HSPLcom/android/server/locksettings/SyntheticPasswordManager;->getCredentialType(JI)I +HSPLcom/android/server/locksettings/SyntheticPasswordManager;->getCredentialType(JI)I+]Lcom/android/server/locksettings/SyntheticPasswordManager;Lcom/android/server/locksettings/SyntheticPasswordManager; PLcom/android/server/locksettings/SyntheticPasswordManager;->getPasswordMetrics(Lcom/android/server/locksettings/SyntheticPasswordManager$SyntheticPassword;JI)Landroid/app/admin/PasswordMetrics; PLcom/android/server/locksettings/SyntheticPasswordManager;->getPendingTokensForUser(I)Ljava/util/Set; PLcom/android/server/locksettings/SyntheticPasswordManager;->getProtectorKeyAlias(J)Ljava/lang/String; @@ -24155,6 +24926,8 @@ HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager$1 HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Landroid/os/UserManager;Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;)V HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->getInstance(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;)Lcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager; HPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->registerRecoveryAgent(II)V +PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->removeAllKeysForRecoveryAgent(II)V +PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->removeDataForUser(I)V HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->verifyKnownUsers()V HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;)V PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->decodeCertPath([B)Ljava/security/cert/CertPath; @@ -24179,6 +24952,11 @@ HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeySt PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->insertKey(IILjava/lang/String;Lcom/android/server/locksettings/recoverablekeystore/WrappedKey;)J HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->newInstance(Landroid/content/Context;)Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb; PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeKey(ILjava/lang/String;)Z +PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromAllTables(I)V +PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromKeysTable(I)Z +PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromRecoveryServiceMetadataTable(I)Z +PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromRootOfTrustTable(I)Z +PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromUserMetadataTable(I)Z PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setActiveRootOfTrust(IILjava/lang/String;)J PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setLong(IILjava/lang/String;J)J PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setRecoveryStatus(ILjava/lang/String;I)I @@ -24194,6 +24972,7 @@ PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotSt HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->newInstance()Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage; PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->put(ILandroid/security/keystore/recovery/KeyChainSnapshot;)V PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->readFromDisk(I)Landroid/security/keystore/recovery/KeyChainSnapshot; +PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->remove(I)V PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->writeToDisk(ILandroid/security/keystore/recovery/KeyChainSnapshot;)V HSPLcom/android/server/logcat/LogcatManagerService$BinderService;-><init>(Lcom/android/server/logcat/LogcatManagerService;)V HSPLcom/android/server/logcat/LogcatManagerService$BinderService;-><init>(Lcom/android/server/logcat/LogcatManagerService;Lcom/android/server/logcat/LogcatManagerService$BinderService-IA;)V @@ -24208,6 +24987,7 @@ HSPLcom/android/server/logcat/LogcatManagerService$Injector;->getLooper()Landroi PLcom/android/server/logcat/LogcatManagerService$LogAccessClient;-><init>(ILjava/lang/String;)V PLcom/android/server/logcat/LogcatManagerService$LogAccessClient;->equals(Ljava/lang/Object;)Z PLcom/android/server/logcat/LogcatManagerService$LogAccessClient;->hashCode()I +HSPLcom/android/server/logcat/LogcatManagerService$LogAccessDialogCallback;-><init>(Lcom/android/server/logcat/LogcatManagerService;)V PLcom/android/server/logcat/LogcatManagerService$LogAccessRequest;-><init>(IIII)V PLcom/android/server/logcat/LogcatManagerService$LogAccessRequest;-><init>(IIIILcom/android/server/logcat/LogcatManagerService$LogAccessRequest-IA;)V HSPLcom/android/server/logcat/LogcatManagerService$LogAccessRequestHandler;-><init>(Landroid/os/Looper;Lcom/android/server/logcat/LogcatManagerService;)V @@ -24297,8 +25077,6 @@ PLcom/android/server/media/BluetoothRouteProvider;->updateVolumeForDevices(II)Z PLcom/android/server/media/HandlerExecutor;-><init>(Landroid/os/Handler;)V PLcom/android/server/media/MediaButtonReceiverHolder;-><init>(ILandroid/app/PendingIntent;Landroid/content/ComponentName;I)V PLcom/android/server/media/MediaButtonReceiverHolder;-><init>(ILandroid/app/PendingIntent;Ljava/lang/String;)V -PLcom/android/server/media/MediaButtonReceiverHolder;->create(Landroid/content/Context;ILandroid/app/PendingIntent;Ljava/lang/String;)Lcom/android/server/media/MediaButtonReceiverHolder; -PLcom/android/server/media/MediaButtonReceiverHolder;->createComponentName(Landroid/content/pm/ResolveInfo;)Landroid/content/ComponentName; PLcom/android/server/media/MediaButtonReceiverHolder;->flattenToString()Ljava/lang/String; PLcom/android/server/media/MediaButtonReceiverHolder;->getComponentName(Landroid/app/PendingIntent;I)Landroid/content/ComponentName; PLcom/android/server/media/MediaButtonReceiverHolder;->getComponentType(Landroid/app/PendingIntent;)I @@ -24317,10 +25095,10 @@ HSPLcom/android/server/media/MediaResourceMonitorService;-><clinit>()V HSPLcom/android/server/media/MediaResourceMonitorService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/media/MediaResourceMonitorService;->onStart()V PLcom/android/server/media/MediaRoute2Provider;-><init>(Landroid/content/ComponentName;)V -PLcom/android/server/media/MediaRoute2Provider;->getProviderInfo()Landroid/media/MediaRoute2ProviderInfo; +HPLcom/android/server/media/MediaRoute2Provider;->getProviderInfo()Landroid/media/MediaRoute2ProviderInfo; HPLcom/android/server/media/MediaRoute2Provider;->getSessionInfos()Ljava/util/List; PLcom/android/server/media/MediaRoute2Provider;->getUniqueId()Ljava/lang/String; -PLcom/android/server/media/MediaRoute2Provider;->notifyProviderState()V +HPLcom/android/server/media/MediaRoute2Provider;->notifyProviderState()V PLcom/android/server/media/MediaRoute2Provider;->setAndNotifyProviderState(Landroid/media/MediaRoute2ProviderInfo;)V PLcom/android/server/media/MediaRoute2Provider;->setCallback(Lcom/android/server/media/MediaRoute2Provider$Callback;)V HPLcom/android/server/media/MediaRoute2Provider;->setProviderState(Landroid/media/MediaRoute2ProviderInfo;)V @@ -24337,7 +25115,7 @@ PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalS PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda2;->run()V HPLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/MediaRoute2ProviderInfo;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda3;->run()V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda3;->run()V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;JLandroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda5;->run()V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;)V @@ -24345,7 +25123,7 @@ PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection$$ExternalS PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->$r8$lambda$PjzPgL4DtpRucn0eHwf_z2De2Oc(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Ljava/util/List;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->$r8$lambda$ZbIWHi3bCfKF3ByRU6VwEFQBJIE(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->$r8$lambda$_MKHyGWRF2Hq15Cz78HYolwo5-c(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->$r8$lambda$aviYkIqpBYJRljMe9PDnvMv1wk4(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/MediaRoute2ProviderInfo;)V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->$r8$lambda$aviYkIqpBYJRljMe9PDnvMv1wk4(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/MediaRoute2ProviderInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->$r8$lambda$vBpJDb-lH3caXJu1ffGIg8k-OkU(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->$r8$lambda$xTcywV_61jyltfGGGCDBdN1c-Ig(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;JLandroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;-><init>(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Landroid/media/IMediaRoute2ProviderService;)V @@ -24361,7 +25139,7 @@ HPLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->postPro PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->postSessionCreated(JLandroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->postSessionReleased(Landroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->postSessionsUpdated(Ljava/util/List;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->register()Z +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->register()Z PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->releaseSession(JLjava/lang/String;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->requestCreateSession(JLjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;->setSessionVolume(JLjava/lang/String;I)V @@ -24376,7 +25154,7 @@ PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->$r8$lambda$kszvM75q PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$fgetmHandler(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;)Landroid/os/Handler; PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$monConnectionDied(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$monConnectionReady(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$monProviderUpdated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/MediaRoute2ProviderInfo;)V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$monProviderUpdated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/MediaRoute2ProviderInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$monSessionCreated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;JLandroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$monSessionReleased(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->-$$Nest$monSessionsUpdated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Ljava/util/List;)V @@ -24393,22 +25171,23 @@ PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->lambda$onSessionCre PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onBindingDied(Landroid/content/ComponentName;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onConnectionDied(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onConnectionReady(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onProviderUpdated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/MediaRoute2ProviderInfo;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onProviderUpdated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/MediaRoute2ProviderInfo;)V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onServiceDisconnected(Landroid/content/ComponentName;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onSessionCreated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;JLandroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onSessionReleased(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Landroid/media/RoutingSessionInfo;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onSessionsUpdated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Ljava/util/List;)V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy;->onSessionsUpdated(Lcom/android/server/media/MediaRoute2ProviderServiceProxy$Connection;Ljava/util/List;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->rebindIfDisconnected()V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->releaseSession(JLjava/lang/String;)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->requestCreateSession(JLjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->setManagerScanning(Z)V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy;->setManagerScanning(Z)V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->setSessionVolume(JLjava/lang/String;I)V HPLcom/android/server/media/MediaRoute2ProviderServiceProxy;->shouldBind()Z PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->start()V +PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->stop()V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->unbind()V PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->updateBinding()V -PLcom/android/server/media/MediaRoute2ProviderServiceProxy;->updateDiscoveryPreference(Landroid/media/RouteDiscoveryPreference;)V +HPLcom/android/server/media/MediaRoute2ProviderServiceProxy;->updateDiscoveryPreference(Landroid/media/RouteDiscoveryPreference;)V PLcom/android/server/media/MediaRoute2ProviderWatcher$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaRoute2ProviderWatcher;)V PLcom/android/server/media/MediaRoute2ProviderWatcher$$ExternalSyntheticLambda0;->run()V PLcom/android/server/media/MediaRoute2ProviderWatcher$1;-><init>(Lcom/android/server/media/MediaRoute2ProviderWatcher;)V @@ -24418,21 +25197,22 @@ PLcom/android/server/media/MediaRoute2ProviderWatcher;->-$$Nest$mpostScanPackage PLcom/android/server/media/MediaRoute2ProviderWatcher;->-$$Nest$sfgetDEBUG()Z PLcom/android/server/media/MediaRoute2ProviderWatcher;-><clinit>()V PLcom/android/server/media/MediaRoute2ProviderWatcher;-><init>(Landroid/content/Context;Lcom/android/server/media/MediaRoute2ProviderWatcher$Callback;Landroid/os/Handler;I)V +PLcom/android/server/media/MediaRoute2ProviderWatcher;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/media/MediaRoute2ProviderWatcher;->findProvider(Ljava/lang/String;Ljava/lang/String;)I HPLcom/android/server/media/MediaRoute2ProviderWatcher;->postScanPackagesIfNeeded()V HPLcom/android/server/media/MediaRoute2ProviderWatcher;->scanPackages()V PLcom/android/server/media/MediaRoute2ProviderWatcher;->start()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda10;-><init>()V -PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda11;-><init>()V -PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HSPLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V +PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda11;->onUidImportance(II)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda12;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda13;-><init>()V -PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V +PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda14;-><init>()V -PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V +PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda15;-><init>()V +PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda16;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda17;-><init>()V @@ -24440,8 +25220,11 @@ PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda18;-> PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda19;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda1;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda20;-><init>()V +PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda21;-><init>()V +PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda22;-><init>()V +PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda22;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda23;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda24;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda26;-><init>()V @@ -24456,8 +25239,6 @@ PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda6;->< PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda7;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda8;-><init>()V -HSPLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V -HSPLcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda9;->onUidImportance(II)V PLcom/android/server/media/MediaRouter2ServiceImpl$1$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$1$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$1;->$r8$lambda$qgauTo7iZy8trMtJeAz_aelnLOs(Ljava/lang/Object;)V @@ -24473,6 +25254,7 @@ PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->$r8$lambda$KX PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;Landroid/media/IMediaRouter2Manager;IILjava/lang/String;)V PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->binderDied()V PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->dispose()V +PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->lambda$startScan$0(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->lambda$stopScan$1(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->startScan()V @@ -24482,13 +25264,13 @@ PLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;->binderDied()V PLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;->dispose()V PLcom/android/server/media/MediaRouter2ServiceImpl$SessionCreationRequest;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;JJLandroid/media/RoutingSessionInfo;Landroid/media/MediaRoute2Info;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda0;-><init>()V -PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda10;-><init>(I)V HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda11;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V -PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z +HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda2;-><init>()V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;)V @@ -24530,6 +25312,7 @@ PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->-$$Nest$mupdate PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->addToRoutesMap(Ljava/util/Collection;Z)V HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->dispatchUpdates(ZZZLandroid/media/MediaRoute2Info;)V +PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->findProvider(Ljava/lang/String;)Lcom/android/server/media/MediaRoute2Provider; PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->findRouterWithSessionLocked(Ljava/lang/String;)Lcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord; HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getManagerRecords()Ljava/util/List; @@ -24561,6 +25344,7 @@ PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifySessionUp PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onAddProviderService(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;)V HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onProviderStateChanged(Lcom/android/server/media/MediaRoute2Provider;)V HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onProviderStateChangedOnHandler(Lcom/android/server/media/MediaRoute2Provider;)V+]Lcom/android/server/media/MediaRoute2Provider;Lcom/android/server/media/SystemMediaRoute2Provider;,Lcom/android/server/media/MediaRoute2ProviderServiceProxy;]Lcom/android/server/media/SystemMediaRoute2Provider;Lcom/android/server/media/SystemMediaRoute2Provider;]Ljava/lang/Object;Landroid/media/MediaRoute2Info;]Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;]Landroid/media/MediaRoute2Info;Landroid/media/MediaRoute2Info;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/media/MediaRoute2ProviderInfo;Landroid/media/MediaRoute2ProviderInfo;]Ljava/util/Map;Landroid/util/ArrayMap;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator; +PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onRemoveProviderService(Lcom/android/server/media/MediaRoute2ProviderServiceProxy;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionCreated(Lcom/android/server/media/MediaRoute2Provider;JLandroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionCreatedOnHandler(Lcom/android/server/media/MediaRoute2Provider;JLandroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionInfoChangedOnHandler(Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V @@ -24568,14 +25352,19 @@ PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionReleas PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionReleasedOnHandler(Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionUpdated(Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->releaseSessionOnHandler(JLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;Ljava/lang/String;)V -PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->removeFromRoutesMap(Ljava/util/Collection;Z)V +HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->removeFromRoutesMap(Ljava/util/Collection;Z)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->requestCreateSessionWithRouter2OnHandler(JJLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;Landroid/media/RoutingSessionInfo;Landroid/media/MediaRoute2Info;Landroid/os/Bundle;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->setSessionVolumeOnHandler(JLjava/lang/String;I)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->start()V PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->stop()V HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->updateDiscoveryPreferenceOnHandler()V +PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord$$ExternalSyntheticLambda0;->run()V +PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;->$r8$lambda$7tGJNRY3OewyY2b3bY4d65YWrvY(Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;I)V +PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;->init()V +PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;->lambda$dump$0(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$4us_i5Lg3W5R6NbIX2N4YnP9DIU(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$BKJ5u17WDeeL9t3tj6R5qNSCgWY(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$CC44QT-d_OKsDneYDDofZmhCoMk(Ljava/lang/Object;JJLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;Landroid/media/RoutingSessionInfo;Landroid/media/MediaRoute2Info;Landroid/os/Bundle;)V @@ -24589,7 +25378,6 @@ PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$mTfb5xxXtPdU06m5 PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$mvwJ4KlFN3k8S1f8dm3h6RPKAfI(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$r-BrkZA8X-AEVaFVFK1LueGfB8I(Ljava/lang/Object;Lcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;Landroid/media/IMediaRouter2Manager;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$r4XoBKm8d4rBCnLmQO7ma-0KFWA(Ljava/lang/Object;JLcom/android/server/media/MediaRouter2ServiceImpl$RouterRecord;Ljava/lang/String;)V -PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$r8ojnquXd0s9rdzQQDSzkuDTLQU(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->$r8$lambda$z1q2yDdSEzZ2Vsh2SjAR0Y5RoPQ(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->-$$Nest$fgetmContext(Lcom/android/server/media/MediaRouter2ServiceImpl;)Landroid/content/Context; HPLcom/android/server/media/MediaRouter2ServiceImpl;->-$$Nest$fgetmLock(Lcom/android/server/media/MediaRouter2ServiceImpl;)Ljava/lang/Object; @@ -24597,11 +25385,13 @@ PLcom/android/server/media/MediaRouter2ServiceImpl;->-$$Nest$fgetmUserRecords(Lc HSPLcom/android/server/media/MediaRouter2ServiceImpl;-><clinit>()V HSPLcom/android/server/media/MediaRouter2ServiceImpl;-><init>(Landroid/content/Context;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->disposeUserIfNeededLocked(Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;)V +PLcom/android/server/media/MediaRouter2ServiceImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V HPLcom/android/server/media/MediaRouter2ServiceImpl;->getOrCreateUserRecordLocked(I)Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord; HPLcom/android/server/media/MediaRouter2ServiceImpl;->getRemoteSessions(Landroid/media/IMediaRouter2Manager;)Ljava/util/List; HPLcom/android/server/media/MediaRouter2ServiceImpl;->getRemoteSessionsLocked(Landroid/media/IMediaRouter2Manager;)Ljava/util/List; PLcom/android/server/media/MediaRouter2ServiceImpl;->getSystemRoutes()Ljava/util/List; HPLcom/android/server/media/MediaRouter2ServiceImpl;->getSystemSessionInfo(Ljava/lang/String;Z)Landroid/media/RoutingSessionInfo; +PLcom/android/server/media/MediaRouter2ServiceImpl;->isUserActiveLocked(I)Z PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$disposeUserIfNeededLocked$26(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$getOrCreateUserRecordLocked$25(Ljava/lang/Object;)V HSPLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$new$0(II)V+]Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;]Landroid/util/SparseArray;Landroid/util/SparseArray; @@ -24614,7 +25404,6 @@ PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$requestCreateSession PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$setDiscoveryRequestWithRouter2Locked$6(Ljava/lang/Object;Ljava/lang/String;Landroid/media/RouteDiscoveryPreference;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$setDiscoveryRequestWithRouter2Locked$7(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$setSessionVolumeWithRouter2Locked$14(Ljava/lang/Object;JLjava/lang/String;I)V -PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$switchUser$2(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$unregisterRouter2Locked$4(Ljava/lang/Object;Ljava/lang/String;Landroid/media/RouteDiscoveryPreference;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$unregisterRouter2Locked$5(Ljava/lang/Object;)V PLcom/android/server/media/MediaRouter2ServiceImpl;->managerDied(Lcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;)V @@ -24642,6 +25431,7 @@ PLcom/android/server/media/MediaRouter2ServiceImpl;->toRequesterId(J)I PLcom/android/server/media/MediaRouter2ServiceImpl;->toUniqueRequestId(II)J PLcom/android/server/media/MediaRouter2ServiceImpl;->unregisterManagerLocked(Landroid/media/IMediaRouter2Manager;Z)V PLcom/android/server/media/MediaRouter2ServiceImpl;->unregisterRouter2Locked(Landroid/media/IMediaRouter2;Z)V +PLcom/android/server/media/MediaRouter2ServiceImpl;->updateRunningUserAndProfiles(I)V HSPLcom/android/server/media/MediaRouterService$1;-><init>(Lcom/android/server/media/MediaRouterService;)V HSPLcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/media/MediaRouterService;)V PLcom/android/server/media/MediaRouterService$AudioPlayerActiveStateChangedListenerImpl$$ExternalSyntheticLambda0;->run()V @@ -24663,16 +25453,21 @@ PLcom/android/server/media/MediaRouterService$MediaRouterServiceBroadcastReceive PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;-><init>(Lcom/android/server/media/RemoteDisplayProviderProxy;)V PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->appendClientState(Landroid/media/MediaRouterClientState;)V PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->getProvider()Lcom/android/server/media/RemoteDisplayProviderProxy; PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->toString()Ljava/lang/String; PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->updateDescriptor(Landroid/media/RemoteDisplayState;)Z HSPLcom/android/server/media/MediaRouterService$UserHandler;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$UserRecord;)V PLcom/android/server/media/MediaRouterService$UserHandler;->addProvider(Lcom/android/server/media/RemoteDisplayProviderProxy;)V +PLcom/android/server/media/MediaRouterService$UserHandler;->checkSelectedRouteState()V PLcom/android/server/media/MediaRouterService$UserHandler;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/media/MediaRouterService$UserHandler;->findProviderRecord(Lcom/android/server/media/RemoteDisplayProviderProxy;)I PLcom/android/server/media/MediaRouterService$UserHandler;->handleMessage(Landroid/os/Message;)V PLcom/android/server/media/MediaRouterService$UserHandler;->notifyGroupRouteSelected(Ljava/lang/String;)V +PLcom/android/server/media/MediaRouterService$UserHandler;->removeProvider(Lcom/android/server/media/RemoteDisplayProviderProxy;)V PLcom/android/server/media/MediaRouterService$UserHandler;->scheduleUpdateClientState()V PLcom/android/server/media/MediaRouterService$UserHandler;->start()V PLcom/android/server/media/MediaRouterService$UserHandler;->updateClientState()V +PLcom/android/server/media/MediaRouterService$UserHandler;->updateConnectionTimeout(I)V HPLcom/android/server/media/MediaRouterService$UserHandler;->updateDiscoveryRequest()V PLcom/android/server/media/MediaRouterService$UserRecord$1;-><init>(Lcom/android/server/media/MediaRouterService$UserRecord;Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/media/MediaRouterService$UserRecord$1;->run()V @@ -24703,6 +25498,7 @@ HPLcom/android/server/media/MediaRouterService;->getSystemSessionInfoForPackage( HSPLcom/android/server/media/MediaRouterService;->initializeClientLocked(Lcom/android/server/media/MediaRouterService$ClientRecord;)V HSPLcom/android/server/media/MediaRouterService;->initializeUserLocked(Lcom/android/server/media/MediaRouterService$UserRecord;)V HSPLcom/android/server/media/MediaRouterService;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z +HSPLcom/android/server/media/MediaRouterService;->isUserActiveLocked(I)Z PLcom/android/server/media/MediaRouterService;->monitor()V HSPLcom/android/server/media/MediaRouterService;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V PLcom/android/server/media/MediaRouterService;->registerClientGroupId(Landroid/media/IMediaRouterClient;Ljava/lang/String;)V @@ -24726,6 +25522,7 @@ PLcom/android/server/media/MediaRouterService;->startScan(Landroid/media/IMediaR PLcom/android/server/media/MediaRouterService;->stopScan(Landroid/media/IMediaRouter2Manager;)V HSPLcom/android/server/media/MediaRouterService;->systemRunning()V PLcom/android/server/media/MediaRouterService;->unregisterClientLocked(Landroid/media/IMediaRouterClient;Z)V +PLcom/android/server/media/MediaRouterService;->updateRunningUserAndProfiles(I)V HSPLcom/android/server/media/MediaRouterService;->validatePackageName(ILjava/lang/String;)Z PLcom/android/server/media/MediaServerUtils;->checkDumpPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z HSPLcom/android/server/media/MediaSessionDeviceConfig$$ExternalSyntheticLambda0;-><init>()V @@ -24753,11 +25550,13 @@ PLcom/android/server/media/MediaSessionRecord$ControllerStub;->$r8$lambda$8rbiMA PLcom/android/server/media/MediaSessionRecord$ControllerStub;-><init>(Lcom/android/server/media/MediaSessionRecord;)V PLcom/android/server/media/MediaSessionRecord$ControllerStub;->adjustVolume(Ljava/lang/String;Ljava/lang/String;II)V HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getExtras()Landroid/os/Bundle; +PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getFlags()J PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getLaunchPendingIntent()Landroid/app/PendingIntent; HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getMetadata()Landroid/media/MediaMetadata; HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPackageName()Ljava/lang/String; HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPlaybackState()Landroid/media/session/PlaybackState; HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueue()Landroid/content/pm/ParceledListSlice; +PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueueTitle()Ljava/lang/CharSequence; PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getRatingType()I HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo; PLcom/android/server/media/MediaSessionRecord$ControllerStub;->lambda$registerCallback$0(Landroid/media/session/ISessionControllerCallback;)V @@ -24766,6 +25565,7 @@ PLcom/android/server/media/MediaSessionRecord$ControllerStub;->pause(Ljava/lang/ PLcom/android/server/media/MediaSessionRecord$ControllerStub;->play(Ljava/lang/String;)V PLcom/android/server/media/MediaSessionRecord$ControllerStub;->playFromMediaId(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V PLcom/android/server/media/MediaSessionRecord$ControllerStub;->prepareFromMediaId(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V +PLcom/android/server/media/MediaSessionRecord$ControllerStub;->previous(Ljava/lang/String;)V HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V PLcom/android/server/media/MediaSessionRecord$ControllerStub;->rewind(Ljava/lang/String;)V PLcom/android/server/media/MediaSessionRecord$ControllerStub;->seekTo(Ljava/lang/String;J)V @@ -24779,9 +25579,10 @@ PLcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;- PLcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;->-$$Nest$fgetmPackageName(Lcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;)Ljava/lang/String; HPLcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;-><init>(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;ILandroid/os/IBinder$DeathRecipient;)V PLcom/android/server/media/MediaSessionRecord$MessageHandler;-><init>(Lcom/android/server/media/MediaSessionRecord;Landroid/os/Looper;)V -PLcom/android/server/media/MediaSessionRecord$MessageHandler;->handleMessage(Landroid/os/Message;)V +HPLcom/android/server/media/MediaSessionRecord$MessageHandler;->handleMessage(Landroid/os/Message;)V HPLcom/android/server/media/MediaSessionRecord$MessageHandler;->post(I)V HPLcom/android/server/media/MediaSessionRecord$MessageHandler;->post(ILjava/lang/Object;)V +PLcom/android/server/media/MediaSessionRecord$MessageHandler;->post(ILjava/lang/Object;Landroid/os/Bundle;)V PLcom/android/server/media/MediaSessionRecord$SessionCb;->-$$Nest$fgetmCb(Lcom/android/server/media/MediaSessionRecord$SessionCb;)Landroid/media/session/ISessionCallback; PLcom/android/server/media/MediaSessionRecord$SessionCb;-><init>(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionCallback;)V PLcom/android/server/media/MediaSessionRecord$SessionCb;->adjustVolume(Ljava/lang/String;IIZI)V @@ -24791,6 +25592,7 @@ PLcom/android/server/media/MediaSessionRecord$SessionCb;->pause(Ljava/lang/Strin PLcom/android/server/media/MediaSessionRecord$SessionCb;->play(Ljava/lang/String;II)V PLcom/android/server/media/MediaSessionRecord$SessionCb;->playFromMediaId(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;)V PLcom/android/server/media/MediaSessionRecord$SessionCb;->prepareFromMediaId(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;)V +PLcom/android/server/media/MediaSessionRecord$SessionCb;->previous(Ljava/lang/String;II)V PLcom/android/server/media/MediaSessionRecord$SessionCb;->rewind(Ljava/lang/String;II)V PLcom/android/server/media/MediaSessionRecord$SessionCb;->seekTo(Ljava/lang/String;IIJ)V PLcom/android/server/media/MediaSessionRecord$SessionCb;->sendCommand(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V @@ -24808,12 +25610,13 @@ HPLcom/android/server/media/MediaSessionRecord$SessionStub;->getBinderForSetQueu PLcom/android/server/media/MediaSessionRecord$SessionStub;->getController()Landroid/media/session/ISessionController; HPLcom/android/server/media/MediaSessionRecord$SessionStub;->lambda$getBinderForSetQueue$0(Ljava/util/List;)V PLcom/android/server/media/MediaSessionRecord$SessionStub;->resetQueue()V +PLcom/android/server/media/MediaSessionRecord$SessionStub;->sendEvent(Ljava/lang/String;Landroid/os/Bundle;)V HPLcom/android/server/media/MediaSessionRecord$SessionStub;->setActive(Z)V PLcom/android/server/media/MediaSessionRecord$SessionStub;->setCurrentVolume(I)V PLcom/android/server/media/MediaSessionRecord$SessionStub;->setExtras(Landroid/os/Bundle;)V PLcom/android/server/media/MediaSessionRecord$SessionStub;->setFlags(I)V PLcom/android/server/media/MediaSessionRecord$SessionStub;->setLaunchPendingIntent(Landroid/app/PendingIntent;)V -HPLcom/android/server/media/MediaSessionRecord$SessionStub;->setMediaButtonReceiver(Landroid/app/PendingIntent;Ljava/lang/String;)V +HPLcom/android/server/media/MediaSessionRecord$SessionStub;->setMediaButtonReceiver(Landroid/app/PendingIntent;)V HPLcom/android/server/media/MediaSessionRecord$SessionStub;->setMetadata(Landroid/media/MediaMetadata;JLjava/lang/String;)V HPLcom/android/server/media/MediaSessionRecord$SessionStub;->setPlaybackState(Landroid/media/session/PlaybackState;)V HPLcom/android/server/media/MediaSessionRecord$SessionStub;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V @@ -24827,6 +25630,7 @@ PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmControllerCallbackH PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmCurrentVolume(Lcom/android/server/media/MediaSessionRecord;)I PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmDestroyed(Lcom/android/server/media/MediaSessionRecord;)Z PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmExtras(Lcom/android/server/media/MediaSessionRecord;)Landroid/os/Bundle; +PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmFlags(Lcom/android/server/media/MediaSessionRecord;)J HPLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmHandler(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$MessageHandler; PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmLaunchIntent(Lcom/android/server/media/MediaSessionRecord;)Landroid/app/PendingIntent; HPLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmLock(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/Object; @@ -24836,6 +25640,7 @@ HPLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmPackageName(Lcom/a PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmPlaybackState(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState; PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmPolicies(Lcom/android/server/media/MediaSessionRecord;)I HPLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmQueue(Lcom/android/server/media/MediaSessionRecord;)Ljava/util/List; +PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmQueueTitle(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/CharSequence; PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmRatingType(Lcom/android/server/media/MediaSessionRecord;)I PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmService(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionService; PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fgetmSessionCb(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$SessionCb; @@ -24863,6 +25668,7 @@ PLcom/android/server/media/MediaSessionRecord;->-$$Nest$fputmVolumeType(Lcom/and PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mgetControllerHolderIndexForCb(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;)I HPLcom/android/server/media/MediaSessionRecord;->-$$Nest$mgetStateWithUpdatedPosition(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/PlaybackState; PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mgetVolumeAttributes(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/session/MediaController$PlaybackInfo; +PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushEvent(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Landroid/os/Bundle;)V PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushExtrasUpdate(Lcom/android/server/media/MediaSessionRecord;)V PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushMetadataUpdate(Lcom/android/server/media/MediaSessionRecord;)V PLcom/android/server/media/MediaSessionRecord;->-$$Nest$mpushPlaybackStateUpdate(Lcom/android/server/media/MediaSessionRecord;)V @@ -24898,6 +25704,7 @@ PLcom/android/server/media/MediaSessionRecord;->isPlaybackTypeLocal()Z PLcom/android/server/media/MediaSessionRecord;->isSystemPriority()Z PLcom/android/server/media/MediaSessionRecord;->logCallbackException(Ljava/lang/String;Lcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;Ljava/lang/Exception;)V PLcom/android/server/media/MediaSessionRecord;->postAdjustLocalVolume(IIILjava/lang/String;IIZZI)V +PLcom/android/server/media/MediaSessionRecord;->pushEvent(Ljava/lang/String;Landroid/os/Bundle;)V PLcom/android/server/media/MediaSessionRecord;->pushExtrasUpdate()V HPLcom/android/server/media/MediaSessionRecord;->pushMetadataUpdate()V HPLcom/android/server/media/MediaSessionRecord;->pushPlaybackStateUpdate()V @@ -25046,7 +25853,7 @@ HPLcom/android/server/media/MediaSessionStack;->contains(Lcom/android/server/med PLcom/android/server/media/MediaSessionStack;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V HPLcom/android/server/media/MediaSessionStack;->findMediaButtonSession(I)Lcom/android/server/media/MediaSessionRecordImpl; HPLcom/android/server/media/MediaSessionStack;->getActiveSessions(I)Ljava/util/List; -PLcom/android/server/media/MediaSessionStack;->getDefaultRemoteSession(I)Lcom/android/server/media/MediaSessionRecordImpl; +HPLcom/android/server/media/MediaSessionStack;->getDefaultRemoteSession(I)Lcom/android/server/media/MediaSessionRecordImpl; PLcom/android/server/media/MediaSessionStack;->getDefaultVolumeSession()Lcom/android/server/media/MediaSessionRecordImpl; PLcom/android/server/media/MediaSessionStack;->getMediaButtonSession()Lcom/android/server/media/MediaSessionRecordImpl; PLcom/android/server/media/MediaSessionStack;->getMediaSessionRecord(Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord; @@ -25069,6 +25876,7 @@ PLcom/android/server/media/RemoteDisplayProviderProxy;->setDiscoveryMode(I)V PLcom/android/server/media/RemoteDisplayProviderProxy;->setSelectedDisplay(Ljava/lang/String;)V PLcom/android/server/media/RemoteDisplayProviderProxy;->shouldBind()Z PLcom/android/server/media/RemoteDisplayProviderProxy;->start()V +PLcom/android/server/media/RemoteDisplayProviderProxy;->stop()V PLcom/android/server/media/RemoteDisplayProviderProxy;->unbind()V PLcom/android/server/media/RemoteDisplayProviderProxy;->updateBinding()V HSPLcom/android/server/media/RemoteDisplayProviderWatcher$1;-><init>(Lcom/android/server/media/RemoteDisplayProviderWatcher;)V @@ -25251,7 +26059,7 @@ HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><clinit>()V HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><init>(I)V HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->appIdleStateChanged(IZ)V HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->appIdleWlChanged(IZ)V -PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->deviceIdleModeEnabled(Z)V +HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->deviceIdleModeEnabled(Z)V HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->event(Ljava/lang/String;)V HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->firewallChainEnabled(IZ)V PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->formatDate(J)Ljava/lang/String; @@ -25270,7 +26078,12 @@ PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->uidPolicyChanged(III)V HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->uidStateChanged(IIJI)V+]Lcom/android/server/net/NetworkPolicyLogger$Data;Lcom/android/server/net/NetworkPolicyLogger$Data;]Lcom/android/internal/util/RingBuffer;Lcom/android/server/net/NetworkPolicyLogger$LogBuffer; PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetAppIdleChangedLog(IZ)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetAppIdleWlChangedLog(IZ)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetDeviceIdleModeEnabled(Z)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetFirewallChainEnabledLog(IZ)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetInterfacesChangedLog(ILjava/lang/String;)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetMeteredAllowlistChangedLog(IZ)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetMeterednessChangedLog(IZ)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetRoamingChangedLog(IZ)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetTempPowerSaveWlChangedLog(IZILjava/lang/String;)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->-$$Nest$smgetUidFirewallRuleChangedLog(III)Ljava/lang/String; HSPLcom/android/server/net/NetworkPolicyLogger;-><clinit>()V @@ -25283,9 +26096,14 @@ HSPLcom/android/server/net/NetworkPolicyLogger;->firewallChainEnabled(IZ)V HSPLcom/android/server/net/NetworkPolicyLogger;->firewallRulesChanged(I[I[I)V PLcom/android/server/net/NetworkPolicyLogger;->getAppIdleChangedLog(IZ)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->getAppIdleWlChangedLog(IZ)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->getDeviceIdleModeEnabled(Z)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->getFirewallChainEnabledLog(IZ)Ljava/lang/String; HSPLcom/android/server/net/NetworkPolicyLogger;->getFirewallChainName(I)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->getFirewallRuleName(I)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->getInterfacesChangedLog(ILjava/lang/String;)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->getMeteredAllowlistChangedLog(IZ)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->getMeterednessChangedLog(IZ)Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyLogger;->getRoamingChangedLog(IZ)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->getTempPowerSaveWlChangedLog(IZILjava/lang/String;)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->getUidFirewallRuleChangedLog(III)Ljava/lang/String; PLcom/android/server/net/NetworkPolicyLogger;->interfacesChanged(ILandroid/util/ArraySet;)V @@ -25362,14 +26180,20 @@ HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInter HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl-IA;)V HPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->getSubscriptionOpportunisticQuota(Landroid/net/Network;I)J HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onAdminDataAvailable()V -HPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onTempPowerSaveWhitelistChange(IZILjava/lang/String;)V +HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onTempPowerSaveWhitelistChange(IZILjava/lang/String;)V HPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->setAppIdleWhitelist(IZ)V HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->setMeteredRestrictedPackagesAsync(Ljava/util/Set;I)V +HPLcom/android/server/net/NetworkPolicyManagerService$NotificationId;-><init>(Landroid/net/NetworkPolicy;I)V +HPLcom/android/server/net/NetworkPolicyManagerService$NotificationId;->buildNotificationTag(Landroid/net/NetworkPolicy;I)Ljava/lang/String; +HPLcom/android/server/net/NetworkPolicyManagerService$NotificationId;->equals(Ljava/lang/Object;)Z +PLcom/android/server/net/NetworkPolicyManagerService$NotificationId;->getId()I +PLcom/android/server/net/NetworkPolicyManagerService$NotificationId;->getTag()Ljava/lang/String; +PLcom/android/server/net/NetworkPolicyManagerService$NotificationId;->hashCode()I HSPLcom/android/server/net/NetworkPolicyManagerService$RestrictedModeObserver;-><init>(Landroid/content/Context;Lcom/android/server/net/NetworkPolicyManagerService$RestrictedModeObserver$RestrictedModeListener;)V HSPLcom/android/server/net/NetworkPolicyManagerService$RestrictedModeObserver;->isRestrictedModeEnabled()Z HSPLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V HSPLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$StatsCallback-IA;)V -PLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;->isAnyCallbackReceived()Z +HPLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;->isAnyCallbackReceived()Z HPLcom/android/server/net/NetworkPolicyManagerService$StatsCallback;->onThresholdReached(ILjava/lang/String;)V HSPLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;-><clinit>()V HSPLcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;-><init>()V @@ -25442,7 +26266,9 @@ HSPLcom/android/server/net/NetworkPolicyManagerService;->addSdkSandboxUidsIfNeed PLcom/android/server/net/NetworkPolicyManagerService;->addUidPolicy(II)V HSPLcom/android/server/net/NetworkPolicyManagerService;->bindConnectivityManager()V PLcom/android/server/net/NetworkPolicyManagerService;->buildDefaultCarrierPolicy(ILjava/lang/String;)Landroid/net/NetworkPolicy; +HPLcom/android/server/net/NetworkPolicyManagerService;->buildSnoozeWarningIntent(Landroid/net/NetworkTemplate;Ljava/lang/String;)Landroid/content/Intent; PLcom/android/server/net/NetworkPolicyManagerService;->buildTemplateCarrierMetered(Ljava/lang/String;)Landroid/net/NetworkTemplate; +HPLcom/android/server/net/NetworkPolicyManagerService;->buildViewDataUsageIntent(Landroid/content/res/Resources;Landroid/net/NetworkTemplate;)Landroid/content/Intent; HSPLcom/android/server/net/NetworkPolicyManagerService;->checkAnyPermissionOf([Ljava/lang/String;)Z HPLcom/android/server/net/NetworkPolicyManagerService;->collectIfaces(Landroid/util/ArraySet;Landroid/net/NetworkStateSnapshot;)V PLcom/android/server/net/NetworkPolicyManagerService;->collectKeys(Landroid/util/SparseArray;Landroid/util/SparseBooleanArray;)V @@ -25456,6 +26282,7 @@ HSPLcom/android/server/net/NetworkPolicyManagerService;->enableFirewallChainUL(I HSPLcom/android/server/net/NetworkPolicyManagerService;->enforceAnyPermissionOf([Ljava/lang/String;)V PLcom/android/server/net/NetworkPolicyManagerService;->enforceSubscriptionPlanAccess(IILjava/lang/String;)V PLcom/android/server/net/NetworkPolicyManagerService;->enforceSubscriptionPlanValidity([Landroid/telephony/SubscriptionPlan;)V +HPLcom/android/server/net/NetworkPolicyManagerService;->enqueueNotification(Landroid/net/NetworkPolicy;IJLandroid/content/pm/ApplicationInfo;)V HPLcom/android/server/net/NetworkPolicyManagerService;->ensureActiveCarrierPolicyAL()V HPLcom/android/server/net/NetworkPolicyManagerService;->ensureActiveCarrierPolicyAL(ILjava/lang/String;)Z HPLcom/android/server/net/NetworkPolicyManagerService;->findRelevantSubIdNL(Landroid/net/NetworkTemplate;)I @@ -25483,7 +26310,7 @@ HPLcom/android/server/net/NetworkPolicyManagerService;->getUidPolicy(I)I PLcom/android/server/net/NetworkPolicyManagerService;->getUidsWithPolicy(I)[I PLcom/android/server/net/NetworkPolicyManagerService;->getWarningBytesFromCarrierConfig(Landroid/os/PersistableBundle;J)J HSPLcom/android/server/net/NetworkPolicyManagerService;->handleBlockedReasonsChanged(III)V -PLcom/android/server/net/NetworkPolicyManagerService;->handleDeviceIdleModeChangedUL(Z)V +HPLcom/android/server/net/NetworkPolicyManagerService;->handleDeviceIdleModeChangedUL(Z)V HPLcom/android/server/net/NetworkPolicyManagerService;->handleDeviceIdleModeDisabledUL()V+]Landroid/os/Handler;Landroid/os/Handler;]Landroid/os/Message;Landroid/os/Message;]Lcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;Lcom/android/server/net/NetworkPolicyManagerService$UidBlockedState;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; PLcom/android/server/net/NetworkPolicyManagerService;->handleNetworkPoliciesUpdateAL(Z)V HSPLcom/android/server/net/NetworkPolicyManagerService;->handleRestrictedPackagesChangeUL(Ljava/util/Set;Ljava/util/Set;)V @@ -25507,7 +26334,7 @@ HSPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForAllowlistR HSPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForDenylistRulesUL(I)Z+]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService; HSPLcom/android/server/net/NetworkPolicyManagerService;->isWhitelistedFromPowerSaveExceptIdleUL(I)Z HSPLcom/android/server/net/NetworkPolicyManagerService;->isWhitelistedFromPowerSaveUL(IZ)Z+]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray; -HSPLcom/android/server/net/NetworkPolicyManagerService;->lambda$forEachUid$7(Landroid/util/SparseBooleanArray;ILjava/util/function/IntConsumer;Lcom/android/server/pm/pkg/AndroidPackage;)V+]Ljava/util/function/IntConsumer;Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda3;,Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda4;,Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda0;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/net/NetworkPolicyManagerService;->lambda$forEachUid$7(Landroid/util/SparseBooleanArray;ILjava/util/function/IntConsumer;Lcom/android/server/pm/pkg/AndroidPackage;)V+]Ljava/util/function/IntConsumer;Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda4;,Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda0;,Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda3;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; HPLcom/android/server/net/NetworkPolicyManagerService;->lambda$handleDeviceIdleModeChangedUL$4(I)V+]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService; HSPLcom/android/server/net/NetworkPolicyManagerService;->lambda$networkScoreAndNetworkManagementServiceReady$1(Ljava/util/concurrent/CountDownLatch;)V HSPLcom/android/server/net/NetworkPolicyManagerService;->lambda$updateRestrictedModeAllowlistUL$3(I)V @@ -25541,7 +26368,7 @@ HPLcom/android/server/net/NetworkPolicyManagerService;->setNetworkTemplateEnable HSPLcom/android/server/net/NetworkPolicyManagerService;->setRestrictBackgroundUL(ZLjava/lang/String;)V PLcom/android/server/net/NetworkPolicyManagerService;->setSubscriptionPlans(I[Landroid/telephony/SubscriptionPlan;JLjava/lang/String;)V PLcom/android/server/net/NetworkPolicyManagerService;->setSubscriptionPlansInternal(I[Landroid/telephony/SubscriptionPlan;JLjava/lang/String;)V -HSPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRuleUL(III)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/net/NetworkPolicyLogger;Lcom/android/server/net/NetworkPolicyLogger;]Landroid/os/INetworkManagementService;Lcom/android/server/NetworkManagementService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRuleUL(III)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Lcom/android/server/net/NetworkPolicyLogger;Lcom/android/server/net/NetworkPolicyLogger;]Landroid/os/INetworkManagementService;Lcom/android/server/NetworkManagementService; HSPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRulesUL(ILandroid/util/SparseIntArray;)V HSPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRulesUL(ILandroid/util/SparseIntArray;I)V PLcom/android/server/net/NetworkPolicyManagerService;->setUidPolicyUncheckedUL(IIIZ)V @@ -25563,7 +26390,7 @@ HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictBackgroun HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictedModeAllowlistUL()V PLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictedModeForUidUL(I)V PLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictionRulesForUidUL(I)V -HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForAppIdleUL(II)V+]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForAppIdleUL(II)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray; HPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForDeviceIdleUL(I)V HPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForRestrictPowerUL(I)V HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAppIdleParoleUL()V @@ -25653,7 +26480,7 @@ HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->tryAggregateRecor HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;-><init>(Ljava/util/Set;Ljava/lang/String;Ljava/util/HashMap;)V HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;-><clinit>()V HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;-><init>(Landroid/content/Context;)V -PLcom/android/server/net/watchlist/WatchlistReportDbHelper;->cleanup(J)Z +HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;->cleanup(J)Z HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getAggregatedRecords(J)Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult; HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getInstance(Landroid/content/Context;)Lcom/android/server/net/watchlist/WatchlistReportDbHelper; HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getSystemWatchlistDbFile()Ljava/io/File; @@ -25669,14 +26496,14 @@ PLcom/android/server/notification/AlertRateLimiter;-><init>()V PLcom/android/server/notification/AlertRateLimiter;->shouldRateLimitAlert(J)Z HSPLcom/android/server/notification/BadgeExtractor;-><init>()V HSPLcom/android/server/notification/BadgeExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V -HPLcom/android/server/notification/BadgeExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/RankingConfig;Lcom/android/server/notification/PreferencesHelper;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata; +HPLcom/android/server/notification/BadgeExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/RankingConfig;Lcom/android/server/notification/PreferencesHelper; HSPLcom/android/server/notification/BadgeExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V HSPLcom/android/server/notification/BadgeExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V HSPLcom/android/server/notification/BubbleExtractor;-><init>()V HPLcom/android/server/notification/BubbleExtractor;->canLaunchInTaskView(Landroid/content/Context;Landroid/app/PendingIntent;Ljava/lang/String;)Z -HPLcom/android/server/notification/BubbleExtractor;->canPresentAsBubble(Lcom/android/server/notification/NotificationRecord;)Z+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata;]Lcom/android/server/notification/BubbleExtractor;Lcom/android/server/notification/BubbleExtractor; +HPLcom/android/server/notification/BubbleExtractor;->canPresentAsBubble(Lcom/android/server/notification/NotificationRecord;)Z+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Landroid/app/Notification$BubbleMetadata;Landroid/app/Notification$BubbleMetadata;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/BubbleExtractor;Lcom/android/server/notification/BubbleExtractor; HSPLcom/android/server/notification/BubbleExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V -HPLcom/android/server/notification/BubbleExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/BubbleExtractor;Lcom/android/server/notification/BubbleExtractor;]Lcom/android/server/notification/RankingConfig;Lcom/android/server/notification/PreferencesHelper;]Landroid/app/ActivityManager;Landroid/app/ActivityManager; +HPLcom/android/server/notification/BubbleExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/ActivityManager;Landroid/app/ActivityManager;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/BubbleExtractor;Lcom/android/server/notification/BubbleExtractor;]Lcom/android/server/notification/RankingConfig;Lcom/android/server/notification/PreferencesHelper; HSPLcom/android/server/notification/BubbleExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V HSPLcom/android/server/notification/BubbleExtractor;->setShortcutHelper(Lcom/android/server/notification/ShortcutHelper;)V HSPLcom/android/server/notification/BubbleExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V @@ -25844,7 +26671,7 @@ HSPLcom/android/server/notification/ManagedServices;->getCaption()Ljava/lang/Str HSPLcom/android/server/notification/ManagedServices;->getDefaultComponents()Landroid/util/ArraySet; HSPLcom/android/server/notification/ManagedServices;->getPackageName(Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/server/notification/ManagedServices;->getRemovableConnectedServices()Ljava/util/Set; -HSPLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;+]Landroid/os/IInterface;Landroid/service/notification/INotificationListener$Stub$Proxy;,Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;,Landroid/service/notification/ConditionProviderService$Provider;,Landroid/service/notification/IConditionProvider$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;+]Landroid/os/IInterface;Landroid/service/notification/ConditionProviderService$Provider;,Landroid/service/notification/INotificationListener$Stub$Proxy;,Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;,Landroid/service/notification/IConditionProvider$Stub$Proxy;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/notification/ManagedServices;->getServices()Ljava/util/List; PLcom/android/server/notification/ManagedServices;->hasMatchingServices(Ljava/lang/String;I)Z PLcom/android/server/notification/ManagedServices;->isComponentEnabledForCurrentProfiles(Landroid/content/ComponentName;)Z @@ -25859,7 +26686,7 @@ PLcom/android/server/notification/ManagedServices;->isValidEntry(Ljava/lang/Stri HSPLcom/android/server/notification/ManagedServices;->loadComponentNamesFromValues(Landroid/util/ArraySet;I)Landroid/util/ArraySet; HSPLcom/android/server/notification/ManagedServices;->newServiceInfo(Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;II)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo; HSPLcom/android/server/notification/ManagedServices;->onBootPhaseAppsCanStart()V -HPLcom/android/server/notification/ManagedServices;->onPackagesChanged(Z[Ljava/lang/String;[I)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;,Lcom/android/server/notification/ConditionProviders;,Lcom/android/server/notification/NotificationManagerService$NotificationAssistants; +HPLcom/android/server/notification/ManagedServices;->onPackagesChanged(Z[Ljava/lang/String;[I)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;,Lcom/android/server/notification/NotificationManagerService$NotificationListeners;,Lcom/android/server/notification/ConditionProviders; PLcom/android/server/notification/ManagedServices;->onUserSwitched(I)V PLcom/android/server/notification/ManagedServices;->onUserUnlocked(I)V HSPLcom/android/server/notification/ManagedServices;->populateComponentsToBind(Landroid/util/SparseArray;Landroid/util/IntArray;Landroid/util/SparseArray;)V @@ -26009,6 +26836,7 @@ PLcom/android/server/notification/NotificationHistoryManager$$ExternalSyntheticL PLcom/android/server/notification/NotificationHistoryManager$$ExternalSyntheticLambda0;->runOrThrow()V HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationHistoryManager;Landroid/os/Handler;)V HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->observe()V +PLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->onChange(ZLandroid/net/Uri;I)V HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->update(Landroid/net/Uri;I)V PLcom/android/server/notification/NotificationHistoryManager;->$r8$lambda$KjgV1fTearQVkcQld8gBrXUjqIA(Lcom/android/server/notification/NotificationHistoryManager;Landroid/app/NotificationHistory$HistoricalNotification;)V HSPLcom/android/server/notification/NotificationHistoryManager;->-$$Nest$fgetmContext(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/content/Context; @@ -26054,6 +26882,8 @@ PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticL PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda2;->run()V HPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/notification/NotificationManagerService;ZLandroid/app/Notification;ILjava/lang/String;I)V HPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda4;->run()V +PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/SystemService$TargetUser;)V +PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda5;->run()V PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/SystemService$TargetUser;)V PLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda6;->run()V HSPLcom/android/server/notification/NotificationManagerService$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/notification/NotificationManagerService;)V @@ -26068,6 +26898,7 @@ PLcom/android/server/notification/NotificationManagerService$10;->applyAdjustmen HPLcom/android/server/notification/NotificationManagerService$10;->applyAdjustmentsFromAssistant(Landroid/service/notification/INotificationListener;Ljava/util/List;)V HPLcom/android/server/notification/NotificationManagerService$10;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V+]Lcom/android/server/notification/NotificationManagerService$10;Lcom/android/server/notification/NotificationManagerService$10;]Landroid/service/notification/Adjustment;Landroid/service/notification/Adjustment;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/notification/NotificationManagerService$10;->areBubblesAllowed(Ljava/lang/String;)Z +PLcom/android/server/notification/NotificationManagerService$10;->areBubblesEnabled(Landroid/os/UserHandle;)Z HPLcom/android/server/notification/NotificationManagerService$10;->areNotificationsEnabled(Ljava/lang/String;)Z+]Lcom/android/server/notification/NotificationManagerService$10;Lcom/android/server/notification/NotificationManagerService$10; HPLcom/android/server/notification/NotificationManagerService$10;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z+]Lcom/android/server/notification/NotificationManagerService$10;Lcom/android/server/notification/NotificationManagerService$10; HPLcom/android/server/notification/NotificationManagerService$10;->canNotifyAsPackage(Ljava/lang/String;Ljava/lang/String;I)Z+]Landroid/os/UserHandle;Landroid/os/UserHandle; @@ -26154,6 +26985,7 @@ PLcom/android/server/notification/NotificationManagerService$10;->requestHintsFr PLcom/android/server/notification/NotificationManagerService$10;->requestUnbindListener(Landroid/service/notification/INotificationListener;)V PLcom/android/server/notification/NotificationManagerService$10;->requestUnbindProvider(Landroid/service/notification/IConditionProvider;)V HPLcom/android/server/notification/NotificationManagerService$10;->sanitizeSbn(Ljava/lang/String;ILandroid/service/notification/StatusBarNotification;)Landroid/service/notification/StatusBarNotification;+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/Notification;Landroid/app/Notification; +PLcom/android/server/notification/NotificationManagerService$10;->setAutomaticZenRuleState(Ljava/lang/String;Landroid/service/notification/Condition;)V PLcom/android/server/notification/NotificationManagerService$10;->setInterruptionFilter(Ljava/lang/String;I)V PLcom/android/server/notification/NotificationManagerService$10;->setNotificationDelegate(Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/notification/NotificationManagerService$10;->setNotificationListenerAccessGranted(Landroid/content/ComponentName;ZZ)V @@ -26164,6 +26996,7 @@ PLcom/android/server/notification/NotificationManagerService$10;->setNotificatio PLcom/android/server/notification/NotificationManagerService$10;->setNotificationsEnabledForPackage(Ljava/lang/String;IZ)V HPLcom/android/server/notification/NotificationManagerService$10;->setNotificationsShownFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V PLcom/android/server/notification/NotificationManagerService$10;->setPrivateNotificationsAllowed(Z)V +PLcom/android/server/notification/NotificationManagerService$10;->setZenMode(ILandroid/net/Uri;Ljava/lang/String;)V PLcom/android/server/notification/NotificationManagerService$10;->shouldHideSilentStatusIcons(Ljava/lang/String;)Z PLcom/android/server/notification/NotificationManagerService$10;->silenceNotificationSound()V PLcom/android/server/notification/NotificationManagerService$10;->unregisterListener(Landroid/service/notification/INotificationListener;I)V @@ -26325,8 +27158,8 @@ PLcom/android/server/notification/NotificationManagerService$NotificationAssista PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantSuggestedReplySent$8(Ljava/lang/String;Ljava/lang/CharSequence;ZLandroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantVisibilityChangedLocked$5(Ljava/lang/String;ZLandroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onNotificationsSeenLocked$2(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/util/ArrayList;)V -PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onPanelHidden$4(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V -PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onPanelRevealed$3(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V +HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onPanelHidden$4(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V +HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onPanelRevealed$3(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->loadDefaultsFromConfig(Z)V PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->notifyAssistantActionClicked(Lcom/android/server/notification/NotificationRecord;Landroid/app/Notification$Action;Z)V PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->notifyAssistantExpansionChangedLocked(Landroid/service/notification/StatusBarNotification;IZZ)V @@ -26350,7 +27183,7 @@ HSPLcom/android/server/notification/NotificationManagerService$NotificationAssis HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda0;->run()V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V -PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda1;->run()V +HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda1;->run()V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda2;->run()V PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationRecord;)V @@ -26358,7 +27191,7 @@ PLcom/android/server/notification/NotificationManagerService$NotificationListene PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda4;->run()V PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda5;->run()V -PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V +HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda6;->run()V PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V PLcom/android/server/notification/NotificationManagerService$NotificationListeners$$ExternalSyntheticLambda7;->run()V @@ -26381,7 +27214,7 @@ PLcom/android/server/notification/NotificationManagerService$NotificationListene HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->ensureFilters(Landroid/content/pm/ServiceInfo;I)V PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getBindFlags()I HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getConfig()Lcom/android/server/notification/ManagedServices$Config; -HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getNotificationListenerFilter(Landroid/util/Pair;)Landroid/service/notification/NotificationListenerFilter; +HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getNotificationListenerFilter(Landroid/util/Pair;)Landroid/service/notification/NotificationListenerFilter;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getOnNotificationPostedTrim(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)I HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getRequiredPermission()Ljava/lang/String; PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getTypesFromStringList(Ljava/lang/String;)I @@ -26405,9 +27238,9 @@ PLcom/android/server/notification/NotificationManagerService$NotificationListene HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelGroupChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelGroupChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V+]Landroid/os/Handler;Landroid/os/Handler;]Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; -HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPosted(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/service/notification/INotificationListener;Landroid/service/notification/INotificationListener$Stub$Proxy;,Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper; +HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPosted(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V+]Landroid/service/notification/INotificationListener;Landroid/service/notification/INotificationListener$Stub$Proxy;,Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V -HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Z)V+]Landroid/os/Handler;Lcom/android/server/notification/NotificationManagerService$WorkerHandler;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/notification/NotificationManagerService$TrimCache;Lcom/android/server/notification/NotificationManagerService$TrimCache;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Landroid/os/UserHandle;Landroid/os/UserHandle; +HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Z)V+]Landroid/os/Handler;Lcom/android/server/notification/NotificationManagerService$WorkerHandler;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Lcom/android/server/notification/NotificationManagerService$TrimCache;Lcom/android/server/notification/NotificationManagerService$TrimCache;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRankingUpdate(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRankingUpdateLocked(Ljava/util/List;)V HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRemoved(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V @@ -26423,7 +27256,7 @@ HSPLcom/android/server/notification/NotificationManagerService$NotificationListe HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->writeExtraXmlTags(Landroid/util/TypedXmlSerializer;)V HPLcom/android/server/notification/NotificationManagerService$NotificationRecordExtractorData;-><init>(IIZZZLandroid/app/NotificationChannel;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;Ljava/util/ArrayList;IFZ)V PLcom/android/server/notification/NotificationManagerService$NotificationRecordExtractorData;->hasDiffForLoggingLocked(Lcom/android/server/notification/NotificationRecord;I)Z -HPLcom/android/server/notification/NotificationManagerService$NotificationRecordExtractorData;->hasDiffForRankingLocked(Lcom/android/server/notification/NotificationRecord;I)Z+]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/app/Notification;Landroid/app/Notification; +HPLcom/android/server/notification/NotificationManagerService$NotificationRecordExtractorData;->hasDiffForRankingLocked(Lcom/android/server/notification/NotificationRecord;I)Z+]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord; HSPLcom/android/server/notification/NotificationManagerService$NotificationTrampolineCallback;-><init>(Lcom/android/server/notification/NotificationManagerService;)V HSPLcom/android/server/notification/NotificationManagerService$NotificationTrampolineCallback;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$NotificationTrampolineCallback-IA;)V PLcom/android/server/notification/NotificationManagerService$NotificationTrampolineCallback;->blockTrampoline(I)Z @@ -26455,6 +27288,7 @@ HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRun HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;->run()V HSPLcom/android/server/notification/NotificationManagerService$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Handler;)V HSPLcom/android/server/notification/NotificationManagerService$SettingsObserver;->observe()V +PLcom/android/server/notification/NotificationManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;I)V HSPLcom/android/server/notification/NotificationManagerService$SettingsObserver;->update(Landroid/net/Uri;)V PLcom/android/server/notification/NotificationManagerService$ShowNotificationPermissionPromptRunnable;-><init>(Ljava/lang/String;IILcom/android/server/policy/PermissionPolicyInternal;)V PLcom/android/server/notification/NotificationManagerService$ShowNotificationPermissionPromptRunnable;->run()V @@ -26602,7 +27436,7 @@ PLcom/android/server/notification/NotificationManagerService;->callStateToString HPLcom/android/server/notification/NotificationManagerService;->canShowLightsLocked(Lcom/android/server/notification/NotificationRecord;Z)Z HSPLcom/android/server/notification/NotificationManagerService;->canUseManagedServices(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)Z PLcom/android/server/notification/NotificationManagerService;->cancelAllLocked(IIIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;Z)V -HSPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsByListLocked(Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;ZJ)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/NotificationManagerService$FlagChecker;Lcom/android/server/notification/NotificationManagerService$15$$ExternalSyntheticLambda0;,Lcom/android/server/notification/NotificationManagerService$16$$ExternalSyntheticLambda0;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Set;Ljava/util/HashSet; +HSPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsByListLocked(Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;ZJ)V+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/NotificationManagerService$FlagChecker;Lcom/android/server/notification/NotificationManagerService$15$$ExternalSyntheticLambda0;,Lcom/android/server/notification/NotificationManagerService$16$$ExternalSyntheticLambda0;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/Notification;Landroid/app/Notification;]Ljava/util/Set;Ljava/util/HashSet; HSPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsInt(IILjava/lang/String;Ljava/lang/String;IIZIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V PLcom/android/server/notification/NotificationManagerService;->cancelGroupChildrenByListLocked(Ljava/util/ArrayList;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZZLcom/android/server/notification/NotificationManagerService$FlagChecker;IJ)V PLcom/android/server/notification/NotificationManagerService;->cancelGroupChildrenLocked(Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;IJ)V @@ -26613,7 +27447,7 @@ HPLcom/android/server/notification/NotificationManagerService;->cancelNotificati PLcom/android/server/notification/NotificationManagerService;->cancelNotificationLocked(Lcom/android/server/notification/NotificationRecord;ZIZLjava/lang/String;J)V PLcom/android/server/notification/NotificationManagerService;->cancelToastLocked(I)V HSPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;)V+]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService; -HSPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;II)V+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;II)V+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystem()V HSPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V+]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService; PLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrShell()V @@ -26638,7 +27472,7 @@ PLcom/android/server/notification/NotificationManagerService;->dumpImpl(Ljava/io PLcom/android/server/notification/NotificationManagerService;->dumpJson(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;Landroid/util/ArrayMap;)V PLcom/android/server/notification/NotificationManagerService;->dumpNotificationRecords(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V HPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V -HPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZ)V+]Landroid/os/Handler;Lcom/android/server/notification/NotificationManagerService$WorkerHandler;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/PendingIntent;Landroid/app/PendingIntent;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Lcom/android/server/notification/ShortcutHelper;Lcom/android/server/notification/ShortcutHelper;]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;]Lcom/android/server/notification/NotificationUsageStats;Lcom/android/server/notification/NotificationUsageStats;]Lcom/android/server/SystemService;Lcom/android/server/notification/NotificationManagerService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Landroid/app/ActivityManager;Landroid/app/ActivityManager;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Lcom/android/server/notification/PermissionHelper;Lcom/android/server/notification/PermissionHelper; +HPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZ)V+]Landroid/os/Handler;Lcom/android/server/notification/NotificationManagerService$WorkerHandler;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Lcom/android/server/notification/ShortcutHelper;Lcom/android/server/notification/ShortcutHelper;]Landroid/app/PendingIntent;Landroid/app/PendingIntent;]Lcom/android/server/DeviceIdleInternal;Lcom/android/server/DeviceIdleController$LocalService;]Lcom/android/server/notification/NotificationUsageStats;Lcom/android/server/notification/NotificationUsageStats;]Lcom/android/server/SystemService;Lcom/android/server/notification/NotificationManagerService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Landroid/app/ActivityManager;Landroid/app/ActivityManager;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Lcom/android/server/notification/PermissionHelper;Lcom/android/server/notification/PermissionHelper; PLcom/android/server/notification/NotificationManagerService;->exitIdle()V PLcom/android/server/notification/NotificationManagerService;->findNotificationByKeyLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord; HPLcom/android/server/notification/NotificationManagerService;->findNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord; @@ -26704,7 +27538,7 @@ HPLcom/android/server/notification/NotificationManagerService;->isPackageSuspend HPLcom/android/server/notification/NotificationManagerService;->isRecordBlockedLocked(Lcom/android/server/notification/NotificationRecord;)Z+]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord; HPLcom/android/server/notification/NotificationManagerService;->isServiceTokenValid(Landroid/os/IInterface;)Z+]Lcom/android/server/notification/ManagedServices;Lcom/android/server/notification/NotificationManagerService$NotificationAssistants; HSPLcom/android/server/notification/NotificationManagerService;->isUidSystemOrPhone(I)Z -HPLcom/android/server/notification/NotificationManagerService;->isVisibleToListener(Landroid/service/notification/StatusBarNotification;ILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z+]Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Landroid/service/notification/NotificationListenerFilter;Landroid/service/notification/NotificationListenerFilter; +HPLcom/android/server/notification/NotificationManagerService;->isVisibleToListener(Landroid/service/notification/StatusBarNotification;ILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z+]Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;]Landroid/service/notification/NotificationListenerFilter;Landroid/service/notification/NotificationListenerFilter;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService; HPLcom/android/server/notification/NotificationManagerService;->isVisuallyInterruptive(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)Z PLcom/android/server/notification/NotificationManagerService;->keepProcessAliveForToastIfNeededLocked(I)V PLcom/android/server/notification/NotificationManagerService;->lambda$doChannelWarningToast$6(Ljava/lang/CharSequence;)V @@ -26716,7 +27550,7 @@ HPLcom/android/server/notification/NotificationManagerService;->lambda$reportFor PLcom/android/server/notification/NotificationManagerService;->lambda$sendAppBlockStateChangedBroadcast$3(ZLjava/lang/String;I)V HSPLcom/android/server/notification/NotificationManagerService;->loadPolicyFile()V PLcom/android/server/notification/NotificationManagerService;->logSmartSuggestionsVisible(Lcom/android/server/notification/NotificationRecord;I)V -HSPLcom/android/server/notification/NotificationManagerService;->makeRankingUpdateLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;+]Landroid/service/notification/NotificationListenerService$Ranking;Landroid/service/notification/NotificationListenerService$Ranking;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/os/UserHandle;Landroid/os/UserHandle; +HSPLcom/android/server/notification/NotificationManagerService;->makeRankingUpdateLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;+]Landroid/service/notification/NotificationListenerService$Ranking;Landroid/service/notification/NotificationListenerService$Ranking;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/os/UserHandle;Landroid/os/UserHandle;]Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/notification/NotificationManagerService;->maybeNotifyChannelOwner(Ljava/lang/String;ILandroid/app/NotificationChannel;Landroid/app/NotificationChannel;)V HPLcom/android/server/notification/NotificationManagerService;->maybeRecordInterruptionLocked(Lcom/android/server/notification/NotificationRecord;)V HPLcom/android/server/notification/NotificationManagerService;->maybeRegisterMessageSent(Lcom/android/server/notification/NotificationRecord;)V @@ -26858,7 +27692,7 @@ PLcom/android/server/notification/NotificationRecord;->hasSeenSmartReplies()Z HPLcom/android/server/notification/NotificationRecord;->hasUndecoratedRemoteView()Z HPLcom/android/server/notification/NotificationRecord;->isAudioAttributesUsage(I)Z HPLcom/android/server/notification/NotificationRecord;->isCategory(Ljava/lang/String;)Z+]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord; -HPLcom/android/server/notification/NotificationRecord;->isConversation()Z+]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo; +HPLcom/android/server/notification/NotificationRecord;->isConversation()Z+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord; HPLcom/android/server/notification/NotificationRecord;->isForegroundService()Z HPLcom/android/server/notification/NotificationRecord;->isHidden()Z HPLcom/android/server/notification/NotificationRecord;->isIntercepted()Z @@ -26916,7 +27750,7 @@ PLcom/android/server/notification/NotificationRecord;->shouldRedactStringExtra(L PLcom/android/server/notification/NotificationRecord;->toString()Ljava/lang/String; HPLcom/android/server/notification/NotificationRecord;->updateNotificationChannel(Landroid/app/NotificationChannel;)V HPLcom/android/server/notification/NotificationRecord;->userDemotedAppFromConvoSpace(Z)V -HPLcom/android/server/notification/NotificationRecord;->visitGrantableUri(Landroid/net/Uri;ZZ)V+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/uri/UriGrantsManagerInternal;Lcom/android/server/uri/UriGrantsManagerService$LocalService;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; +HPLcom/android/server/notification/NotificationRecord;->visitGrantableUri(Landroid/net/Uri;ZZ)V+]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/uri/UriGrantsManagerInternal;Lcom/android/server/uri/UriGrantsManagerService$LocalService;]Landroid/net/Uri;Landroid/net/Uri$StringUri;,Landroid/net/Uri$HierarchicalUri; PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;-><clinit>()V PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;-><init>(Ljava/lang/String;II)V PLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->fromCancelReason(II)Lcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent; @@ -27030,8 +27864,8 @@ HSPLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init HSPLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>(Lcom/android/server/notification/PreferencesHelper$PackagePreferences-IA;)V PLcom/android/server/notification/PreferencesHelper$PackagePreferences;->isValidDelegate(Ljava/lang/String;I)Z HSPLcom/android/server/notification/PreferencesHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/PermissionHelper;Lcom/android/server/notification/NotificationChannelLogger;Landroid/app/AppOpsManager;Lcom/android/server/notification/SysUiStatsEvent$BuilderFactory;Z)V -HPLcom/android/server/notification/PreferencesHelper;->badgingEnabled(Landroid/os/UserHandle;)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/content/Context;Landroid/app/ContextImpl; -HPLcom/android/server/notification/PreferencesHelper;->bubblesEnabled(Landroid/os/UserHandle;)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/os/UserHandle;Landroid/os/UserHandle;]Landroid/content/Context;Landroid/app/ContextImpl; +HPLcom/android/server/notification/PreferencesHelper;->badgingEnabled(Landroid/os/UserHandle;)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/UserHandle;Landroid/os/UserHandle; +HPLcom/android/server/notification/PreferencesHelper;->bubblesEnabled(Landroid/os/UserHandle;)Z+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/UserHandle;Landroid/os/UserHandle; HPLcom/android/server/notification/PreferencesHelper;->canShowBadge(Ljava/lang/String;I)Z+]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper; HPLcom/android/server/notification/PreferencesHelper;->canShowNotificationsOnLockscreen(I)Z HPLcom/android/server/notification/PreferencesHelper;->canShowPrivateNotificationsOnLockScreen(I)Z @@ -27062,10 +27896,10 @@ HPLcom/android/server/notification/PreferencesHelper;->getGroupForChannel(Ljava/ HSPLcom/android/server/notification/PreferencesHelper;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannel; HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/NotificationChannelGroup; HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroupWithChannels(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannelGroup;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;]Landroid/app/NotificationChannelGroup;Landroid/app/NotificationChannelGroup; -HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroups(Ljava/lang/String;IZZZ)Landroid/content/pm/ParceledListSlice;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Ljava/util/Collection;Ljava/util/concurrent/ConcurrentHashMap$ValuesView;,Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Map;Landroid/util/ArrayMap;,Ljava/util/concurrent/ConcurrentHashMap;]Landroid/app/NotificationChannelGroup;Landroid/app/NotificationChannelGroup;]Ljava/util/Iterator;Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;,Landroid/util/MapCollections$ArrayIterator;]Ljava/util/List;Ljava/util/ArrayList; +HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroups(Ljava/lang/String;IZZZ)Landroid/content/pm/ParceledListSlice;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Ljava/util/Collection;Ljava/util/concurrent/ConcurrentHashMap$ValuesView;,Landroid/util/MapCollections$ValuesCollection;]Ljava/util/Map;Landroid/util/ArrayMap;,Ljava/util/concurrent/ConcurrentHashMap;]Ljava/util/Iterator;Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;,Landroid/util/MapCollections$ArrayIterator;]Landroid/app/NotificationChannelGroup;Landroid/app/NotificationChannelGroup;]Ljava/util/List;Ljava/util/ArrayList; HSPLcom/android/server/notification/PreferencesHelper;->getNotificationChannels(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Ljava/util/List;Ljava/util/ArrayList; HSPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;+]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper; -HSPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;IIIIIZI)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;IIIIIZI)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/notification/PreferencesHelper;Lcom/android/server/notification/PreferencesHelper; PLcom/android/server/notification/PreferencesHelper;->getPackageChannels()Ljava/util/Map; HSPLcom/android/server/notification/PreferencesHelper;->getPackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences; PLcom/android/server/notification/PreferencesHelper;->getPermissionBasedPackageBans(Landroid/util/ArrayMap;)Ljava/util/Map; @@ -27084,6 +27918,8 @@ PLcom/android/server/notification/PreferencesHelper;->onLocaleChanged(Landroid/c HPLcom/android/server/notification/PreferencesHelper;->onPackagesChanged(ZI[Ljava/lang/String;[I)Z PLcom/android/server/notification/PreferencesHelper;->onlyHasDefaultChannel(Ljava/lang/String;I)Z HSPLcom/android/server/notification/PreferencesHelper;->packagePreferencesKey(Ljava/lang/String;I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +PLcom/android/server/notification/PreferencesHelper;->pullPackageChannelGroupPreferencesStats(Ljava/util/List;)V +PLcom/android/server/notification/PreferencesHelper;->pullPackageChannelPreferencesStats(Ljava/util/List;)V HPLcom/android/server/notification/PreferencesHelper;->pullPackagePreferencesStats(Ljava/util/List;Landroid/util/ArrayMap;)V HSPLcom/android/server/notification/PreferencesHelper;->readXml(Landroid/util/TypedXmlPullParser;ZI)V HSPLcom/android/server/notification/PreferencesHelper;->restoreChannel(Landroid/util/TypedXmlPullParser;ZLcom/android/server/notification/PreferencesHelper$PackagePreferences;)V @@ -27106,7 +27942,7 @@ HSPLcom/android/server/notification/PreferencesHelper;->updateLockScreenShowNoti HSPLcom/android/server/notification/PreferencesHelper;->updateMediaNotificationFilteringEnabled()V HPLcom/android/server/notification/PreferencesHelper;->updateNotificationChannel(Ljava/lang/String;ILandroid/app/NotificationChannel;Z)V PLcom/android/server/notification/PreferencesHelper;->updateZenPolicy(Z)V -HSPLcom/android/server/notification/PreferencesHelper;->writeXml(Landroid/util/TypedXmlSerializer;ZI)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;,Ljava/util/concurrent/ConcurrentHashMap$ValuesView;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;,Landroid/util/ArrayMap;]Landroid/app/NotificationChannelGroup;Landroid/app/NotificationChannelGroup;]Ljava/util/Iterator;Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;,Landroid/util/MapCollections$ArrayIterator;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Lcom/android/server/notification/PermissionHelper;Lcom/android/server/notification/PermissionHelper;]Ljava/util/Set;Landroid/util/MapCollections$KeySet;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer; +HSPLcom/android/server/notification/PreferencesHelper;->writeXml(Landroid/util/TypedXmlSerializer;ZI)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;,Ljava/util/concurrent/ConcurrentHashMap$ValuesView;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;,Landroid/util/ArrayMap;]Landroid/app/NotificationChannelGroup;Landroid/app/NotificationChannelGroup;]Ljava/util/Iterator;Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;,Landroid/util/MapCollections$ArrayIterator;]Lcom/android/server/notification/PermissionHelper;Lcom/android/server/notification/PermissionHelper;]Ljava/util/Set;Landroid/util/MapCollections$KeySet;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer; HSPLcom/android/server/notification/PriorityExtractor;-><init>()V HSPLcom/android/server/notification/PriorityExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V HPLcom/android/server/notification/PriorityExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Landroid/app/NotificationChannel;Landroid/app/NotificationChannel;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord; @@ -27118,7 +27954,7 @@ PLcom/android/server/notification/RankingHelper;->dump(Ljava/io/PrintWriter;Ljav HPLcom/android/server/notification/RankingHelper;->extractSignals(Lcom/android/server/notification/NotificationRecord;)V+]Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;]Lcom/android/server/notification/NotificationSignalExtractor;megamorphic_types HSPLcom/android/server/notification/RankingHelper;->findExtractor(Ljava/lang/Class;)Lcom/android/server/notification/NotificationSignalExtractor; HPLcom/android/server/notification/RankingHelper;->indexOf(Ljava/util/ArrayList;Lcom/android/server/notification/NotificationRecord;)I -HSPLcom/android/server/notification/RankingHelper;->sort(Ljava/util/ArrayList;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLcom/android/server/notification/RankingHelper;->sort(Ljava/util/ArrayList;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/Notification;Landroid/app/Notification;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/notification/RankingReconsideration;-><init>(Ljava/lang/String;J)V PLcom/android/server/notification/RankingReconsideration;->getDelay(Ljava/util/concurrent/TimeUnit;)J PLcom/android/server/notification/RankingReconsideration;->getKey()Ljava/lang/String; @@ -27148,6 +27984,7 @@ HSPLcom/android/server/notification/ScheduleConditionProvider;->getComponent()La PLcom/android/server/notification/ScheduleConditionProvider;->getNextAlarm()J PLcom/android/server/notification/ScheduleConditionProvider;->getPendingIntent(J)Landroid/app/PendingIntent; HSPLcom/android/server/notification/ScheduleConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z +PLcom/android/server/notification/ScheduleConditionProvider;->meetsSchedule(Landroid/service/notification/ScheduleCalendar;J)Z HSPLcom/android/server/notification/ScheduleConditionProvider;->onBootComplete()V HSPLcom/android/server/notification/ScheduleConditionProvider;->onConnected()V PLcom/android/server/notification/ScheduleConditionProvider;->onSubscribe(Landroid/net/Uri;)V @@ -27192,6 +28029,7 @@ PLcom/android/server/notification/SysUiStatsEvent$Builder;->build()Landroid/util PLcom/android/server/notification/SysUiStatsEvent$Builder;->setAtomId(I)Lcom/android/server/notification/SysUiStatsEvent$Builder; PLcom/android/server/notification/SysUiStatsEvent$Builder;->writeBoolean(Z)Lcom/android/server/notification/SysUiStatsEvent$Builder; PLcom/android/server/notification/SysUiStatsEvent$Builder;->writeInt(I)Lcom/android/server/notification/SysUiStatsEvent$Builder; +PLcom/android/server/notification/SysUiStatsEvent$Builder;->writeString(Ljava/lang/String;)Lcom/android/server/notification/SysUiStatsEvent$Builder; HSPLcom/android/server/notification/SysUiStatsEvent$BuilderFactory;-><init>()V PLcom/android/server/notification/SysUiStatsEvent$BuilderFactory;->newBuilder()Lcom/android/server/notification/SysUiStatsEvent$Builder; HSPLcom/android/server/notification/SystemConditionProviderService;-><init>()V @@ -27201,20 +28039,20 @@ PLcom/android/server/notification/SystemConditionProviderService;->ts(J)Ljava/la HSPLcom/android/server/notification/ValidateNotificationPeople$1;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/os/Handler;)V PLcom/android/server/notification/ValidateNotificationPeople$1;->onChange(ZLandroid/net/Uri;I)V PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;-><init>()V -PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->getAffinity()F +HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->getAffinity()F PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->getPhoneLookupKey()Ljava/lang/String; -PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->getPhoneNumbers()Landroid/util/ArraySet; +HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->getPhoneNumbers()Landroid/util/ArraySet; HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->isExpired()Z HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->isInvalid()Z PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->mergeContact(Landroid/database/Cursor;)V PLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->mergePhoneNumber(Landroid/database/Cursor;)V -PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/content/Context;Ljava/lang/String;Ljava/util/LinkedList;)V +HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/content/Context;Ljava/lang/String;Ljava/util/LinkedList;)V PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/content/Context;Ljava/lang/String;Ljava/util/LinkedList;Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration-IA;)V HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->applyChangesLocked(Lcom/android/server/notification/NotificationRecord;)V PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->setRecord(Lcom/android/server/notification/NotificationRecord;)V HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->work()V PLcom/android/server/notification/ValidateNotificationPeople;->-$$Nest$fgetmEvictionCount(Lcom/android/server/notification/ValidateNotificationPeople;)I -PLcom/android/server/notification/ValidateNotificationPeople;->-$$Nest$fgetmPeopleCache(Lcom/android/server/notification/ValidateNotificationPeople;)Landroid/util/LruCache; +HPLcom/android/server/notification/ValidateNotificationPeople;->-$$Nest$fgetmPeopleCache(Lcom/android/server/notification/ValidateNotificationPeople;)Landroid/util/LruCache; PLcom/android/server/notification/ValidateNotificationPeople;->-$$Nest$fgetmUsageStats(Lcom/android/server/notification/ValidateNotificationPeople;)Lcom/android/server/notification/NotificationUsageStats; PLcom/android/server/notification/ValidateNotificationPeople;->-$$Nest$fputmEvictionCount(Lcom/android/server/notification/ValidateNotificationPeople;I)V PLcom/android/server/notification/ValidateNotificationPeople;->-$$Nest$mresolveEmailContact(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/content/Context;Ljava/lang/String;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult; @@ -27225,7 +28063,7 @@ HSPLcom/android/server/notification/ValidateNotificationPeople;-><clinit>()V HSPLcom/android/server/notification/ValidateNotificationPeople;-><init>()V PLcom/android/server/notification/ValidateNotificationPeople;->addContacts(Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;Landroid/content/Context;Landroid/net/Uri;)V HPLcom/android/server/notification/ValidateNotificationPeople;->combineLists([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String; -HPLcom/android/server/notification/ValidateNotificationPeople;->getCacheKey(ILjava/lang/String;)Ljava/lang/String; +HPLcom/android/server/notification/ValidateNotificationPeople;->getCacheKey(ILjava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; PLcom/android/server/notification/ValidateNotificationPeople;->getContactAffinity(Landroid/os/UserHandle;Landroid/os/Bundle;IF)F HPLcom/android/server/notification/ValidateNotificationPeople;->getContextAsUser(Landroid/os/UserHandle;)Landroid/content/Context;+]Landroid/os/UserHandle;Landroid/os/UserHandle;]Ljava/util/Map;Landroid/util/ArrayMap; HPLcom/android/server/notification/ValidateNotificationPeople;->getExtraPeople(Landroid/os/Bundle;)[Ljava/lang/String; @@ -27234,11 +28072,11 @@ HSPLcom/android/server/notification/ValidateNotificationPeople;->initialize(Land HPLcom/android/server/notification/ValidateNotificationPeople;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/ValidateNotificationPeople;Lcom/android/server/notification/ValidateNotificationPeople; PLcom/android/server/notification/ValidateNotificationPeople;->resolveEmailContact(Landroid/content/Context;Ljava/lang/String;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult; PLcom/android/server/notification/ValidateNotificationPeople;->resolvePhoneContact(Landroid/content/Context;Ljava/lang/String;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult; -PLcom/android/server/notification/ValidateNotificationPeople;->searchContacts(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult; +HPLcom/android/server/notification/ValidateNotificationPeople;->searchContacts(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult; PLcom/android/server/notification/ValidateNotificationPeople;->searchContactsAndLookupNumbers(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult; HSPLcom/android/server/notification/ValidateNotificationPeople;->setConfig(Lcom/android/server/notification/RankingConfig;)V HSPLcom/android/server/notification/ValidateNotificationPeople;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V -HPLcom/android/server/notification/ValidateNotificationPeople;->validatePeople(Landroid/content/Context;Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;]Lcom/android/server/notification/NotificationUsageStats;Lcom/android/server/notification/NotificationUsageStats;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/ValidateNotificationPeople;Lcom/android/server/notification/ValidateNotificationPeople;]Landroid/util/ArraySet;Landroid/util/ArraySet; +HPLcom/android/server/notification/ValidateNotificationPeople;->validatePeople(Landroid/content/Context;Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;+]Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;]Lcom/android/server/notification/NotificationUsageStats;Lcom/android/server/notification/NotificationUsageStats;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;]Lcom/android/server/notification/ValidateNotificationPeople;Lcom/android/server/notification/ValidateNotificationPeople; HPLcom/android/server/notification/ValidateNotificationPeople;->validatePeople(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/List;[FLandroid/util/ArraySet;)Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;+]Ljava/util/AbstractCollection;Ljava/util/LinkedList;]Landroid/util/LruCache;Landroid/util/LruCache;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/ArraySet; HSPLcom/android/server/notification/VibratorHelper;-><clinit>()V HSPLcom/android/server/notification/VibratorHelper;-><init>(Landroid/content/Context;)V @@ -27410,6 +28248,7 @@ PLcom/android/server/notification/ZenModeHelper;->recordCaller(Lcom/android/serv PLcom/android/server/notification/ZenModeHelper;->removeAutomaticZenRules(Ljava/lang/String;Ljava/lang/String;)Z HPLcom/android/server/notification/ZenModeHelper;->ruleMatches(Landroid/net/Uri;Landroid/service/notification/Condition;Landroid/service/notification/ZenModeConfig$ZenRule;)Z HPLcom/android/server/notification/ZenModeHelper;->setAutomaticZenRuleState(Landroid/net/Uri;Landroid/service/notification/Condition;)V +PLcom/android/server/notification/ZenModeHelper;->setAutomaticZenRuleState(Ljava/lang/String;Landroid/service/notification/Condition;)V PLcom/android/server/notification/ZenModeHelper;->setAutomaticZenRuleStateLocked(Landroid/service/notification/ZenModeConfig;Ljava/util/List;Landroid/service/notification/Condition;)V PLcom/android/server/notification/ZenModeHelper;->setConfig(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Ljava/lang/String;)V HSPLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Ljava/lang/String;)Z @@ -27500,8 +28339,8 @@ PLcom/android/server/om/IdmapDaemon;->-$$Nest$smstopIdmapService()V HSPLcom/android/server/om/IdmapDaemon;-><init>()V HSPLcom/android/server/om/IdmapDaemon;->connect()Lcom/android/server/om/IdmapDaemon$Connection; PLcom/android/server/om/IdmapDaemon;->createFabricatedOverlay(Landroid/os/FabricatedOverlayInternal;)Landroid/os/FabricatedOverlayInfo; -PLcom/android/server/om/IdmapDaemon;->createIdmap(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZI)Ljava/lang/String; -PLcom/android/server/om/IdmapDaemon;->deleteFabricatedOverlay(Ljava/lang/String;)Z +HSPLcom/android/server/om/IdmapDaemon;->createIdmap(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZI)Ljava/lang/String; +HSPLcom/android/server/om/IdmapDaemon;->deleteFabricatedOverlay(Ljava/lang/String;)Z PLcom/android/server/om/IdmapDaemon;->dumpIdmap(Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/server/om/IdmapDaemon;->getFabricatedOverlayInfos()Ljava/util/List; HSPLcom/android/server/om/IdmapDaemon;->getIdmapService()Landroid/os/IBinder; @@ -27515,7 +28354,7 @@ HSPLcom/android/server/om/IdmapManager;-><init>(Lcom/android/server/om/IdmapDaem HSPLcom/android/server/om/IdmapManager;->calculateFulfilledPolicies(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;I)I PLcom/android/server/om/IdmapManager;->createFabricatedOverlay(Landroid/os/FabricatedOverlayInternal;)Landroid/os/FabricatedOverlayInfo; HSPLcom/android/server/om/IdmapManager;->createIdmap(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;Ljava/lang/String;I)I -PLcom/android/server/om/IdmapManager;->deleteFabricatedOverlay(Ljava/lang/String;)Z +HSPLcom/android/server/om/IdmapManager;->deleteFabricatedOverlay(Ljava/lang/String;)Z PLcom/android/server/om/IdmapManager;->dumpIdmap(Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/server/om/IdmapManager;->enforceOverlayable(Lcom/android/server/pm/pkg/AndroidPackage;)Z HSPLcom/android/server/om/IdmapManager;->getFabricatedOverlayInfos()Ljava/util/List; @@ -27552,7 +28391,7 @@ HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$$Extern HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;->-$$Nest$fgetmInstalledUsers(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;)Ljava/util/Set; HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;->-$$Nest$fgetmPackage(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;)Lcom/android/server/pm/pkg/AndroidPackage; -PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;->-$$Nest$fputmPackage(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;Lcom/android/server/pm/pkg/AndroidPackage;)V +HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;->-$$Nest$fputmPackage(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;Lcom/android/server/pm/pkg/AndroidPackage;)V HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;-><init>(Lcom/android/server/pm/pkg/AndroidPackage;)V HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers;-><init>(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl$AndroidPackageUsers-IA;)V HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->$r8$lambda$bVWq0eEmboUYTpuEsuGvV3KFDYc(Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;ILcom/android/server/pm/pkg/AndroidPackage;)V @@ -27796,8 +28635,6 @@ PLcom/android/server/os/BugreportManagerServiceImpl;->ensureUserCanTakeBugReport PLcom/android/server/os/BugreportManagerServiceImpl;->getDumpstateBinderServiceLocked()Landroid/os/IDumpstate; PLcom/android/server/os/BugreportManagerServiceImpl;->isDumpstateBinderServiceRunningLocked()Z PLcom/android/server/os/BugreportManagerServiceImpl;->startAndGetDumpstateBinderServiceLocked()Landroid/os/IDumpstate; -PLcom/android/server/os/BugreportManagerServiceImpl;->startBugreport(ILjava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;ILandroid/os/IDumpstateListener;Z)V -PLcom/android/server/os/BugreportManagerServiceImpl;->startBugreportLocked(ILjava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;ILandroid/os/IDumpstateListener;Z)V PLcom/android/server/os/BugreportManagerServiceImpl;->validateBugreportMode(I)V HSPLcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;-><init>(Landroid/content/Context;)V HPLcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;->checkPackageBelongsToCaller(Ljava/lang/String;)Z @@ -28015,8 +28852,11 @@ PLcom/android/server/people/data/DataMaintenanceService;->onStartJob(Landroid/ap PLcom/android/server/people/data/DataMaintenanceService;->scheduleJob(Landroid/content/Context;I)V PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/people/data/DataManager;Ljava/util/List;)V PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda0;->run()V +PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda10;-><init>(Lcom/android/server/people/data/DataManager;J)V PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V +PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda11;-><init>(Ljava/util/Set;)V PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;)V +PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda12;-><init>(Ljava/util/Set;Ljava/util/List;)V PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/people/data/DataManager;Ljava/util/List;Lcom/android/server/people/data/PackageData;)V PLcom/android/server/people/data/DataManager$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V @@ -28123,6 +28963,7 @@ PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;-><init>(Lc PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->lambda$new$0(ILjava/lang/String;)Lcom/android/server/people/data/PackageData; PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->onEvent(Lcom/android/server/people/data/PackageData;Lcom/android/server/people/data/ConversationInfo;Lcom/android/server/people/data/Event;)V PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;->run()V +PLcom/android/server/people/data/DataManager;->$r8$lambda$3Py2BhdEshPFvgocLuY89YSHaCs(Ljava/util/Set;Lcom/android/server/pm/pkg/AndroidPackage;)V PLcom/android/server/people/data/DataManager;->$r8$lambda$CEP_MSm_RDjLw6X73MnXiP6mtgk(Lcom/android/server/people/data/DataManager;JLjava/lang/String;ILjava/util/List;Lcom/android/server/people/data/ConversationInfo;)V PLcom/android/server/people/data/DataManager;->$r8$lambda$CFF6sq2DwXdpGAaZvwveNH2Tj4c(Lcom/android/server/people/data/DataManager;JILcom/android/server/people/data/PackageData;)V PLcom/android/server/people/data/DataManager;->$r8$lambda$Qh1t5aK9GRz_fp5tfjOuAeO9338(Lcom/android/server/people/data/DataManager;Landroid/os/CancellationSignal;ILcom/android/server/people/data/PackageData;)V @@ -28179,6 +29020,7 @@ PLcom/android/server/people/data/DataManager;->lambda$pruneExpiredConversationSt PLcom/android/server/people/data/DataManager;->lambda$pruneOldRecentConversations$4(JLjava/lang/String;ILjava/util/List;Lcom/android/server/people/data/ConversationInfo;)V PLcom/android/server/people/data/DataManager;->lambda$pruneOldRecentConversations$5(JILcom/android/server/people/data/PackageData;)V PLcom/android/server/people/data/DataManager;->lambda$pruneUninstalledPackageData$10(Ljava/util/Set;Ljava/util/List;Lcom/android/server/people/data/PackageData;)V +PLcom/android/server/people/data/DataManager;->lambda$pruneUninstalledPackageData$9(Ljava/util/Set;Lcom/android/server/pm/pkg/AndroidPackage;)V HPLcom/android/server/people/data/DataManager;->notifyConversationsListeners(Ljava/util/List;)V PLcom/android/server/people/data/DataManager;->onUserStopping(I)V PLcom/android/server/people/data/DataManager;->onUserUnlocked(I)V @@ -28218,6 +29060,7 @@ PLcom/android/server/people/data/EventHistoryImpl$$ExternalSyntheticLambda1;->ac PLcom/android/server/people/data/EventHistoryImpl$$ExternalSyntheticLambda2;-><init>()V PLcom/android/server/people/data/EventHistoryImpl$$ExternalSyntheticLambda2;->accept(Ljava/io/File;Ljava/lang/String;)Z PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWriter$$ExternalSyntheticLambda0;-><init>()V +PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWriter$$ExternalSyntheticLambda0;->write(Landroid/util/proto/ProtoOutputStream;Ljava/lang/Object;)V PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWriter$$ExternalSyntheticLambda1;-><init>()V PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWriter;->$r8$lambda$4FpKD3JqD7oPh5oF-wfPRKifF50(Landroid/util/proto/ProtoOutputStream;Landroid/util/SparseArray;)V PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWriter;->$r8$lambda$ktzQOopF-l7iJzHwxPqdapZm8UI(Landroid/util/proto/ProtoInputStream;)Landroid/util/SparseArray; @@ -28231,6 +29074,7 @@ PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWrite PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWriter;->protoStreamWriter()Lcom/android/server/people/data/AbstractProtoDiskReadWriter$ProtoStreamWriter; PLcom/android/server/people/data/EventHistoryImpl$EventIndexesProtoDiskReadWriter;->scheduleIndexesSave(Landroid/util/SparseArray;)V PLcom/android/server/people/data/EventHistoryImpl$EventsProtoDiskReadWriter$$ExternalSyntheticLambda0;-><init>()V +PLcom/android/server/people/data/EventHistoryImpl$EventsProtoDiskReadWriter$$ExternalSyntheticLambda0;->write(Landroid/util/proto/ProtoOutputStream;Ljava/lang/Object;)V PLcom/android/server/people/data/EventHistoryImpl$EventsProtoDiskReadWriter$$ExternalSyntheticLambda1;-><init>()V PLcom/android/server/people/data/EventHistoryImpl$EventsProtoDiskReadWriter;->$r8$lambda$Yp0tIyCkeYwqN2AOcfu70makIIU(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/people/data/EventList;)V PLcom/android/server/people/data/EventHistoryImpl$EventsProtoDiskReadWriter;->$r8$lambda$vJsurMjrZErnFf7rM4W-yRs9F2g(Landroid/util/proto/ProtoInputStream;)Lcom/android/server/people/data/EventList; @@ -28264,7 +29108,7 @@ PLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda0;->apply(Lj PLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda1;-><init>()V PLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda2;-><init>()V -PLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object; +HPLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda3;-><init>()V PLcom/android/server/people/data/EventIndex$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/people/data/EventIndex$Injector;-><init>()V @@ -28428,6 +29272,7 @@ HSPLcom/android/server/pm/ApexSystemServiceInfo;-><init>(Ljava/lang/String;Ljava HSPLcom/android/server/pm/ApexSystemServiceInfo;->getJarPath()Ljava/lang/String; HSPLcom/android/server/pm/ApexSystemServiceInfo;->getName()Ljava/lang/String; HSPLcom/android/server/pm/ApkChecksums$Injector;-><init>(Lcom/android/server/pm/ApkChecksums$Injector$Producer;Lcom/android/server/pm/ApkChecksums$Injector$Producer;Lcom/android/server/pm/ApkChecksums$Injector$Producer;Lcom/android/server/pm/ApkChecksums$Injector$Producer;)V +PLcom/android/server/pm/ApkChecksums$Injector;->getIncrementalManager()Landroid/os/incremental/IncrementalManager; PLcom/android/server/pm/ApkChecksums$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal; HSPLcom/android/server/pm/ApkChecksums;-><clinit>()V HPLcom/android/server/pm/ApkChecksums;->buildDigestsPathForApk(Ljava/lang/String;)Ljava/lang/String; @@ -28453,6 +29298,7 @@ HSPLcom/android/server/pm/ApkChecksums;->needToWait(Ljava/io/File;ILjava/util/Ma HSPLcom/android/server/pm/ApkChecksums;->processRequiredChecksums(Ljava/util/List;Ljava/util/List;ILandroid/content/pm/IOnChecksumsReadyListener;Lcom/android/server/pm/ApkChecksums$Injector;J)V PLcom/android/server/pm/ApkChecksums;->readChecksums(Ljava/io/File;)[Landroid/content/pm/Checksum; PLcom/android/server/pm/ApkChecksums;->readChecksums(Ljava/io/InputStream;)[Landroid/content/pm/Checksum; +PLcom/android/server/pm/ApkChecksums;->verityHashForFile(Ljava/io/File;[B)[B PLcom/android/server/pm/ApkChecksums;->writeChecksums(Ljava/io/OutputStream;[Landroid/content/pm/Checksum;)V PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/UserManagerInternal;Landroid/content/pm/UserInfo;Lcom/android/server/pm/pkg/AndroidPackage;Landroid/os/storage/StorageManagerInternal;)V PLcom/android/server/pm/AppDataHelper$$ExternalSyntheticLambda0;->run()V @@ -28529,8 +29375,8 @@ HPLcom/android/server/pm/AppsFilterBase;->isQueryableViaUsesPermission(II)Z+]Lco HPLcom/android/server/pm/AppsFilterBase;->isRetainedImplicitlyQueryable(II)Z+]Lcom/android/server/utils/WatchedSparseSetArray;Lcom/android/server/utils/WatchedSparseSetArray; HPLcom/android/server/pm/AppsFilterBase;->lambda$dumpQueries$0(Landroid/util/SparseArray;[ILcom/android/internal/util/function/QuadFunction;Ljava/lang/Integer;)Ljava/lang/String; HPLcom/android/server/pm/AppsFilterBase;->log(Ljava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;Ljava/lang/String;)V -HSPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplication(Lcom/android/server/pm/snapshot/PackageDataSnapshot;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z+]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/AppsFilterBase;Lcom/android/server/pm/AppsFilterSnapshotImpl;,Lcom/android/server/pm/AppsFilterImpl; -HSPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplicationInternal(Lcom/android/server/pm/Computer;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/AppsFilterBase;Lcom/android/server/pm/AppsFilterImpl;,Lcom/android/server/pm/AppsFilterSnapshotImpl;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/om/OverlayReferenceMapper;Lcom/android/server/om/OverlayReferenceMapper;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplication(Lcom/android/server/pm/snapshot/PackageDataSnapshot;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/AppsFilterBase;Lcom/android/server/pm/AppsFilterSnapshotImpl;,Lcom/android/server/pm/AppsFilterImpl;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl; +HSPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplicationInternal(Lcom/android/server/pm/Computer;ILjava/lang/Object;Lcom/android/server/pm/pkg/PackageStateInternal;I)Z+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/AppsFilterBase;Lcom/android/server/pm/AppsFilterImpl;,Lcom/android/server/pm/AppsFilterSnapshotImpl;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/om/OverlayReferenceMapper;Lcom/android/server/om/OverlayReferenceMapper;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HPLcom/android/server/pm/AppsFilterBase;->shouldFilterApplicationUsingCache(III)Z+]Lcom/android/server/utils/WatchedSparseBooleanMatrix;Lcom/android/server/utils/WatchedSparseBooleanMatrix; HSPLcom/android/server/pm/AppsFilterImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/AppsFilterImpl;)V PLcom/android/server/pm/AppsFilterImpl$$ExternalSyntheticLambda0;->run()V @@ -28556,10 +29402,10 @@ PLcom/android/server/pm/AppsFilterImpl;->$r8$lambda$RMXPXLVuYbJC38Bzr-Klqa0z4MQ( HSPLcom/android/server/pm/AppsFilterImpl;->-$$Nest$monChanged(Lcom/android/server/pm/AppsFilterImpl;)V HSPLcom/android/server/pm/AppsFilterImpl;-><init>(Lcom/android/server/pm/FeatureConfig;[Ljava/lang/String;ZLcom/android/server/om/OverlayReferenceMapper$Provider;Landroid/os/Handler;)V HSPLcom/android/server/pm/AppsFilterImpl;->addPackage(Lcom/android/server/pm/Computer;Lcom/android/server/pm/pkg/PackageStateInternal;Z)V -HSPLcom/android/server/pm/AppsFilterImpl;->addPackageInternal(Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArrayMap;)Landroid/util/ArraySet;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedPermissionImpl;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Lcom/android/server/utils/WatchedArraySet;Lcom/android/server/utils/WatchedArraySet;]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/server/pm/pkg/component/ParsedUsesPermission;Lcom/android/server/pm/pkg/component/ParsedUsesPermissionImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Lcom/android/server/om/OverlayReferenceMapper;Lcom/android/server/om/OverlayReferenceMapper;]Lcom/android/server/utils/WatchedArrayList;Lcom/android/server/utils/WatchedArrayList;]Ljava/util/Set;Ljava/util/HashSet;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/utils/WatchedSparseSetArray;Lcom/android/server/utils/WatchedSparseSetArray;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;,Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/AppsFilterImpl;->addPackageInternal(Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArrayMap;)Landroid/util/ArraySet;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedPermissionImpl;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Lcom/android/server/utils/WatchedArraySet;Lcom/android/server/utils/WatchedArraySet;]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/server/pm/pkg/component/ParsedUsesPermission;Lcom/android/server/pm/pkg/component/ParsedUsesPermissionImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Lcom/android/server/om/OverlayReferenceMapper;Lcom/android/server/om/OverlayReferenceMapper;]Lcom/android/server/utils/WatchedArrayList;Lcom/android/server/utils/WatchedArrayList;]Ljava/util/Set;Ljava/util/HashSet;]Lcom/android/server/pm/FeatureConfig;Lcom/android/server/pm/AppsFilterImpl$FeatureConfigImpl;]Lcom/android/server/utils/WatchedSparseSetArray;Lcom/android/server/utils/WatchedSparseSetArray;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;,Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;,Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;,Ljava/util/Collections$UnmodifiableCollection$1; HSPLcom/android/server/pm/AppsFilterImpl;->create(Lcom/android/server/pm/PackageManagerServiceInjector;Landroid/content/pm/PackageManagerInternal;)Lcom/android/server/pm/AppsFilterImpl; HSPLcom/android/server/pm/AppsFilterImpl;->dispatchChange(Lcom/android/server/utils/Watchable;)V -HSPLcom/android/server/pm/AppsFilterImpl;->grantImplicitAccess(IIZ)Z+]Lcom/android/server/pm/AppsFilterImpl;Lcom/android/server/pm/AppsFilterImpl;]Lcom/android/server/utils/WatchedSparseBooleanMatrix;Lcom/android/server/utils/WatchedSparseBooleanMatrix;]Lcom/android/server/utils/WatchedSparseSetArray;Lcom/android/server/utils/WatchedSparseSetArray;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLcom/android/server/pm/AppsFilterImpl;->grantImplicitAccess(IIZ)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/pm/AppsFilterImpl;Lcom/android/server/pm/AppsFilterImpl;]Lcom/android/server/utils/WatchedSparseBooleanMatrix;Lcom/android/server/utils/WatchedSparseBooleanMatrix;]Lcom/android/server/utils/WatchedSparseSetArray;Lcom/android/server/utils/WatchedSparseSetArray; HSPLcom/android/server/pm/AppsFilterImpl;->invalidateCache(Ljava/lang/String;)V PLcom/android/server/pm/AppsFilterImpl;->isQueryableViaComponentWhenRequireRecompute(Landroid/util/ArrayMap;Lcom/android/server/pm/pkg/PackageStateInternal;Landroid/util/ArraySet;Lcom/android/server/pm/pkg/AndroidPackage;II)Z HSPLcom/android/server/pm/AppsFilterImpl;->isRegisteredObserver(Lcom/android/server/utils/Watcher;)Z @@ -28567,7 +29413,7 @@ HSPLcom/android/server/pm/AppsFilterImpl;->isSystemSigned(Landroid/content/pm/Si PLcom/android/server/pm/AppsFilterImpl;->lambda$updateEntireShouldFilterCacheAsync$0(Landroid/content/pm/PackageManagerInternal;J)V HSPLcom/android/server/pm/AppsFilterImpl;->onChanged()V HSPLcom/android/server/pm/AppsFilterImpl;->onSystemReady(Landroid/content/pm/PackageManagerInternal;)V -HSPLcom/android/server/pm/AppsFilterImpl;->pkgInstruments(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/AppsFilterImpl;->pkgInstruments(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/component/ParsedInstrumentation;Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl; HSPLcom/android/server/pm/AppsFilterImpl;->readCacheEnabledSysProp()V HPLcom/android/server/pm/AppsFilterImpl;->recomputeComponentVisibility(Landroid/util/ArrayMap;)V HSPLcom/android/server/pm/AppsFilterImpl;->registerObserver(Lcom/android/server/utils/Watcher;)V @@ -28590,20 +29436,20 @@ HPLcom/android/server/pm/AppsFilterLocked;->isRetainedImplicitlyQueryable(II)Z HPLcom/android/server/pm/AppsFilterLocked;->shouldFilterApplicationUsingCache(III)Z HSPLcom/android/server/pm/AppsFilterSnapshotImpl;-><init>(Lcom/android/server/pm/AppsFilterImpl;)V HSPLcom/android/server/pm/AppsFilterUtils;->canQueryAsInstaller(Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HSPLcom/android/server/pm/AppsFilterUtils;->canQueryViaComponents(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/utils/WatchedArrayList;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Ljava/util/Set;Landroid/util/ArraySet;,Ljava/util/Collections$EmptySet; -HSPLcom/android/server/pm/AppsFilterUtils;->canQueryViaPackage(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HSPLcom/android/server/pm/AppsFilterUtils;->canQueryViaUsesLibrary(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HPLcom/android/server/pm/AppsFilterUtils;->matchesAnyComponents(Landroid/content/Intent;Ljava/util/List;Lcom/android/server/utils/WatchedArrayList;)Z+]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl; +HSPLcom/android/server/pm/AppsFilterUtils;->canQueryViaComponents(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/utils/WatchedArrayList;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/Set;Landroid/util/ArraySet;,Ljava/util/Collections$EmptySet;,Ljava/util/Collections$UnmodifiableSet; +HSPLcom/android/server/pm/AppsFilterUtils;->canQueryViaPackage(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/AppsFilterUtils;->canQueryViaUsesLibrary(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HPLcom/android/server/pm/AppsFilterUtils;->matchesAnyComponents(Landroid/content/Intent;Ljava/util/List;Lcom/android/server/utils/WatchedArrayList;)Z+]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl; HPLcom/android/server/pm/AppsFilterUtils;->matchesAnyFilter(Landroid/content/Intent;Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/utils/WatchedArrayList;)Z+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Ljava/util/List;Ljava/util/ArrayList; HPLcom/android/server/pm/AppsFilterUtils;->matchesIntentFilter(Landroid/content/Intent;Landroid/content/IntentFilter;Lcom/android/server/utils/WatchedArrayList;)Z+]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/utils/WatchedArrayList;Lcom/android/server/utils/WatchedArrayList;]Landroid/content/Intent;Landroid/content/Intent; HPLcom/android/server/pm/AppsFilterUtils;->matchesPackage(Landroid/content/Intent;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/utils/WatchedArrayList;)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; HPLcom/android/server/pm/AppsFilterUtils;->matchesProviders(Ljava/util/Set;Lcom/android/server/pm/pkg/AndroidPackage;)Z -HSPLcom/android/server/pm/AppsFilterUtils;->requestsQueryAllPackages(Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/AppsFilterUtils;->requestsQueryAllPackages(Lcom/android/server/pm/pkg/AndroidPackage;)Z+]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; PLcom/android/server/pm/BackgroundDexOptJobService;-><init>()V PLcom/android/server/pm/BackgroundDexOptJobService;->onStartJob(Landroid/app/job/JobParameters;)Z PLcom/android/server/pm/BackgroundDexOptJobService;->onStopJob(Landroid/app/job/JobParameters;)Z HPLcom/android/server/pm/BackgroundDexOptService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/BackgroundDexOptService;Lcom/android/server/pm/dex/DexoptOptions;)V -PLcom/android/server/pm/BackgroundDexOptService$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; +HPLcom/android/server/pm/BackgroundDexOptService$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; PLcom/android/server/pm/BackgroundDexOptService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/BackgroundDexOptService;)V PLcom/android/server/pm/BackgroundDexOptService$$ExternalSyntheticLambda2;->run()V PLcom/android/server/pm/BackgroundDexOptService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/BackgroundDexOptService;Lcom/android/server/pm/PackageManagerService;Ljava/util/List;Landroid/app/job/JobParameters;Lcom/android/server/pm/BackgroundDexOptJobService;)V @@ -28744,21 +29590,20 @@ HSPLcom/android/server/pm/ComputerEngine;-><clinit>()V HSPLcom/android/server/pm/ComputerEngine;-><init>(Lcom/android/server/pm/PackageManagerService$Snapshot;I)V HSPLcom/android/server/pm/ComputerEngine;->addPackageHoldingPermissions(Ljava/util/ArrayList;Lcom/android/server/pm/pkg/PackageStateInternal;[Ljava/lang/String;[ZJI)V+]Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/pm/ComputerEngine;->androidApplication()Landroid/content/pm/ApplicationInfo; -HSPLcom/android/server/pm/ComputerEngine;->applyPostResolutionFilter(Ljava/util/List;Ljava/lang/String;ZIZILandroid/content/Intent;)Ljava/util/List;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/AppsFilterSnapshot;Lcom/android/server/pm/AppsFilterSnapshotImpl;,Lcom/android/server/pm/AppsFilterImpl;]Landroid/content/Intent;Landroid/content/Intent; -HSPLcom/android/server/pm/ComputerEngine;->applyPostServiceResolutionFilter(Ljava/util/List;Ljava/lang/String;II)Ljava/util/List;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/AppsFilterSnapshot;Lcom/android/server/pm/AppsFilterSnapshotImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo; +HSPLcom/android/server/pm/ComputerEngine;->applyPostResolutionFilter(Ljava/util/List;Ljava/lang/String;ZIZILandroid/content/Intent;)Ljava/util/List;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/AppsFilterSnapshot;Lcom/android/server/pm/AppsFilterImpl;,Lcom/android/server/pm/AppsFilterSnapshotImpl;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/pm/ComputerEngine;->applyPostServiceResolutionFilter(Ljava/util/List;Ljava/lang/String;II)Ljava/util/List;+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/AppsFilterSnapshot;Lcom/android/server/pm/AppsFilterSnapshotImpl; HPLcom/android/server/pm/ComputerEngine;->areWebInstantAppsDisabled(I)Z PLcom/android/server/pm/ComputerEngine;->canAccessComponent(ILandroid/content/ComponentName;I)Z PLcom/android/server/pm/ComputerEngine;->canForwardTo(Landroid/content/Intent;Ljava/lang/String;II)Z PLcom/android/server/pm/ComputerEngine;->canPackageQuery(Ljava/lang/String;Ljava/lang/String;I)Z -HPLcom/android/server/pm/ComputerEngine;->canQueryPackage(ILjava/lang/String;)Z+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting;]Lcom/android/server/pm/AppsFilterSnapshot;Lcom/android/server/pm/AppsFilterSnapshotImpl;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting; +HPLcom/android/server/pm/ComputerEngine;->canQueryPackage(ILjava/lang/String;)Z+]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting;]Lcom/android/server/pm/AppsFilterSnapshot;Lcom/android/server/pm/AppsFilterSnapshotImpl; HSPLcom/android/server/pm/ComputerEngine;->canViewInstantApps(II)Z+]Landroid/content/Context;Landroid/app/ContextImpl; HSPLcom/android/server/pm/ComputerEngine;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String; PLcom/android/server/pm/ComputerEngine;->checkPackageFrozen(Ljava/lang/String;)V HSPLcom/android/server/pm/ComputerEngine;->checkSignatures(Ljava/lang/String;Ljava/lang/String;I)I HSPLcom/android/server/pm/ComputerEngine;->checkSignaturesInternal(Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;)I HSPLcom/android/server/pm/ComputerEngine;->checkUidPermission(Ljava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl; -PLcom/android/server/pm/ComputerEngine;->checkUidSignatures(II)I -HPLcom/android/server/pm/ComputerEngine;->createForwardingResolveInfo(Lcom/android/server/pm/CrossProfileIntentFilter;Landroid/content/Intent;Ljava/lang/String;JI)Lcom/android/server/pm/CrossProfileDomainInfo;+]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/verify/domain/DomainVerificationService;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/CrossProfileIntentFilter;Lcom/android/server/pm/CrossProfileIntentFilter; +HPLcom/android/server/pm/ComputerEngine;->checkUidSignatures(II)I HPLcom/android/server/pm/ComputerEngine;->createForwardingResolveInfoUnchecked(Lcom/android/server/pm/WatchedIntentFilter;II)Landroid/content/pm/ResolveInfo; PLcom/android/server/pm/ComputerEngine;->currentToCanonicalPackageNames([Ljava/lang/String;)[Ljava/lang/String; HPLcom/android/server/pm/ComputerEngine;->dump(ILjava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V @@ -28768,35 +29613,33 @@ PLcom/android/server/pm/ComputerEngine;->dumpPackages(Ljava/io/PrintWriter;Ljava PLcom/android/server/pm/ComputerEngine;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;)V PLcom/android/server/pm/ComputerEngine;->dumpSharedUsers(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V HSPLcom/android/server/pm/ComputerEngine;->enforceCrossUserOrProfilePermission(IIZZLjava/lang/String;)V+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HSPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(IIZZLjava/lang/String;)V+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; -HSPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(IIZZZLjava/lang/String;)V+]Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerServiceInjector;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(IIZZLjava/lang/String;)V+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; +HSPLcom/android/server/pm/ComputerEngine;->enforceCrossUserPermission(IIZZZLjava/lang/String;)V+]Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerServiceInjector;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HPLcom/android/server/pm/ComputerEngine;->filterAppAccess(II)Z HSPLcom/android/server/pm/ComputerEngine;->filterAppAccess(Ljava/lang/String;IIZ)Z+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; -PLcom/android/server/pm/ComputerEngine;->filterCandidatesWithDomainPreferredActivitiesLPr(Landroid/content/Intent;JLjava/util/List;Lcom/android/server/pm/CrossProfileDomainInfo;I)Ljava/util/List; -HPLcom/android/server/pm/ComputerEngine;->filterCandidatesWithDomainPreferredActivitiesLPrBody(Landroid/content/Intent;JLjava/util/List;Lcom/android/server/pm/CrossProfileDomainInfo;IZ)Ljava/util/ArrayList; HSPLcom/android/server/pm/ComputerEngine;->filterIfNotSystemUser(Ljava/util/List;I)Ljava/util/List;+]Ljava/util/List;Ljava/util/Collections$SingletonList;,Ljava/util/ArrayList; HSPLcom/android/server/pm/ComputerEngine;->filterOnlySystemPackages([Ljava/lang/String;)[Ljava/lang/String; -HSPLcom/android/server/pm/ComputerEngine;->filterSdkLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->filterSdkLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->filterSharedLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ComputerEngine;->filterStaticSharedLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z+]Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->filterStaticSharedLibPackage(Lcom/android/server/pm/pkg/PackageStateInternal;IIJ)Z+]Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; PLcom/android/server/pm/ComputerEngine;->findPersistentPreferredActivity(Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;ZI)Landroid/content/pm/ResolveInfo; HPLcom/android/server/pm/ComputerEngine;->findPreferredActivityBody(Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;ZZZIZIZ)Lcom/android/server/pm/PackageManagerService$FindPreferredActivityBodyResult; PLcom/android/server/pm/ComputerEngine;->findPreferredActivityInternal(Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;ZZZIZ)Lcom/android/server/pm/PackageManagerService$FindPreferredActivityBodyResult; PLcom/android/server/pm/ComputerEngine;->findSharedNonSystemLibraries(Lcom/android/server/pm/pkg/PackageStateInternal;)Ljava/util/List; PLcom/android/server/pm/ComputerEngine;->generateApexPackageInfo(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V HPLcom/android/server/pm/ComputerEngine;->generateApplicationInfoFromSettings(Ljava/lang/String;JII)Landroid/content/pm/ApplicationInfo; -HSPLcom/android/server/pm/ComputerEngine;->generatePackageInfo(Lcom/android/server/pm/pkg/PackageStateInternal;JI)Landroid/content/pm/PackageInfo;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;,Lcom/android/server/pm/pkg/PackageUserStateDefault;]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; +HSPLcom/android/server/pm/ComputerEngine;->generatePackageInfo(Lcom/android/server/pm/pkg/PackageStateInternal;JI)Landroid/content/pm/PackageInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;,Lcom/android/server/pm/pkg/PackageUserStateDefault;]Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;]Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HSPLcom/android/server/pm/ComputerEngine;->getActivityInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo; HSPLcom/android/server/pm/ComputerEngine;->getActivityInfoInternal(Landroid/content/ComponentName;JII)Landroid/content/pm/ActivityInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getActivityInfoInternalBody(Landroid/content/ComponentName;JII)Landroid/content/pm/ActivityInfo;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; -PLcom/android/server/pm/ComputerEngine;->getAllAvailablePackageNames()[Ljava/lang/String; +HSPLcom/android/server/pm/ComputerEngine;->getAllAvailablePackageNames()[Ljava/lang/String; PLcom/android/server/pm/ComputerEngine;->getAllIntentFilters(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice; HSPLcom/android/server/pm/ComputerEngine;->getAllSharedUsers()Ljava/util/Collection;+]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; PLcom/android/server/pm/ComputerEngine;->getAppOpPermissionPackages(Ljava/lang/String;I)[Ljava/lang/String; HSPLcom/android/server/pm/ComputerEngine;->getApplicationEnabledSetting(Ljava/lang/String;I)I HSPLcom/android/server/pm/ComputerEngine;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getApplicationInfoInternal(Ljava/lang/String;JII)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ComputerEngine;->getApplicationInfoInternalBody(Ljava/lang/String;JII)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->getApplicationInfoInternalBody(Ljava/lang/String;JII)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; PLcom/android/server/pm/ComputerEngine;->getBlockUninstall(ILjava/lang/String;)Z HPLcom/android/server/pm/ComputerEngine;->getBlockUninstallForUser(Ljava/lang/String;I)Z+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HPLcom/android/server/pm/ComputerEngine;->getComponentEnabledSetting(Landroid/content/ComponentName;II)I @@ -28812,10 +29655,10 @@ PLcom/android/server/pm/ComputerEngine;->getHomeActivitiesAsUser(Ljava/util/List PLcom/android/server/pm/ComputerEngine;->getHomeIntent()Landroid/content/Intent; HPLcom/android/server/pm/ComputerEngine;->getInstallReason(Ljava/lang/String;I)I HSPLcom/android/server/pm/ComputerEngine;->getInstallSource(Ljava/lang/String;I)Lcom/android/server/pm/InstallSource;+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; -HSPLcom/android/server/pm/ComputerEngine;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Landroid/content/Context;Landroid/app/ContextImpl; -HSPLcom/android/server/pm/ComputerEngine;->getInstalledApplications(JII)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; +HSPLcom/android/server/pm/ComputerEngine;->getInstalledApplications(JII)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator; HSPLcom/android/server/pm/ComputerEngine;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice; -HSPLcom/android/server/pm/ComputerEngine;->getInstalledPackagesBody(JII)Landroid/content/pm/ParceledListSlice;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;,Landroid/util/MapCollections$ValuesCollection;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$UnmodifiableCollection$1;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->getInstalledPackagesBody(JII)Landroid/content/pm/ParceledListSlice;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;,Landroid/util/MapCollections$ValuesCollection;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$UnmodifiableCollection$1; HPLcom/android/server/pm/ComputerEngine;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HSPLcom/android/server/pm/ComputerEngine;->getInstantAppPackageName(I)Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HPLcom/android/server/pm/ComputerEngine;->getIsolatedOwner(I)I @@ -28824,21 +29667,21 @@ HSPLcom/android/server/pm/ComputerEngine;->getNameForUid(I)Ljava/lang/String;+]L HSPLcom/android/server/pm/ComputerEngine;->getNamesForUids([I)[Ljava/lang/String; HPLcom/android/server/pm/ComputerEngine;->getNotifyPackagesForReplacedReceived([Ljava/lang/String;)Landroid/util/ArraySet; HSPLcom/android/server/pm/ComputerEngine;->getPackage(I)Lcom/android/server/pm/pkg/AndroidPackage;+]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ComputerEngine;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/AndroidPackage;+]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/ComputerEngine;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/AndroidPackage;+]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getPackageGids(Ljava/lang/String;JI)[I HSPLcom/android/server/pm/ComputerEngine;->getPackageInfo(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getPackageInfoInternal(Ljava/lang/String;JJII)Landroid/content/pm/PackageInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ComputerEngine;->getPackageInfoInternalBody(Ljava/lang/String;JJII)Landroid/content/pm/PackageInfo;+]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->getPackageInfoInternalBody(Ljava/lang/String;JJII)Landroid/content/pm/PackageInfo;+]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HSPLcom/android/server/pm/ComputerEngine;->getPackageStartability(ZLjava/lang/String;II)I+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getPackageStateForInstalledAndFiltered(Ljava/lang/String;II)Lcom/android/server/pm/pkg/PackageStateInternal;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getPackageStateInternal(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getPackageStateInternal(Ljava/lang/String;I)Lcom/android/server/pm/pkg/PackageStateInternal;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HSPLcom/android/server/pm/ComputerEngine;->getPackageStates()Landroid/util/ArrayMap; HSPLcom/android/server/pm/ComputerEngine;->getPackageUid(Ljava/lang/String;JI)I+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ComputerEngine;->getPackageUidInternal(Ljava/lang/String;JII)I+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->getPackageUidInternal(Ljava/lang/String;JII)I+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HSPLcom/android/server/pm/ComputerEngine;->getPackagesForUid(I)[Ljava/lang/String;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->getPackagesForUidInternal(II)[Ljava/lang/String;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ComputerEngine;->getPackagesForUidInternalBody(IIIZ)[Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting; +HSPLcom/android/server/pm/ComputerEngine;->getPackagesForUidInternalBody(IIIZ)[Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;,Lcom/android/server/pm/pkg/PackageUserStateDefault;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting; HSPLcom/android/server/pm/ComputerEngine;->getPackagesHoldingPermissions([Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator; HSPLcom/android/server/pm/ComputerEngine;->getPackagesUsingSharedLibrary(Landroid/content/pm/SharedLibraryInfo;JII)Ljava/util/List;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/ComputerEngine;->getPersistentApplications(ZI)Ljava/util/List; @@ -28857,10 +29700,10 @@ HSPLcom/android/server/pm/ComputerEngine;->getSharedUserPackages(I)Landroid/util HSPLcom/android/server/pm/ComputerEngine;->getSharedUserPackagesForPackage(Ljava/lang/String;I)[Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/SharedUserApi;Lcom/android/server/pm/SharedUserSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; HSPLcom/android/server/pm/ComputerEngine;->getSigningDetails(I)Landroid/content/pm/SigningDetails;+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings; PLcom/android/server/pm/ComputerEngine;->getSigningDetails(Ljava/lang/String;)Landroid/content/pm/SigningDetails; -PLcom/android/server/pm/ComputerEngine;->getSigningDetailsAndFilterAccess(III)Landroid/content/pm/SigningDetails; +HPLcom/android/server/pm/ComputerEngine;->getSigningDetailsAndFilterAccess(III)Landroid/content/pm/SigningDetails; HPLcom/android/server/pm/ComputerEngine;->getSystemSharedLibraryNames()[Ljava/lang/String; HSPLcom/android/server/pm/ComputerEngine;->getTargetSdkVersion(Ljava/lang/String;)I+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HPLcom/android/server/pm/ComputerEngine;->getUidTargetSdkVersion(I)I+]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HPLcom/android/server/pm/ComputerEngine;->getUidTargetSdkVersion(I)I+]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting; HSPLcom/android/server/pm/ComputerEngine;->getUsed()I HSPLcom/android/server/pm/ComputerEngine;->getUserInfos()[Landroid/content/pm/UserInfo; HSPLcom/android/server/pm/ComputerEngine;->getVersion()I @@ -28890,22 +29733,19 @@ PLcom/android/server/pm/ComputerEngine;->isPersistentPreferredActivitySetByDpm(L HSPLcom/android/server/pm/ComputerEngine;->isRecentsAccessingChildProfiles(II)Z+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerServiceInjector;]Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/wm/ActivityTaskManagerService$LocalService; HPLcom/android/server/pm/ComputerEngine;->isSameProfileGroup(II)Z PLcom/android/server/pm/ComputerEngine;->isUidPrivileged(I)Z -HPLcom/android/server/pm/ComputerEngine;->isUserEnabled(I)Z HSPLcom/android/server/pm/ComputerEngine;->lambda$static$0(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I HPLcom/android/server/pm/ComputerEngine;->maybeAddInstantAppInstaller(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;JIZZ)Ljava/util/List; HSPLcom/android/server/pm/ComputerEngine;->queryContentProviders(Ljava/lang/String;IJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLcom/android/server/pm/ComputerEngine;->queryCrossProfileIntents(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;JIZ)Lcom/android/server/pm/CrossProfileDomainInfo;+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Ljava/util/List;Ljava/util/Collections$SingletonList;,Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/CrossProfileIntentFilter;Lcom/android/server/pm/CrossProfileIntentFilter; -HSPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JII)Ljava/util/List; -HSPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JJIIZZ)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerServiceInjector;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; -HSPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternalBody(Landroid/content/Intent;Ljava/lang/String;JIIZZLjava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/QueryIntentActivitiesResult;+]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;,Lcom/android/server/pm/resolution/ComponentResolver;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;JJIIZZ)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerServiceInjector;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/pm/ComputerEngine;->queryIntentActivitiesInternalBody(Landroid/content/Intent;Ljava/lang/String;JIIZZLjava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/QueryIntentActivitiesResult;+]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;,Lcom/android/server/pm/resolution/ComponentResolver;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/pm/ComputerEngine;->queryIntentServicesInternal(Landroid/content/Intent;Ljava/lang/String;JIIZ)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerServiceInjector;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Landroid/content/Intent;Landroid/content/Intent; -HSPLcom/android/server/pm/ComputerEngine;->queryIntentServicesInternalBody(Landroid/content/Intent;Ljava/lang/String;JIILjava/lang/String;)Ljava/util/List;+]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HSPLcom/android/server/pm/ComputerEngine;->querySkipCurrentProfileIntents(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/CrossProfileIntentFilter;Lcom/android/server/pm/CrossProfileIntentFilter; +HSPLcom/android/server/pm/ComputerEngine;->queryIntentServicesInternalBody(Landroid/content/Intent;Ljava/lang/String;JIILjava/lang/String;)Ljava/util/List;+]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/pm/ComputerEngine;->resolveComponentName()Landroid/content/ComponentName; HSPLcom/android/server/pm/ComputerEngine;->resolveContentProvider(Ljava/lang/String;JII)Landroid/content/pm/ProviderInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerServiceInjector;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/uri/UriGrantsManagerInternal;Lcom/android/server/uri/UriGrantsManagerService$LocalService; HSPLcom/android/server/pm/ComputerEngine;->resolveExternalPackageName(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String;+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HSPLcom/android/server/pm/ComputerEngine;->resolveInternalPackageName(Ljava/lang/String;J)Ljava/lang/String;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/ComputerEngine;->resolveInternalPackageName(Ljava/lang/String;J)Ljava/lang/String;+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->resolveInternalPackageNameInternalLocked(Ljava/lang/String;JI)Ljava/lang/String;+]Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;]Lcom/android/server/utils/WatchedLongSparseArray;Lcom/android/server/utils/WatchedLongSparseArray;]Lcom/android/server/pm/ComputerEngine$Settings;Lcom/android/server/pm/ComputerEngine$Settings;]Lcom/android/server/pm/SharedLibrariesRead;Lcom/android/server/pm/SharedLibrariesImpl;]Landroid/content/pm/VersionedPackage;Landroid/content/pm/VersionedPackage; HSPLcom/android/server/pm/ComputerEngine;->safeMode()Z HSPLcom/android/server/pm/ComputerEngine;->shouldFilterApplication(Lcom/android/server/pm/SharedUserSetting;II)Z+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/SharedUserSetting; @@ -28919,7 +29759,7 @@ HSPLcom/android/server/pm/ComputerEngine;->updateFlagsForApplication(JI)J HSPLcom/android/server/pm/ComputerEngine;->updateFlagsForComponent(JI)J+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; HSPLcom/android/server/pm/ComputerEngine;->updateFlagsForPackage(JI)J+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->updateFlagsForResolve(JIIZZ)J+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ComputerEngine;->updateFlagsForResolve(JIIZZZ)J+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/ComputerEngine;->updateFlagsForResolve(JIIZZZ)J+]Lcom/android/server/pm/ComputerEngine;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ComputerEngine;->use()Lcom/android/server/pm/Computer; HSPLcom/android/server/pm/ComputerLocked;-><init>(Lcom/android/server/pm/PackageManagerService$Snapshot;)V PLcom/android/server/pm/ComputerLocked;->instantAppInstallerActivity()Landroid/content/pm/ActivityInfo; @@ -29025,7 +29865,6 @@ PLcom/android/server/pm/CrossProfileAppsServiceImpl;->startActivityAsUserByInten PLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyActivityCanHandleIntent(Landroid/content/Intent;II)V PLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyActivityCanHandleIntentAndExported(Landroid/content/Intent;Landroid/content/ComponentName;II)V HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyCallingPackage(Ljava/lang/String;)V -HPLcom/android/server/pm/CrossProfileDomainInfo;-><init>(Landroid/content/pm/ResolveInfo;I)V HSPLcom/android/server/pm/CrossProfileIntentFilter$1;-><init>(Lcom/android/server/pm/CrossProfileIntentFilter;Lcom/android/server/pm/CrossProfileIntentFilter;Lcom/android/server/utils/Watchable;)V HSPLcom/android/server/pm/CrossProfileIntentFilter$1;->createSnapshot()Lcom/android/server/pm/CrossProfileIntentFilter; HSPLcom/android/server/pm/CrossProfileIntentFilter$1;->createSnapshot()Ljava/lang/Object; @@ -29040,7 +29879,7 @@ PLcom/android/server/pm/CrossProfileIntentFilter;->getOwnerPackage()Ljava/lang/S HSPLcom/android/server/pm/CrossProfileIntentFilter;->getStringFromXml(Landroid/util/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HPLcom/android/server/pm/CrossProfileIntentFilter;->getTargetUserId()I HSPLcom/android/server/pm/CrossProfileIntentFilter;->makeCache()Lcom/android/server/utils/SnapshotCache; -HSPLcom/android/server/pm/CrossProfileIntentFilter;->snapshot()Lcom/android/server/pm/CrossProfileIntentFilter; +HSPLcom/android/server/pm/CrossProfileIntentFilter;->snapshot()Lcom/android/server/pm/CrossProfileIntentFilter;+]Lcom/android/server/utils/SnapshotCache;Lcom/android/server/pm/CrossProfileIntentFilter$1; HSPLcom/android/server/pm/CrossProfileIntentFilter;->writeToXml(Landroid/util/TypedXmlSerializer;)V HSPLcom/android/server/pm/CrossProfileIntentResolver$1;-><init>(Lcom/android/server/pm/CrossProfileIntentResolver;Lcom/android/server/pm/CrossProfileIntentResolver;Lcom/android/server/utils/Watchable;)V HSPLcom/android/server/pm/CrossProfileIntentResolver$1;->createSnapshot()Lcom/android/server/pm/CrossProfileIntentResolver; @@ -29090,7 +29929,7 @@ PLcom/android/server/pm/DeletePackageHelper;->deleteInstalledPackageLIF(Lcom/and PLcom/android/server/pm/DeletePackageHelper;->deleteInstalledSystemPackage(Lcom/android/server/pm/DeletePackageAction;[IZ)V PLcom/android/server/pm/DeletePackageHelper;->deletePackageLIF(Ljava/lang/String;Landroid/os/UserHandle;Z[IILcom/android/server/pm/PackageRemovedInfo;Z)Z PLcom/android/server/pm/DeletePackageHelper;->deletePackageVersionedInternal(Landroid/content/pm/VersionedPackage;Landroid/content/pm/IPackageDeleteObserver2;IIZ)V -PLcom/android/server/pm/DeletePackageHelper;->deletePackageX(Ljava/lang/String;JIIZ)I +HSPLcom/android/server/pm/DeletePackageHelper;->deletePackageX(Ljava/lang/String;JIIZ)I PLcom/android/server/pm/DeletePackageHelper;->executeDeletePackage(Lcom/android/server/pm/DeletePackageAction;Ljava/lang/String;Z[IZ)V PLcom/android/server/pm/DeletePackageHelper;->executeDeletePackageLIF(Lcom/android/server/pm/DeletePackageAction;Ljava/lang/String;Z[IZ)V PLcom/android/server/pm/DeletePackageHelper;->isCallerAllowedToSilentlyUninstall(Lcom/android/server/pm/Computer;ILjava/lang/String;)Z @@ -29131,7 +29970,7 @@ PLcom/android/server/pm/DexOptHelper;->getPackagesForDexopt(Ljava/util/Collectio PLcom/android/server/pm/DexOptHelper;->getPrebuildProfilePath(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String; HSPLcom/android/server/pm/DexOptHelper;->hasBcpApexesChanged()Z PLcom/android/server/pm/DexOptHelper;->isCallerInstallerForPackage(Lcom/android/server/pm/Computer;Ljava/lang/String;)Z -PLcom/android/server/pm/DexOptHelper;->isDexOptDialogShown()Z +HSPLcom/android/server/pm/DexOptHelper;->isDexOptDialogShown()Z PLcom/android/server/pm/DexOptHelper;->lambda$getOptimizablePackages$0(Ljava/util/ArrayList;Lcom/android/server/pm/pkg/PackageStateInternal;)V PLcom/android/server/pm/DexOptHelper;->lambda$getPackagesForDexopt$1(Lcom/android/server/pm/pkg/PackageStateInternal;)Z PLcom/android/server/pm/DexOptHelper;->lambda$getPackagesForDexopt$2(Landroid/util/ArraySet;Lcom/android/server/pm/pkg/PackageStateInternal;)Z @@ -29179,7 +30018,6 @@ PLcom/android/server/pm/DomainVerificationConnection;->snapshot()Lcom/android/se PLcom/android/server/pm/DumpHelper$$ExternalSyntheticLambda0;-><init>(Ljava/io/PrintWriter;)V PLcom/android/server/pm/DumpHelper$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/pm/DumpHelper;->$r8$lambda$xa8hSSgBhjegHHjHRwLJEgg4JO4(Ljava/io/PrintWriter;Ljava/lang/Integer;Landroid/util/SparseArray;)V -PLcom/android/server/pm/DumpHelper;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/StorageEventHelper;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/PackageInstallerService;[Ljava/lang/String;Lcom/android/server/pm/KnownPackages;Lcom/android/server/pm/ChangedPackagesTracker;Landroid/util/ArrayMap;Landroid/util/ArraySet;[Landroid/os/incremental/PerUidReadTimeouts;)V HPLcom/android/server/pm/DumpHelper;->doDump(Lcom/android/server/pm/Computer;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/pm/DumpHelper;->lambda$doDump$0(Ljava/io/PrintWriter;Ljava/lang/Integer;Landroid/util/SparseArray;)V PLcom/android/server/pm/DumpState;-><init>()V @@ -29375,7 +30213,7 @@ PLcom/android/server/pm/InstallPackageHelper;->scanSystemPackageTracedLI(Ljava/i HPLcom/android/server/pm/InstallPackageHelper;->sendPendingBroadcasts()V PLcom/android/server/pm/InstallPackageHelper;->setPackageInstalledForSystemPackage(Lcom/android/server/pm/pkg/AndroidPackage;[I[IZ)V PLcom/android/server/pm/InstallPackageHelper;->setUpFsVerityIfPossible(Lcom/android/server/pm/pkg/AndroidPackage;)V -PLcom/android/server/pm/InstallPackageHelper;->updateSettingsInternalLI(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/ReconciledPackage;[ILcom/android/server/pm/InstallRequest;)V +HPLcom/android/server/pm/InstallPackageHelper;->updateSettingsInternalLI(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/ReconciledPackage;[ILcom/android/server/pm/InstallRequest;)V PLcom/android/server/pm/InstallPackageHelper;->updateSettingsLI(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/ReconciledPackage;[ILcom/android/server/pm/InstallRequest;)V PLcom/android/server/pm/InstallPackageHelper;->verifyReplacingVersionCode(Landroid/content/pm/PackageInfoLite;JI)Landroid/util/Pair; PLcom/android/server/pm/InstallRequest$PackageInstalledInfo;-><init>()V @@ -29392,6 +30230,7 @@ PLcom/android/server/pm/InstallRequest;->getInstallReason()I PLcom/android/server/pm/InstallRequest;->getInstallScenario()I PLcom/android/server/pm/InstallRequest;->getInstallSource()Lcom/android/server/pm/InstallSource; PLcom/android/server/pm/InstallRequest;->getInstallerPackageName()Ljava/lang/String; +PLcom/android/server/pm/InstallRequest;->getLibraryConsumers()Ljava/util/ArrayList; PLcom/android/server/pm/InstallRequest;->getName()Ljava/lang/String; PLcom/android/server/pm/InstallRequest;->getNewUsers()[I PLcom/android/server/pm/InstallRequest;->getObserver()Landroid/content/pm/IPackageInstallObserver2; @@ -29468,17 +30307,17 @@ PLcom/android/server/pm/Installer;->freeCache(Ljava/lang/String;JI)V HPLcom/android/server/pm/Installer;->getAppSize(Ljava/lang/String;[Ljava/lang/String;III[J[Ljava/lang/String;Landroid/content/pm/PackageStats;)V PLcom/android/server/pm/Installer;->getExternalSize(Ljava/lang/String;II[I)[J PLcom/android/server/pm/Installer;->getOdexVisibility(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -PLcom/android/server/pm/Installer;->getUserSize(Ljava/lang/String;II[ILandroid/content/pm/PackageStats;)V +HPLcom/android/server/pm/Installer;->getUserSize(Ljava/lang/String;II[ILandroid/content/pm/PackageStats;)V PLcom/android/server/pm/Installer;->hashSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)[B HSPLcom/android/server/pm/Installer;->invalidateMounts()V -PLcom/android/server/pm/Installer;->isQuotaSupported(Ljava/lang/String;)Z +HPLcom/android/server/pm/Installer;->isQuotaSupported(Ljava/lang/String;)Z PLcom/android/server/pm/Installer;->linkFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/pm/Installer;->linkNativeLibraryDirectory(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V HPLcom/android/server/pm/Installer;->mergeProfiles(ILjava/lang/String;Ljava/lang/String;)I PLcom/android/server/pm/Installer;->moveAb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V HSPLcom/android/server/pm/Installer;->onStart()V HPLcom/android/server/pm/Installer;->prepareAppProfile(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z -PLcom/android/server/pm/Installer;->reconcileSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;I[Ljava/lang/String;Ljava/lang/String;I)Z +HPLcom/android/server/pm/Installer;->reconcileSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;I[Ljava/lang/String;Ljava/lang/String;I)Z HSPLcom/android/server/pm/Installer;->rmPackageDir(Ljava/lang/String;Ljava/lang/String;)V HSPLcom/android/server/pm/Installer;->rmdex(Ljava/lang/String;Ljava/lang/String;)V HSPLcom/android/server/pm/Installer;->setAppQuota(Ljava/lang/String;IIJ)V @@ -29487,6 +30326,7 @@ PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda0;-><init>(Lco PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda0;->run()V PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/InstallingSession;Lcom/android/server/pm/InstallRequest;)V PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda1;->run()V +PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/InstallingSession$MultiPackageInstallingSession;)V PLcom/android/server/pm/InstallingSession$$ExternalSyntheticLambda3;->run()V PLcom/android/server/pm/InstallingSession$MultiPackageInstallingSession$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/InstallingSession$MultiPackageInstallingSession;ILjava/util/List;)V PLcom/android/server/pm/InstallingSession$MultiPackageInstallingSession$$ExternalSyntheticLambda0;->run()V @@ -29494,6 +30334,7 @@ PLcom/android/server/pm/InstallingSession$MultiPackageInstallingSession;->$r8$la PLcom/android/server/pm/InstallingSession$MultiPackageInstallingSession;-><init>(Lcom/android/server/pm/InstallingSession;Landroid/os/UserHandle;Ljava/util/List;Lcom/android/server/pm/PackageManagerService;)V PLcom/android/server/pm/InstallingSession$MultiPackageInstallingSession;->lambda$tryProcessInstallRequest$0(ILjava/util/List;)V PLcom/android/server/pm/InstallingSession$MultiPackageInstallingSession;->start()V +PLcom/android/server/pm/InstallingSession$MultiPackageInstallingSession;->tryProcessInstallRequest(Lcom/android/server/pm/InstallRequest;)V PLcom/android/server/pm/InstallingSession;->$r8$lambda$1fV0Pylq2AWDHGaDKwBvZhjMer4(Lcom/android/server/pm/InstallingSession;)V PLcom/android/server/pm/InstallingSession;->$r8$lambda$f5al0ihjiRrHlR7maRQEPrj0osc(Lcom/android/server/pm/InstallingSession;Lcom/android/server/pm/InstallRequest;)V PLcom/android/server/pm/InstallingSession;->-$$Nest$mhandleReturnCode(Lcom/android/server/pm/InstallingSession;)V @@ -29650,7 +30491,7 @@ HSPLcom/android/server/pm/KeySetManagerService;->writeKeySetManagerServiceLPr(La HSPLcom/android/server/pm/KeySetManagerService;->writeKeySetsLPr(Landroid/util/TypedXmlSerializer;)V HSPLcom/android/server/pm/KeySetManagerService;->writePublicKeysLPr(Landroid/util/TypedXmlSerializer;)V HSPLcom/android/server/pm/KnownPackages;-><init>(Lcom/android/server/pm/DefaultAppProvider;Ljava/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/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/server/pm/KnownPackages;->getKnownPackageNames(Lcom/android/server/pm/Computer;II)[Ljava/lang/String;+]Lcom/android/server/pm/DefaultAppProvider;Lcom/android/server/pm/DefaultAppProvider;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; +HSPLcom/android/server/pm/KnownPackages;->getKnownPackageNames(Lcom/android/server/pm/Computer;II)[Ljava/lang/String;+]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/DefaultAppProvider;Lcom/android/server/pm/DefaultAppProvider; PLcom/android/server/pm/KnownPackages;->knownPackageToString(I)Ljava/lang/String; HSPLcom/android/server/pm/LauncherAppsService$BroadcastCookie;-><init>(Landroid/os/UserHandle;Ljava/lang/String;II)V PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;)V @@ -29697,13 +30538,13 @@ PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->-$$Nest$misPackag PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->-$$Nest$smisCallingAppIdAllowed([II)Z HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;-><init>(Landroid/content/Context;)V HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V -HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(IIIILjava/lang/String;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;]Landroid/os/UserManager;Landroid/os/UserManager; +HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(IIIILjava/lang/String;)Z+]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;]Landroid/os/UserManager;Landroid/os/UserManager;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(ILjava/lang/String;)Z+]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl; PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->checkCallbackCount()V HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->ensureShortcutPermission(IILjava/lang/String;)V HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->ensureShortcutPermission(Ljava/lang/String;)V PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->ensureStrictAccessShortcutsPermission(Ljava/lang/String;)V -PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getActivityLaunchIntent(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/app/PendingIntent; +HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getActivityLaunchIntent(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/app/PendingIntent; PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getAllSessions(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice; HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getAppUsageLimit(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/LauncherApps$AppUsageLimit; HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getApplicationInfo(Ljava/lang/String;Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo; @@ -29715,7 +30556,7 @@ PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getPackageInstall HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutConfigActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice; HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor; HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;Landroid/content/pm/ShortcutQueryWrapper;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice; -PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasDefaultEnableLauncherActivity(Ljava/lang/String;)Z +HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasDefaultEnableLauncherActivity(Ljava/lang/String;)Z HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasShortcutHostPermission(Ljava/lang/String;)Z HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingPid()I HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingUid()I @@ -29727,7 +30568,7 @@ HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectRestoreCal PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isActivityEnabled(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Z PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isCallingAppIdAllowed([II)Z HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isEnabledProfileOf(Landroid/os/UserHandle;Landroid/os/UserHandle;Ljava/lang/String;)Z -PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isManagedProfileAdmin(Landroid/os/UserHandle;Ljava/lang/String;)Z +HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isManagedProfileAdmin(Landroid/os/UserHandle;Ljava/lang/String;)Z HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isPackageEnabled(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isPackageVisibleToListener(Ljava/lang/String;Lcom/android/server/pm/LauncherAppsService$BroadcastCookie;Landroid/os/UserHandle;)Z PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->lambda$getAllSessions$1(ILandroid/content/pm/PackageInstaller$SessionInfo;)Z @@ -29744,9 +30585,10 @@ PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->requestsPermissio HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->resolveLauncherActivityInternal(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/pm/LauncherActivityInfoInternal; PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldFilterSession(ILandroid/content/pm/PackageInstaller$SessionInfo;)Z HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldHideFromSuggestions(Ljava/lang/String;Landroid/os/UserHandle;)Z+]Landroid/os/UserHandle;Landroid/os/UserHandle;]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; -PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldShowSyntheticActivity(Landroid/os/UserHandle;Landroid/content/pm/ApplicationInfo;)Z +HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldShowSyntheticActivity(Landroid/os/UserHandle;Landroid/content/pm/ApplicationInfo;)Z+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->showAppDetailsAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V +PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startSessionDetailsActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageInstaller$SessionInfo;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startShortcut(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)Z PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startShortcutInner(IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)Z PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startShortcutIntentsAsPublisher([Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;I)Z @@ -29841,7 +30683,7 @@ HPLcom/android/server/pm/PackageDexOptimizer;->dexOptPath(Lcom/android/server/pm PLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPath(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I HPLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPathLI(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I PLcom/android/server/pm/PackageDexOptimizer;->dexoptSystemServerPath(Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I -PLcom/android/server/pm/PackageDexOptimizer;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V +HPLcom/android/server/pm/PackageDexOptimizer;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V HPLcom/android/server/pm/PackageDexOptimizer;->getAugmentedReasonName(IZ)Ljava/lang/String; PLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;Ljava/lang/String;ZLcom/android/server/pm/dex/DexoptOptions;)I @@ -29852,7 +30694,7 @@ PLcom/android/server/pm/PackageDexOptimizer;->getInstallerWithoutLock()Lcom/andr PLcom/android/server/pm/PackageDexOptimizer;->getOatDir(Ljava/io/File;)Ljava/io/File; HPLcom/android/server/pm/PackageDexOptimizer;->getPackageOatDirIfSupported(Lcom/android/server/pm/pkg/AndroidPackage;Z)Ljava/lang/String; PLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Z)Ljava/lang/String; -PLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Ljava/lang/String; +HPLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Ljava/lang/String; HPLcom/android/server/pm/PackageDexOptimizer;->isAppImageEnabled()Z PLcom/android/server/pm/PackageDexOptimizer;->isOdexPrivate(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z HPLcom/android/server/pm/PackageDexOptimizer;->performDexOpt(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I @@ -29908,10 +30750,18 @@ HSPLcom/android/server/pm/PackageInstallerService$Lifecycle;->onStart()V PLcom/android/server/pm/PackageInstallerService$PackageDeleteObserverAdapter;-><init>(Landroid/content/Context;Landroid/content/IntentSender;Ljava/lang/String;ZI)V PLcom/android/server/pm/PackageInstallerService$PackageDeleteObserverAdapter;->onPackageDeleted(Ljava/lang/String;ILjava/lang/String;)V PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap$$ExternalSyntheticLambda0;-><init>()V +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap$$ExternalSyntheticLambda0;->applyAsLong(Ljava/lang/Object;)J PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap$$ExternalSyntheticLambda1;-><init>()V +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap$$ExternalSyntheticLambda1;->applyAsInt(Ljava/lang/Object;)I +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->$r8$lambda$1xmpqIzXgSgL9JBwqVOa_V0fT_M(Lcom/android/server/pm/PackageInstallerSession;)I +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->$r8$lambda$QYLURLl7_-3kKJrb46t4_FpjdQg(Lcom/android/server/pm/PackageInstallerSession;)J PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;-><init>()V +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->addParentSession(Lcom/android/server/pm/PackageInstallerSession;)V +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->addSession(Lcom/android/server/pm/PackageInstallerSession;Lcom/android/server/pm/PackageInstallerSession;)V PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->containsSession()Z PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->dump(Ljava/lang/String;Lcom/android/internal/util/IndentingPrintWriter;)V +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->lambda$new$0(Lcom/android/server/pm/PackageInstallerSession;)J +PLcom/android/server/pm/PackageInstallerService$ParentChildSessionMap;->lambda$new$1(Lcom/android/server/pm/PackageInstallerSession;)I PLcom/android/server/pm/PackageInstallerService;->$r8$lambda$7c11yrLBNrkeJ47YkKtx6tYA2M0(Lcom/android/server/pm/PackageInstallerService;Lcom/android/server/pm/Computer;ILandroid/content/pm/PackageInstaller$SessionInfo;)Z PLcom/android/server/pm/PackageInstallerService;->$r8$lambda$XrDxuesO-5wc0UNnxMkMSLdbRCA(II)Z HSPLcom/android/server/pm/PackageInstallerService;->$r8$lambda$qXMUzWy7DWy_D_Ta3LwqPstEoss(Lcom/android/server/pm/PackageInstallerService;)Ljava/lang/Boolean; @@ -29948,6 +30798,7 @@ HPLcom/android/server/pm/PackageInstallerService;->getStagedSessions()Landroid/c HSPLcom/android/server/pm/PackageInstallerService;->getStagingDirsOnVolume(Ljava/lang/String;)Landroid/util/ArraySet; PLcom/android/server/pm/PackageInstallerService;->getStagingManager()Lcom/android/server/pm/StagingManager; HSPLcom/android/server/pm/PackageInstallerService;->getTmpSessionDir(Ljava/lang/String;)Ljava/io/File; +PLcom/android/server/pm/PackageInstallerService;->installExistingPackage(Ljava/lang/String;IILandroid/content/IntentSender;ILjava/util/List;)V PLcom/android/server/pm/PackageInstallerService;->isCallingUidOwner(Lcom/android/server/pm/PackageInstallerSession;)Z HSPLcom/android/server/pm/PackageInstallerService;->isStageName(Ljava/lang/String;)Z PLcom/android/server/pm/PackageInstallerService;->lambda$getAllSessions$2(Lcom/android/server/pm/Computer;ILandroid/content/pm/PackageInstaller$SessionInfo;)Z @@ -29981,6 +30832,10 @@ PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda10;-><in PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/PackageInstallerSession;)V PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda1;->run()V +PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/PackageInstallerSession;Landroid/system/Int64Ref;)V +PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda2;->onProgress(J)V +PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda3;-><init>()V +PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/pm/PackageInstallerSession;)V PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda5;->onResult(ILjava/lang/String;)V PLcom/android/server/pm/PackageInstallerSession$$ExternalSyntheticLambda6;-><init>(Landroid/content/IntentSender;)V @@ -30013,7 +30868,6 @@ PLcom/android/server/pm/PackageInstallerSession;->-$$Nest$mhandleInstall(Lcom/an PLcom/android/server/pm/PackageInstallerSession;->-$$Nest$mhandleSessionSealed(Lcom/android/server/pm/PackageInstallerSession;)V PLcom/android/server/pm/PackageInstallerSession;->-$$Nest$mhandleStreamValidateAndCommit(Lcom/android/server/pm/PackageInstallerSession;)V PLcom/android/server/pm/PackageInstallerSession;->-$$Nest$misInstallerDeviceOwnerOrAffiliatedProfileOwner(Lcom/android/server/pm/PackageInstallerSession;)Z -PLcom/android/server/pm/PackageInstallerSession;->-$$Nest$smsendOnPackageInstalled(Landroid/content/Context;Landroid/content/IntentSender;IZILjava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V HSPLcom/android/server/pm/PackageInstallerSession;-><clinit>()V HSPLcom/android/server/pm/PackageInstallerSession;-><init>(Lcom/android/server/pm/PackageInstallerService$InternalCallback;Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSessionProvider;Lcom/android/server/pm/SilentUpdatePolicy;Landroid/os/Looper;Lcom/android/server/pm/StagingManager;IIILcom/android/server/pm/InstallSource;Landroid/content/pm/PackageInstaller$SessionParams;JJLjava/io/File;Ljava/lang/String;[Landroid/content/pm/InstallationFile;Landroid/util/ArrayMap;ZZZZ[IIZZZILjava/lang/String;)V PLcom/android/server/pm/PackageInstallerSession;->abandon()V @@ -30139,7 +30993,6 @@ HSPLcom/android/server/pm/PackageInstallerSession;->readFromXml(Landroid/util/Ty PLcom/android/server/pm/PackageInstallerSession;->releaseTransactionLock()V PLcom/android/server/pm/PackageInstallerSession;->resolveAndStageFileLocked(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V PLcom/android/server/pm/PackageInstallerSession;->sealLocked()V -PLcom/android/server/pm/PackageInstallerSession;->sendOnPackageInstalled(Landroid/content/Context;Landroid/content/IntentSender;IZILjava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V PLcom/android/server/pm/PackageInstallerSession;->sendPendingUserActionIntentIfNeeded()Z PLcom/android/server/pm/PackageInstallerSession;->sendUpdateToRemoteStatusReceiver(ILjava/lang/String;Landroid/os/Bundle;)V PLcom/android/server/pm/PackageInstallerSession;->sessionContains(Ljava/util/function/Predicate;)Z @@ -30188,7 +31041,7 @@ HPLcom/android/server/pm/PackageManagerInternalBase;->canQueryPackage(ILjava/lan PLcom/android/server/pm/PackageManagerInternalBase;->commitPackageStateMutation(Lcom/android/server/pm/pkg/mutate/PackageStateMutator$InitialState;Ljava/util/function/Consumer;)Lcom/android/server/pm/pkg/mutate/PackageStateMutator$Result; PLcom/android/server/pm/PackageManagerInternalBase;->deleteOatArtifactsOfPackage(Ljava/lang/String;)J HPLcom/android/server/pm/PackageManagerInternalBase;->filterAppAccess(II)Z -HSPLcom/android/server/pm/PackageManagerInternalBase;->filterAppAccess(Ljava/lang/String;IIZ)Z+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/PackageManagerInternalBase;->filterAppAccess(Ljava/lang/String;IIZ)Z+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; PLcom/android/server/pm/PackageManagerInternalBase;->finishPackageInstall(IZ)V HSPLcom/android/server/pm/PackageManagerInternalBase;->forEachInstalledPackage(Ljava/util/function/Consumer;I)V HSPLcom/android/server/pm/PackageManagerInternalBase;->forEachPackage(Ljava/util/function/Consumer;)V @@ -30208,13 +31061,13 @@ PLcom/android/server/pm/PackageManagerInternalBase;->getDynamicCodeLogger()Lcom/ HSPLcom/android/server/pm/PackageManagerInternalBase;->getEnabledComponents(Ljava/lang/String;I)Landroid/util/ArraySet; PLcom/android/server/pm/PackageManagerInternalBase;->getHomeActivitiesAsUser(Ljava/util/List;I)Landroid/content/ComponentName; HSPLcom/android/server/pm/PackageManagerInternalBase;->getInstalledApplications(JII)Ljava/util/List; -HSPLcom/android/server/pm/PackageManagerInternalBase;->getInstantAppPackageName(I)Ljava/lang/String;+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/PackageManagerInternalBase;->getInstantAppPackageName(I)Ljava/lang/String;+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/PackageManagerInternalBase;->getKnownPackageNames(II)[Ljava/lang/String;+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HPLcom/android/server/pm/PackageManagerInternalBase;->getNameForUid(I)Ljava/lang/String; HSPLcom/android/server/pm/PackageManagerInternalBase;->getPackage(I)Lcom/android/server/pm/pkg/AndroidPackage;+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/PackageManagerInternalBase;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/AndroidPackage;+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/PackageManagerInternalBase;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/AndroidPackage;+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/PackageManagerInternalBase;->getPackageInfo(Ljava/lang/String;JII)Landroid/content/pm/PackageInfo; -HSPLcom/android/server/pm/PackageManagerInternalBase;->getPackageStateInternal(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; +HSPLcom/android/server/pm/PackageManagerInternalBase;->getPackageStateInternal(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateInternal;+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; PLcom/android/server/pm/PackageManagerInternalBase;->getPackageStates()Landroid/util/ArrayMap; HPLcom/android/server/pm/PackageManagerInternalBase;->getPackageTargetSdkVersion(Ljava/lang/String;)I HSPLcom/android/server/pm/PackageManagerInternalBase;->getPackageUid(Ljava/lang/String;JI)I+]Lcom/android/server/pm/PackageManagerInternalBase;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; @@ -30277,6 +31130,7 @@ HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda11;-><in HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda12;-><init>(Landroid/os/Handler;)V PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda12;->produce()Ljava/lang/Object; HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/pm/PackageManagerServiceInjector;)V +PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda13;->produce()Ljava/lang/Object; HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/pm/PackageManagerService;)V PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda14;->produce()Ljava/lang/Object; PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I[I[IILandroid/util/SparseArray;)V @@ -30359,7 +31213,7 @@ HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda57;-><in HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda58;-><init>(Lcom/android/server/pm/PackageManagerServiceInjector;)V HPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda58;->get()Ljava/lang/Object; HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda59;-><init>(Landroid/content/Context;)V -PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda59;->get()Ljava/lang/Object; +HPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda59;->get()Ljava/lang/Object; PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda5;-><init>(ILandroid/content/ComponentName;Ljava/lang/String;Ljava/lang/Integer;)V PLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V HSPLcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda60;-><init>()V @@ -30460,7 +31314,7 @@ HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$Exte HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;Ljava/lang/String;)V PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda1;->run()V -PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda2;-><init>()V +HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda2;-><init>()V HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda3;-><init>(Ljava/util/List;)V HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->$r8$lambda$j8dy1r4nXP-k-9lUJ-yRKQ2aSj8(Ljava/util/ArrayList;Lcom/android/server/pm/pkg/PackageStateInternal;)V @@ -30493,7 +31347,7 @@ PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->lambd HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->notifyPackageUse(Ljava/lang/String;I)V PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->onPackageProcessKilledForUninstall(Ljava/lang/String;)V PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->registerInstalledLoadingProgressCallback(Ljava/lang/String;Landroid/content/pm/PackageManagerInternal$InstalledLoadingProgressCallback;I)Z -PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->removeAllNonSystemPackageSuspensions(I)V +HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->removeAllNonSystemPackageSuspensions(I)V PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->removeIsolatedUid(I)V HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setEnabledOverlayPackages(ILandroid/util/ArrayMap;Ljava/util/Set;Ljava/util/Set;)V @@ -30587,7 +31441,9 @@ HSPLcom/android/server/pm/PackageManagerService;-><init>(Lcom/android/server/pm/ HSPLcom/android/server/pm/PackageManagerService;->addAllPackageProperties(Lcom/android/server/pm/pkg/AndroidPackage;)V HPLcom/android/server/pm/PackageManagerService;->addCrossProfileIntentFilter(Lcom/android/server/pm/Computer;Lcom/android/server/pm/WatchedIntentFilter;Ljava/lang/String;III)V PLcom/android/server/pm/PackageManagerService;->addInstallerPackageName(Lcom/android/server/pm/InstallSource;)V +HSPLcom/android/server/pm/PackageManagerService;->addInstrumentation(Landroid/content/ComponentName;Lcom/android/server/pm/pkg/component/ParsedInstrumentation;)V HSPLcom/android/server/pm/PackageManagerService;->applyUpdatedSystemOverlayPaths()V +HSPLcom/android/server/pm/PackageManagerService;->canSetOverlayPaths(Landroid/content/pm/overlay/OverlayPaths;Landroid/content/pm/overlay/OverlayPaths;)Z HSPLcom/android/server/pm/PackageManagerService;->checkPackageStartable(Lcom/android/server/pm/Computer;Ljava/lang/String;I)V HSPLcom/android/server/pm/PackageManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl; PLcom/android/server/pm/PackageManagerService;->clearApplicationUserDataLIF(Lcom/android/server/pm/Computer;Ljava/lang/String;I)Z @@ -30610,8 +31466,8 @@ PLcom/android/server/pm/PackageManagerService;->flushPackageRestrictionsAsUserIn HSPLcom/android/server/pm/PackageManagerService;->forEachInstalledPackage(Lcom/android/server/pm/Computer;Ljava/util/function/Consumer;I)V HSPLcom/android/server/pm/PackageManagerService;->forEachPackage(Lcom/android/server/pm/Computer;Ljava/util/function/Consumer;)V HSPLcom/android/server/pm/PackageManagerService;->forEachPackageInternal(Lcom/android/server/pm/Computer;Ljava/util/function/Consumer;)V -HSPLcom/android/server/pm/PackageManagerService;->forEachPackageSetting(Ljava/util/function/Consumer;)V+]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Ljava/util/function/Consumer;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda10; -HSPLcom/android/server/pm/PackageManagerService;->forEachPackageState(Landroid/util/ArrayMap;Ljava/util/function/Consumer;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/Consumer;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda61;,Lcom/android/server/pm/DexOptHelper$$ExternalSyntheticLambda7;,Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda0;,Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda62;,Lcom/android/server/pm/DexOptHelper$$ExternalSyntheticLambda0;,Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda3; +HSPLcom/android/server/pm/PackageManagerService;->forEachPackageSetting(Ljava/util/function/Consumer;)V+]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Ljava/util/function/Consumer;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda10;,Lcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda6; +HSPLcom/android/server/pm/PackageManagerService;->forEachPackageState(Landroid/util/ArrayMap;Ljava/util/function/Consumer;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/Consumer;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda61;,Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda0;,Lcom/android/server/pm/DexOptHelper$$ExternalSyntheticLambda7;,Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda62;,Lcom/android/server/pm/DexOptHelper$$ExternalSyntheticLambda0;,Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda3; HSPLcom/android/server/pm/PackageManagerService;->forEachPackageState(Lcom/android/server/pm/Computer;Ljava/util/function/Consumer;)V PLcom/android/server/pm/PackageManagerService;->freeAllAppCacheAboveQuota(Ljava/lang/String;)V PLcom/android/server/pm/PackageManagerService;->freeStorage(Ljava/lang/String;JI)V @@ -30625,7 +31481,7 @@ HSPLcom/android/server/pm/PackageManagerService;->getCoreAndroidApplication()Lan HSPLcom/android/server/pm/PackageManagerService;->getDefParseFlags()I HSPLcom/android/server/pm/PackageManagerService;->getDefaultAppProvider()Lcom/android/server/pm/DefaultAppProvider; PLcom/android/server/pm/PackageManagerService;->getDefaultTimeouts()Ljava/lang/String; -PLcom/android/server/pm/PackageManagerService;->getDevicePolicyManager()Landroid/app/admin/IDevicePolicyManager; +HSPLcom/android/server/pm/PackageManagerService;->getDevicePolicyManager()Landroid/app/admin/IDevicePolicyManager; HSPLcom/android/server/pm/PackageManagerService;->getDexManager()Lcom/android/server/pm/dex/DexManager; HSPLcom/android/server/pm/PackageManagerService;->getDisabledPackageSettingForMutation(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting; HSPLcom/android/server/pm/PackageManagerService;->getDomainVerificationAgentComponentNameLPr(Lcom/android/server/pm/Computer;)Landroid/content/ComponentName; @@ -30660,7 +31516,7 @@ HSPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(L HSPLcom/android/server/pm/PackageManagerService;->getSetupWizardPackageNameImpl(Lcom/android/server/pm/Computer;)Ljava/lang/String; HSPLcom/android/server/pm/PackageManagerService;->getStorageManagerPackageName(Lcom/android/server/pm/Computer;)Ljava/lang/String; HSPLcom/android/server/pm/PackageManagerService;->getSystemPackageScanFlags(Ljava/io/File;)I -HSPLcom/android/server/pm/PackageManagerService;->grantImplicitAccess(Lcom/android/server/pm/Computer;ILandroid/content/Intent;IIZZ)V+]Lcom/android/server/pm/AppsFilterImpl;Lcom/android/server/pm/AppsFilterImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/PackageManagerService;->grantImplicitAccess(Lcom/android/server/pm/Computer;ILandroid/content/Intent;IIZZ)V+]Lcom/android/server/pm/AppsFilterImpl;Lcom/android/server/pm/AppsFilterImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/PackageManagerService;->hasSystemFeature(Ljava/lang/String;I)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; HSPLcom/android/server/pm/PackageManagerService;->installAllowlistedSystemPackages()V HSPLcom/android/server/pm/PackageManagerService;->invalidatePackageInfoCache()V @@ -30668,14 +31524,14 @@ HSPLcom/android/server/pm/PackageManagerService;->isDeviceUpgrading()Z HSPLcom/android/server/pm/PackageManagerService;->isExpectingBetter(Ljava/lang/String;)Z HSPLcom/android/server/pm/PackageManagerService;->isFirstBoot()Z PLcom/android/server/pm/PackageManagerService;->isHistoricalPackageUsageAvailable()Z -PLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdmin(Ljava/lang/String;I)Z +HSPLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdmin(Ljava/lang/String;I)Z HSPLcom/android/server/pm/PackageManagerService;->isPreNMR1Upgrade()Z HSPLcom/android/server/pm/PackageManagerService;->isPreNUpgrade()Z PLcom/android/server/pm/PackageManagerService;->isStorageLow()Z PLcom/android/server/pm/PackageManagerService;->isSystemReady()Z PLcom/android/server/pm/PackageManagerService;->isUserRestricted(ILjava/lang/String;)Z PLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V -HSPLcom/android/server/pm/PackageManagerService;->lambda$forEachInstalledPackage$55(ILjava/util/function/Consumer;Lcom/android/server/pm/pkg/PackageStateInternal;)V+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/function/Consumer;Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda5;,Lcom/android/server/policy/role/RoleServicePlatformHelperImpl$$ExternalSyntheticLambda0;,Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda3;,Lcom/android/server/people/data/DataManager$$ExternalSyntheticLambda10; +HSPLcom/android/server/pm/PackageManagerService;->lambda$forEachInstalledPackage$55(ILjava/util/function/Consumer;Lcom/android/server/pm/pkg/PackageStateInternal;)V+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/function/Consumer;Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda3;,Lcom/android/server/policy/role/RoleServicePlatformHelperImpl$$ExternalSyntheticLambda0;,Lcom/android/server/people/data/DataManager$$ExternalSyntheticLambda10;,Lcom/android/server/net/NetworkPolicyManagerService$$ExternalSyntheticLambda5; HSPLcom/android/server/pm/PackageManagerService;->lambda$main$10(Landroid/content/Context;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/UserManagerService; HSPLcom/android/server/pm/PackageManagerService;->lambda$main$11(Lcom/android/server/pm/verify/domain/DomainVerificationService;Landroid/os/Handler;Lcom/android/server/pm/PackageManagerTracedLock;Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/Settings; HSPLcom/android/server/pm/PackageManagerService;->lambda$main$12(Lcom/android/server/pm/PackageManagerServiceInjector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/AppsFilterImpl; @@ -30746,7 +31602,7 @@ PLcom/android/server/pm/PackageManagerService;->restorePermissionsAndUpdateRoles PLcom/android/server/pm/PackageManagerService;->scheduleDeferredNoKillPostDelete(Lcom/android/server/pm/InstallArgs;)V PLcom/android/server/pm/PackageManagerService;->scheduleDeferredPendingKillInstallObserver(Lcom/android/server/pm/InstallRequest;)V HSPLcom/android/server/pm/PackageManagerService;->schedulePruneUnusedStaticSharedLibraries(Z)V -HPLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictions(I)V +HSPLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictions(I)V PLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictions(Landroid/os/UserHandle;)V HSPLcom/android/server/pm/PackageManagerService;->scheduleWriteSettings()V PLcom/android/server/pm/PackageManagerService;->sendPackageAddedForNewUsers(Lcom/android/server/pm/Computer;Ljava/lang/String;ZZI[I[II)V @@ -30756,7 +31612,7 @@ PLcom/android/server/pm/PackageManagerService;->sendSessionCommitBroadcast(Landr PLcom/android/server/pm/PackageManagerService;->setEnableRollbackCode(II)V HSPLcom/android/server/pm/PackageManagerService;->setEnabledOverlayPackages(ILandroid/util/ArrayMap;Ljava/util/Set;Ljava/util/Set;)V HSPLcom/android/server/pm/PackageManagerService;->setEnabledSettingInternalLocked(Lcom/android/server/pm/Computer;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageManager$ComponentEnabledSetting;ILjava/lang/String;)Z -HSPLcom/android/server/pm/PackageManagerService;->setEnabledSettings(Ljava/util/List;ILjava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Handler;Lcom/android/server/pm/PackageHandler;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Landroid/content/pm/PackageManager$ComponentEnabledSetting;Landroid/content/pm/PackageManager$ComponentEnabledSetting;]Landroid/content/Context;Landroid/app/ContextImpl;]Ljava/util/Map;Landroid/util/ArrayMap;]Lcom/android/server/pm/PendingPackageBroadcasts;Lcom/android/server/pm/PendingPackageBroadcasts;]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/List;Ljava/util/ImmutableCollections$List12;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/pm/ProtectedPackages;Lcom/android/server/pm/ProtectedPackages;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/PackageManagerService;->setEnabledSettings(Ljava/util/List;ILjava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Handler;Lcom/android/server/pm/PackageHandler;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Landroid/content/pm/PackageManager$ComponentEnabledSetting;Landroid/content/pm/PackageManager$ComponentEnabledSetting;]Landroid/content/Context;Landroid/app/ContextImpl;]Ljava/util/Map;Landroid/util/ArrayMap;]Lcom/android/server/pm/PendingPackageBroadcasts;Lcom/android/server/pm/PendingPackageBroadcasts;]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/List;Ljava/util/ImmutableCollections$List12;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/ProtectedPackages;Lcom/android/server/pm/ProtectedPackages;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/pm/PackageManagerService;->setKeepUninstalledPackagesInternal(Lcom/android/server/pm/Computer;Ljava/util/List;)V HSPLcom/android/server/pm/PackageManagerService;->setPackageStoppedState(Lcom/android/server/pm/Computer;Ljava/lang/String;ZI)V+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Landroid/os/Handler;Lcom/android/server/pm/PackageHandler;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService; HSPLcom/android/server/pm/PackageManagerService;->setPlatformPackage(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V @@ -30764,6 +31620,7 @@ HSPLcom/android/server/pm/PackageManagerService;->setSystemAppHiddenUntilInstall HSPLcom/android/server/pm/PackageManagerService;->setUpInstantAppInstallerActivityLP(Landroid/content/pm/ActivityInfo;)V PLcom/android/server/pm/PackageManagerService;->shouldKeepUninstalledPackageLPr(Ljava/lang/String;)Z HSPLcom/android/server/pm/PackageManagerService;->snapshotComputer()Lcom/android/server/pm/Computer;+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;]Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; +HSPLcom/android/server/pm/PackageManagerService;->snapshotComputer(Z)Lcom/android/server/pm/Computer;+]Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;]Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/PackageManagerService;->systemReady()V HSPLcom/android/server/pm/PackageManagerService;->toStaticSharedLibraryPackageName(Ljava/lang/String;J)Ljava/lang/String; PLcom/android/server/pm/PackageManagerService;->updateComponentLabelIcon(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/Integer;I)V @@ -30834,7 +31691,7 @@ HSPLcom/android/server/pm/PackageManagerServiceUtils$1;->accept(Ljava/io/File;Lj PLcom/android/server/pm/PackageManagerServiceUtils;->$r8$lambda$HTuxTJb1q-Vxicwh7dHCB9KHUqU(Lcom/android/server/pm/pkg/PackageStateInternal;)Z PLcom/android/server/pm/PackageManagerServiceUtils;->$r8$lambda$TIKXvzobl6Pjs5sDqgFWI4sddmM(Lcom/android/server/pm/pkg/PackageStateInternal;)Z HSPLcom/android/server/pm/PackageManagerServiceUtils;-><clinit>()V -HSPLcom/android/server/pm/PackageManagerServiceUtils;->applyEnforceIntentFilterMatching(Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/resolution/ComponentResolverApi;Ljava/util/List;ZLandroid/content/Intent;Ljava/lang/String;I)V+]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Ljava/util/Collection;Ljava/util/ArrayList;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/stream/Stream;Ljava/util/stream/ReferencePipeline$Head;]Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;]Landroid/content/pm/ComponentInfo;Landroid/content/pm/ServiceInfo;,Landroid/content/pm/ActivityInfo;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl; +HSPLcom/android/server/pm/PackageManagerServiceUtils;->applyEnforceIntentFilterMatching(Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/resolution/ComponentResolverApi;Ljava/util/List;ZLandroid/content/Intent;Ljava/lang/String;I)V+]Lcom/android/server/compat/PlatformCompat;Lcom/android/server/compat/PlatformCompat;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;]Landroid/content/pm/ComponentInfo;Landroid/content/pm/ServiceInfo;,Landroid/content/pm/ActivityInfo;]Ljava/util/Collection;Ljava/util/ArrayList;]Ljava/util/stream/Stream;Ljava/util/stream/ReferencePipeline$Head; HPLcom/android/server/pm/PackageManagerServiceUtils;->arrayToString([I)Ljava/lang/String; HSPLcom/android/server/pm/PackageManagerServiceUtils;->canJoinSharedUserId(Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;)Z PLcom/android/server/pm/PackageManagerServiceUtils;->checkDowngrade(Lcom/android/server/pm/pkg/AndroidPackage;Landroid/content/pm/PackageInfoLite;)V @@ -30864,7 +31721,7 @@ PLcom/android/server/pm/PackageManagerServiceUtils;->isSystemApp(Lcom/android/se HSPLcom/android/server/pm/PackageManagerServiceUtils;->isSystemOrRoot()Z PLcom/android/server/pm/PackageManagerServiceUtils;->isSystemOrRootOrShell()Z HSPLcom/android/server/pm/PackageManagerServiceUtils;->isSystemOrRootOrShell(I)Z -PLcom/android/server/pm/PackageManagerServiceUtils;->isUpdatedSystemApp(Lcom/android/server/pm/pkg/PackageStateInternal;)Z +HSPLcom/android/server/pm/PackageManagerServiceUtils;->isUpdatedSystemApp(Lcom/android/server/pm/pkg/PackageStateInternal;)Z PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$static$0(Lcom/android/server/pm/pkg/PackageStateInternal;)Z PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$static$1(Lcom/android/server/pm/pkg/PackageStateInternal;)Z HSPLcom/android/server/pm/PackageManagerServiceUtils;->logCriticalInfo(ILjava/lang/String;)V @@ -30909,6 +31766,7 @@ PLcom/android/server/pm/PackageManagerShellCommand;->runList()I PLcom/android/server/pm/PackageManagerShellCommand;->runListPackages(Z)I PLcom/android/server/pm/PackageManagerShellCommand;->runListPackages(ZZ)I PLcom/android/server/pm/PackageManagerShellCommand;->runPath()I +PLcom/android/server/pm/PackageManagerShellCommand;->setParamsSize(Lcom/android/server/pm/PackageManagerShellCommand$InstallParams;Ljava/util/List;)V PLcom/android/server/pm/PackageManagerShellCommand;->translateUserId(IILjava/lang/String;)I HSPLcom/android/server/pm/PackageManagerTracedLock;-><init>()V HSPLcom/android/server/pm/PackageObserverHelper;-><init>()V @@ -30927,8 +31785,8 @@ PLcom/android/server/pm/PackageProperty;->getProperty(Ljava/lang/String;Ljava/la PLcom/android/server/pm/PackageProperty;->removeAllProperties(Lcom/android/server/pm/pkg/AndroidPackage;)V PLcom/android/server/pm/PackageProperty;->removeComponentProperties(Ljava/util/List;Landroid/util/ArrayMap;)Landroid/util/ArrayMap; PLcom/android/server/pm/PackageProperty;->removeProperties(Ljava/util/Map;Landroid/util/ArrayMap;)Landroid/util/ArrayMap; -PLcom/android/server/pm/PackageRemovedInfo;-><clinit>()V -PLcom/android/server/pm/PackageRemovedInfo;-><init>(Lcom/android/server/pm/PackageSender;)V +HSPLcom/android/server/pm/PackageRemovedInfo;-><clinit>()V +HSPLcom/android/server/pm/PackageRemovedInfo;-><init>(Lcom/android/server/pm/PackageSender;)V PLcom/android/server/pm/PackageRemovedInfo;->getTemporaryAppAllowlistBroadcastOptions(I)Landroid/app/BroadcastOptions; PLcom/android/server/pm/PackageRemovedInfo;->populateUsers([ILcom/android/server/pm/PackageSetting;)V PLcom/android/server/pm/PackageRemovedInfo;->sendPackageRemovedBroadcastInternal(ZZ)V @@ -30987,14 +31845,17 @@ HSPLcom/android/server/pm/PackageSetting;->getPathString()Ljava/lang/String; HSPLcom/android/server/pm/PackageSetting;->getPkg()Lcom/android/server/pm/parsing/pkg/AndroidPackageInternal; HSPLcom/android/server/pm/PackageSetting;->getPkgState()Lcom/android/server/pm/pkg/PackageStateUnserialized; HSPLcom/android/server/pm/PackageSetting;->getPrimaryCpuAbi()Ljava/lang/String; +HSPLcom/android/server/pm/PackageSetting;->getPrimaryCpuAbiLegacy()Ljava/lang/String; HSPLcom/android/server/pm/PackageSetting;->getRealName()Ljava/lang/String; HSPLcom/android/server/pm/PackageSetting;->getSecondaryCpuAbi()Ljava/lang/String; +HSPLcom/android/server/pm/PackageSetting;->getSecondaryCpuAbiLegacy()Ljava/lang/String; HSPLcom/android/server/pm/PackageSetting;->getSharedUserAppId()I HSPLcom/android/server/pm/PackageSetting;->getSignatures()Lcom/android/server/pm/PackageSignatures; HSPLcom/android/server/pm/PackageSetting;->getSigningDetails()Landroid/content/pm/SigningDetails; HSPLcom/android/server/pm/PackageSetting;->getTransientState()Lcom/android/server/pm/pkg/PackageStateUnserialized; PLcom/android/server/pm/PackageSetting;->getUninstallReason(I)I HSPLcom/android/server/pm/PackageSetting;->getUserStates()Landroid/util/SparseArray; +HSPLcom/android/server/pm/PackageSetting;->getUsesLibraries()Ljava/util/List; HSPLcom/android/server/pm/PackageSetting;->getUsesLibraryFiles()Ljava/util/List; HSPLcom/android/server/pm/PackageSetting;->getUsesSdkLibraries()[Ljava/lang/String; HSPLcom/android/server/pm/PackageSetting;->getUsesSdkLibrariesVersionsMajor()[J @@ -31239,14 +32100,14 @@ PLcom/android/server/pm/RemovePackageHelper;->removePackageLI(Lcom/android/serve HSPLcom/android/server/pm/RemovePackageHelper;->removePackageLI(Ljava/lang/String;Z)V HSPLcom/android/server/pm/ResolveIntentHelper;-><init>(Landroid/content/Context;Lcom/android/server/pm/PreferredActivityHelper;Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/verify/domain/DomainVerificationManagerInternal;Lcom/android/server/pm/UserNeedsBadgingCache;Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V HPLcom/android/server/pm/ResolveIntentHelper;->applyPostContentProviderResolutionFilter(Lcom/android/server/pm/Computer;Ljava/util/List;Ljava/lang/String;II)Ljava/util/List; -HSPLcom/android/server/pm/ResolveIntentHelper;->chooseBestActivity(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJLjava/util/List;IZ)Landroid/content/pm/ResolveInfo;+]Ljava/util/function/Supplier;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda55;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/PreferredActivityHelper;Lcom/android/server/pm/PreferredActivityHelper;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Landroid/content/Intent;Landroid/content/Intent; +HSPLcom/android/server/pm/ResolveIntentHelper;->chooseBestActivity(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJLjava/util/List;IZ)Landroid/content/pm/ResolveInfo;+]Ljava/util/function/Supplier;Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda55;,Lcom/android/server/pm/PackageManagerService$$ExternalSyntheticLambda56;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/PreferredActivityHelper;Lcom/android/server/pm/PreferredActivityHelper;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/pm/ResolveIntentHelper;->filterNonExportedComponents(Landroid/content/Intent;ILjava/util/List;Lcom/android/server/compat/PlatformCompat;Lcom/android/server/pm/Computer;)V PLcom/android/server/pm/ResolveIntentHelper;->queryIntentActivityOptionsInternal(Lcom/android/server/pm/Computer;Landroid/content/ComponentName;[Landroid/content/Intent;[Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List; HPLcom/android/server/pm/ResolveIntentHelper;->queryIntentContentProvidersInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List; HSPLcom/android/server/pm/ResolveIntentHelper;->queryIntentReceiversInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JII)Ljava/util/List; -HSPLcom/android/server/pm/ResolveIntentHelper;->queryIntentReceiversInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JIIZ)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/ResolveIntentHelper;->queryIntentReceiversInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JIIZ)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/resolution/ComponentResolverApi;Lcom/android/server/pm/resolution/ComponentResolverSnapshot;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/ComponentName;Landroid/content/ComponentName;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Landroid/content/Intent;Landroid/content/Intent; HSPLcom/android/server/pm/ResolveIntentHelper;->resolveIntentInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJIZI)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/ResolveIntentHelper;Lcom/android/server/pm/ResolveIntentHelper;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; -HSPLcom/android/server/pm/ResolveIntentHelper;->resolveIntentInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJIZIZ)Landroid/content/pm/ResolveInfo; +HSPLcom/android/server/pm/ResolveIntentHelper;->resolveIntentInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JJIZIZ)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/ResolveIntentHelper;Lcom/android/server/pm/ResolveIntentHelper;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/ResolveIntentHelper;->resolveServiceInternal(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JII)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/RestrictionsSet;-><init>()V HSPLcom/android/server/pm/RestrictionsSet;->containsKey(I)Z @@ -31315,6 +32176,9 @@ HSPLcom/android/server/pm/Settings$2;->createSnapshot()Ljava/lang/Object; HSPLcom/android/server/pm/Settings$3;-><init>(Lcom/android/server/pm/Settings;)V HSPLcom/android/server/pm/Settings$3;->accept(Ljava/lang/Integer;)V HSPLcom/android/server/pm/Settings$3;->accept(Ljava/lang/Object;)V +HSPLcom/android/server/pm/Settings$KeySetToValueMap;-><init>(Ljava/util/Set;Ljava/lang/Object;)V +HSPLcom/android/server/pm/Settings$KeySetToValueMap;->keySet()Ljava/util/Set; +HSPLcom/android/server/pm/Settings$KeySetToValueMap;->size()I HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;Ljava/lang/Object;ZZLcom/android/server/pm/permission/LegacyPermissionDataProvider;Lcom/android/server/utils/WatchedArrayMap;ILcom/android/server/utils/WatchedArrayMap;ILjava/lang/String;Landroid/os/Handler;)V HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda0;->run()V HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;)V @@ -31327,7 +32191,7 @@ HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->-$$Nest$fgetmI HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;-><clinit>()V HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;-><init>(Lcom/android/permission/persistence/RuntimePermissionsPersistence;Ljava/util/function/Consumer;)V HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getExtendedFingerprint(J)Ljava/lang/String; -HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getPermissionsFromPermissionsState(Lcom/android/server/pm/permission/LegacyPermissionState;I)Ljava/util/List;+]Lcom/android/server/pm/permission/LegacyPermissionState;Lcom/android/server/pm/permission/LegacyPermissionState;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;,Ljava/util/Collections$EmptyList;]Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;,Ljava/util/Collections$EmptyIterator; +HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getPermissionsFromPermissionsState(Lcom/android/server/pm/permission/LegacyPermissionState;I)Ljava/util/List;+]Lcom/android/server/pm/permission/LegacyPermissionState;Lcom/android/server/pm/permission/LegacyPermissionState;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;,Ljava/util/Collections$EmptyList;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;,Ljava/util/Collections$EmptyIterator;]Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState; PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getVersion(I)I HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->isPermissionUpgradeNeeded(I)Z HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->lambda$writeStateForUser$0()V @@ -31365,7 +32229,7 @@ HSPLcom/android/server/pm/Settings;->dispatchChange(Lcom/android/server/utils/Wa HPLcom/android/server/pm/Settings;->dumpGidsLPr(Ljava/io/PrintWriter;Ljava/lang/String;[I)V HPLcom/android/server/pm/Settings;->dumpInstallPermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/permission/LegacyPermissionState;Ljava/util/List;)V+]Lcom/android/server/pm/permission/LegacyPermissionState;Lcom/android/server/pm/permission/LegacyPermissionState;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;,Ljava/util/Collections$EmptyList;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/io/PrintWriter;Lcom/android/internal/util/FastPrintWriter;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;Lcom/android/server/pm/permission/LegacyPermissionState$PermissionState;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/ArrayList$Itr;,Ljava/util/Collections$UnmodifiableCollection$1;,Ljava/util/Collections$EmptyIterator; PLcom/android/server/pm/Settings;->dumpPackageLPr(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/permission/LegacyPermissionState;Ljava/text/SimpleDateFormat;Ljava/util/Date;Ljava/util/List;ZZ)V -HPLcom/android/server/pm/Settings;->dumpPackagesLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V+]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/pm/DumpState;Lcom/android/server/pm/DumpState;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Lcom/android/server/pm/permission/LegacyPermissionDataProvider;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HPLcom/android/server/pm/Settings;->dumpPackagesLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V+]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/pm/DumpState;Lcom/android/server/pm/DumpState;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Lcom/android/server/pm/permission/LegacyPermissionDataProvider;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1; PLcom/android/server/pm/Settings;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;)V PLcom/android/server/pm/Settings;->dumpPreferred(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V PLcom/android/server/pm/Settings;->dumpReadMessages(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V @@ -31405,6 +32269,7 @@ HSPLcom/android/server/pm/Settings;->getUsers(Lcom/android/server/pm/UserManager HSPLcom/android/server/pm/Settings;->getVolumePackagesLPr(Ljava/lang/String;)Ljava/util/List; HSPLcom/android/server/pm/Settings;->insertPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;)V HSPLcom/android/server/pm/Settings;->invalidatePackageCache()V +PLcom/android/server/pm/Settings;->isAdbInstallDisallowed(Lcom/android/server/pm/UserManagerService;I)Z HSPLcom/android/server/pm/Settings;->isDisabledSystemPackageLPr(Ljava/lang/String;)Z PLcom/android/server/pm/Settings;->isInstallerPackage(Ljava/lang/String;)Z HSPLcom/android/server/pm/Settings;->isPermissionUpgradeNeeded(I)Z @@ -31458,8 +32323,8 @@ HSPLcom/android/server/pm/Settings;->writeMimeGroupLPr(Landroid/util/TypedXmlSer HSPLcom/android/server/pm/Settings;->writePackageLPr(Landroid/util/TypedXmlSerializer;Lcom/android/server/pm/PackageSetting;)V HSPLcom/android/server/pm/Settings;->writePackageListLPr()V HSPLcom/android/server/pm/Settings;->writePackageListLPr(I)V -HSPLcom/android/server/pm/Settings;->writePackageListLPrInternal(I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/IntArray;Landroid/util/IntArray;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/io/Writer;Ljava/io/BufferedWriter;]Ljava/io/FileOutputStream;Ljava/io/FileOutputStream;]Lcom/android/internal/util/JournaledFile;Lcom/android/internal/util/JournaledFile;]Ljava/io/File;Ljava/io/File;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/permission/LegacyPermissionDataProvider;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/io/BufferedWriter;Ljava/io/BufferedWriter;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HSPLcom/android/server/pm/Settings;->writePackageRestrictionsLPr(I)V+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;,Lcom/android/server/pm/pkg/PackageUserStateDefault;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/io/File;Ljava/io/File;]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/io/OutputStream;Ljava/io/FileOutputStream;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/io/FileOutputStream;Ljava/io/FileOutputStream;]Lcom/android/server/pm/pkg/PackageUserStateInternal;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/SuspendParams;Lcom/android/server/pm/pkg/SuspendParams;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; +HSPLcom/android/server/pm/Settings;->writePackageListLPrInternal(I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/IntArray;Landroid/util/IntArray;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Ljava/io/Writer;Ljava/io/BufferedWriter;]Ljava/io/FileOutputStream;Ljava/io/FileOutputStream;]Lcom/android/internal/util/JournaledFile;Lcom/android/internal/util/JournaledFile;]Ljava/io/File;Ljava/io/File;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/permission/LegacyPermissionDataProvider;Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/io/BufferedWriter;Ljava/io/BufferedWriter; +HSPLcom/android/server/pm/Settings;->writePackageRestrictionsLPr(I)V+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;,Lcom/android/server/pm/pkg/PackageUserStateDefault;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/io/File;Ljava/io/File;]Lcom/android/server/pm/Settings;Lcom/android/server/pm/Settings;]Lcom/android/server/utils/WatchedArrayMap;Lcom/android/server/utils/WatchedArrayMap;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$UnmodifiableCollection;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/io/OutputStream;Ljava/io/FileOutputStream;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/io/FileOutputStream;Ljava/io/FileOutputStream;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Lcom/android/server/pm/pkg/PackageUserStateInternal;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/SuspendParams;Lcom/android/server/pm/pkg/SuspendParams; HSPLcom/android/server/pm/Settings;->writePermissionStateForUserLPr(IZ)V HSPLcom/android/server/pm/Settings;->writePersistentPreferredActivitiesLPr(Landroid/util/TypedXmlSerializer;I)V HSPLcom/android/server/pm/Settings;->writePreferredActivitiesLPr(Landroid/util/TypedXmlSerializer;IZ)V+]Lcom/android/server/utils/WatchedSparseArray;Lcom/android/server/utils/WatchedSparseArray;]Lcom/android/server/pm/PreferredActivity;Lcom/android/server/pm/PreferredActivity;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/util/Iterator;Ljava/util/Collections$UnmodifiableCollection$1;]Lcom/android/server/IntentResolver;Lcom/android/server/pm/PreferredIntentResolver;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet; @@ -31527,6 +32392,7 @@ HSPLcom/android/server/pm/SharedLibrariesImpl;->executeSharedLibrariesUpdate(Lco HSPLcom/android/server/pm/SharedLibrariesImpl;->executeSharedLibrariesUpdateLPw(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/ArrayList;[I)V HSPLcom/android/server/pm/SharedLibrariesImpl;->getAll()Lcom/android/server/utils/WatchedArrayMap; HSPLcom/android/server/pm/SharedLibrariesImpl;->getAllowedSharedLibInfos(Lcom/android/server/pm/ScanResult;)Ljava/util/List; +PLcom/android/server/pm/SharedLibrariesImpl;->getLatestStaticSharedLibraVersion(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo; HSPLcom/android/server/pm/SharedLibrariesImpl;->getLatestStaticSharedLibraVersionLPr(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo; HSPLcom/android/server/pm/SharedLibrariesImpl;->getLibraryPackage(Lcom/android/server/pm/Computer;Landroid/content/pm/SharedLibraryInfo;)Lcom/android/server/pm/pkg/PackageStateInternal; HSPLcom/android/server/pm/SharedLibrariesImpl;->getSharedLibraryInfo(Ljava/lang/String;J)Landroid/content/pm/SharedLibraryInfo; @@ -31660,7 +32526,7 @@ PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda24;->test(Ljava/ PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda25;-><init>(Lcom/android/server/pm/ShortcutPackage;J)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda25;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/pm/ShortcutPackage;Lcom/android/server/pm/ShortcutService;Landroid/content/res/Resources;)V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;)V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;Z)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda27;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda28;-><init>(Lcom/android/server/pm/ShortcutPackage;Landroid/content/pm/ShortcutInfo;)V @@ -31676,29 +32542,29 @@ PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda32;->test(Ljava/ HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda33;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutService;[Z)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda33;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda34;-><init>(Ljava/util/List;)V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;)V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda35;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/Collection;)V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;)V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda35;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/Collection;)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda35;->run()V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda36;-><init>(Lcom/android/server/pm/ShortcutPackage;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda36;->run()V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/Collection;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda38;->run()V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda39;-><init>(Lcom/android/server/pm/ShortcutPackage;Landroid/util/ArrayMap;)V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda39;-><init>(Lcom/android/server/pm/ShortcutPackage;Landroid/util/ArrayMap;)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda39;->accept(Ljava/lang/Object;)V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda3;-><init>(J)V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda3;-><init>(J)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda40;-><init>(Ljava/util/function/Consumer;)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda40;->apply(Ljava/lang/Object;)Ljava/lang/Object; -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda43;-><init>()V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Ljava/lang/Object; +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda43;-><init>()V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda44;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/Collection;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda44;->accept(Ljava/lang/Object;)V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda45;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/Collection;)V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda45;-><init>(Lcom/android/server/pm/ShortcutPackage;Ljava/util/Collection;)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda45;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda47;-><init>()V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda47;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda49;-><init>()V -PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda4;-><init>(JI)V +HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda4;-><init>(JI)V HPLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda52;-><init>(Lcom/android/server/pm/ShortcutPackage;)V PLcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda52;->apply(Ljava/lang/Object;)Ljava/lang/Object; @@ -31749,7 +32615,7 @@ PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$mAYKdekFRLcYuTmjjUd_27gv2h0 PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$pE_nYDahx_8zXjpur84EdQeHu6A(Lcom/android/server/pm/ShortcutPackage;Ljava/util/Collection;)V PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$qcd2oTLAzuBJcVOHjCIPHRcoTq0(Lcom/android/internal/infra/AndroidFuture;Landroid/app/appsearch/AppSearchSession;Landroid/app/appsearch/AppSearchResult;)V PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$rRPuYClZ-6cyylVAnISOI-y1Uto(Lcom/android/server/pm/ShortcutPackage;JLandroid/content/pm/ShortcutInfo;)V -PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$upfp9saLcXb85_833Mx0r2UrNL0(JILandroid/content/pm/ShortcutInfo;)V +HPLcom/android/server/pm/ShortcutPackage;->$r8$lambda$upfp9saLcXb85_833Mx0r2UrNL0(JILandroid/content/pm/ShortcutInfo;)V PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$uxIjJyqOAT4D9Za5EFDuqL_UwP4(Lcom/android/server/pm/ShortcutPackage;Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutService;[ZLandroid/content/pm/ShortcutInfo;)Ljava/lang/Boolean; HPLcom/android/server/pm/ShortcutPackage;->$r8$lambda$w8pbOnmLyldwe1U_d1Msh1FSBms(Lcom/android/server/pm/ShortcutPackage;Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;ZLandroid/content/pm/ShortcutInfo;)V PLcom/android/server/pm/ShortcutPackage;->$r8$lambda$wCmMnSwR2VzNbRW-qxlrdGOSHPw(Lcom/android/server/pm/ShortcutPackage;Landroid/content/pm/ShortcutInfo;)V @@ -31774,14 +32640,14 @@ PLcom/android/server/pm/ShortcutPackage;->ensureImmutableShortcutsNotIncludedWit HPLcom/android/server/pm/ShortcutPackage;->ensureNoBitmapIconIfShortcutIsLongLived(Ljava/util/List;)V PLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Landroid/content/pm/ShortcutInfo;Z)V HPLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Ljava/lang/String;Z)V -HPLcom/android/server/pm/ShortcutPackage;->filter(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;ZLandroid/content/pm/ShortcutInfo;)V+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/function/Predicate;megamorphic_types]Landroid/util/ArraySet;Landroid/util/ArraySet; +HPLcom/android/server/pm/ShortcutPackage;->filter(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;ZLandroid/content/pm/ShortcutInfo;)V+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/util/function/Predicate;megamorphic_types PLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/Collection;)Ljava/util/List; PLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;I)V HPLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;IZ)V+]Lcom/android/server/pm/ShortcutPackageInfo;Lcom/android/server/pm/ShortcutPackageInfo;]Lcom/android/server/pm/ShortcutPackageItem;Lcom/android/server/pm/ShortcutPackage;]Lcom/android/server/pm/ShortcutPackage;Lcom/android/server/pm/ShortcutPackage;]Lcom/android/server/pm/ShortcutLauncher;Lcom/android/server/pm/ShortcutLauncher;]Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutService; HPLcom/android/server/pm/ShortcutPackage;->findShortcutById(Ljava/lang/String;)Landroid/content/pm/ShortcutInfo; -HPLcom/android/server/pm/ShortcutPackage;->forEachShortcut(Ljava/util/function/Consumer;)V +HPLcom/android/server/pm/ShortcutPackage;->forEachShortcut(Ljava/util/function/Consumer;)V+]Lcom/android/server/pm/ShortcutPackage;Lcom/android/server/pm/ShortcutPackage; HPLcom/android/server/pm/ShortcutPackage;->forEachShortcutMutate(Ljava/util/function/Consumer;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/Consumer;megamorphic_types -HPLcom/android/server/pm/ShortcutPackage;->forEachShortcutStopWhen(Ljava/util/function/Function;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/Function;Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda33;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda23;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda45;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda40;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda5;]Ljava/lang/Boolean;Ljava/lang/Boolean; +HPLcom/android/server/pm/ShortcutPackage;->forEachShortcutStopWhen(Ljava/util/function/Function;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/Function;Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda33;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda45;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda23;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda40;,Lcom/android/server/pm/ShortcutPackage$$ExternalSyntheticLambda5;]Ljava/lang/Boolean;Ljava/lang/Boolean; HPLcom/android/server/pm/ShortcutPackage;->forceDeleteShortcutInner(Ljava/lang/String;)Landroid/content/pm/ShortcutInfo; HPLcom/android/server/pm/ShortcutPackage;->forceReplaceShortcutInner(Landroid/content/pm/ShortcutInfo;)V HPLcom/android/server/pm/ShortcutPackage;->fromAppSearch()Lcom/android/internal/infra/AndroidFuture; @@ -31803,7 +32669,7 @@ HPLcom/android/server/pm/ShortcutPackage;->lambda$adjustRanks$24(JLandroid/conte HPLcom/android/server/pm/ShortcutPackage;->lambda$adjustRanks$25(JILandroid/content/pm/ShortcutInfo;)V HPLcom/android/server/pm/ShortcutPackage;->lambda$areAllActivitiesStillEnabled$14(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutService;[ZLandroid/content/pm/ShortcutInfo;)Ljava/lang/Boolean;+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Lcom/android/server/pm/ShortcutPackage;Lcom/android/server/pm/ShortcutPackage;]Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutService;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/pm/ShortcutPackage;->lambda$deleteLongLivedWithId$5(Landroid/content/pm/ShortcutInfo;)V -PLcom/android/server/pm/ShortcutPackage;->lambda$deleteOrDisableWithId$7(ZILandroid/content/pm/ShortcutInfo;)V +HPLcom/android/server/pm/ShortcutPackage;->lambda$deleteOrDisableWithId$7(ZILandroid/content/pm/ShortcutInfo;)V HPLcom/android/server/pm/ShortcutPackage;->lambda$dump$27(Ljava/io/PrintWriter;Ljava/lang/String;[JLandroid/content/pm/ShortcutInfo;)V HPLcom/android/server/pm/ShortcutPackage;->lambda$enforceShortcutCountsBeforeOperation$21(Landroid/util/ArrayMap;ILandroid/content/pm/ShortcutInfo;)V HPLcom/android/server/pm/ShortcutPackage;->lambda$findAll$12(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;Landroid/util/ArraySet;ZLandroid/content/pm/ShortcutInfo;)V @@ -31850,17 +32716,18 @@ HPLcom/android/server/pm/ShortcutPackage;->rescanPackageIfNeeded(ZZ)Z PLcom/android/server/pm/ShortcutPackage;->resetRateLimiting()V PLcom/android/server/pm/ShortcutPackage;->resetRateLimitingForCommandLineNoSaving()V HPLcom/android/server/pm/ShortcutPackage;->runAsSystem(Ljava/lang/Runnable;)V -HPLcom/android/server/pm/ShortcutPackage;->saveShortcut(Landroid/util/TypedXmlSerializer;Landroid/content/pm/ShortcutInfo;ZZ)V+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Landroid/app/Person;Landroid/app/Person;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Landroid/content/LocusId;Landroid/content/LocusId;]Ljava/util/Set;Landroid/util/ArraySet;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Lcom/android/server/pm/ShortcutPackageInfo;Lcom/android/server/pm/ShortcutPackageInfo;]Lcom/android/server/pm/ShortcutPackageItem;Lcom/android/server/pm/ShortcutPackage; +HPLcom/android/server/pm/ShortcutPackage;->saveShortcut(Landroid/util/TypedXmlSerializer;Landroid/content/pm/ShortcutInfo;ZZ)V+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;]Landroid/app/Person;Landroid/app/Person;]Lcom/android/server/pm/ShortcutPackageInfo;Lcom/android/server/pm/ShortcutPackageInfo;]Lcom/android/server/pm/ShortcutPackageItem;Lcom/android/server/pm/ShortcutPackage;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Landroid/content/LocusId;Landroid/content/LocusId;]Ljava/util/Set;Landroid/util/ArraySet;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; HPLcom/android/server/pm/ShortcutPackage;->saveShortcut(Ljava/util/Collection;)V HPLcom/android/server/pm/ShortcutPackage;->saveShortcut([Landroid/content/pm/ShortcutInfo;)V HPLcom/android/server/pm/ShortcutPackage;->saveShortcutsAsync(Ljava/util/Collection;)V -HPLcom/android/server/pm/ShortcutPackage;->saveToXml(Landroid/util/TypedXmlSerializer;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/ShortcutPackageInfo;Lcom/android/server/pm/ShortcutPackageInfo;]Lcom/android/server/pm/ShortcutPackageItem;Lcom/android/server/pm/ShortcutPackage;]Lcom/android/server/pm/ShortcutPackage;Lcom/android/server/pm/ShortcutPackage;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/pm/ShareTargetInfo;Lcom/android/server/pm/ShareTargetInfo; +HPLcom/android/server/pm/ShortcutPackage;->saveToXml(Landroid/util/TypedXmlSerializer;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/ShortcutPackageInfo;Lcom/android/server/pm/ShortcutPackageInfo;]Lcom/android/server/pm/ShortcutPackageItem;Lcom/android/server/pm/ShortcutPackage;]Lcom/android/server/pm/ShortcutPackage;Lcom/android/server/pm/ShortcutPackage;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/pm/ShareTargetInfo;Lcom/android/server/pm/ShareTargetInfo;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;,Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer; HPLcom/android/server/pm/ShortcutPackage;->scheduleSaveToAppSearchLocked()V PLcom/android/server/pm/ShortcutPackage;->setupSchema(Landroid/app/appsearch/AppSearchSession;)Lcom/android/internal/infra/AndroidFuture; HPLcom/android/server/pm/ShortcutPackage;->sortShortcutsToActivities()Landroid/util/ArrayMap; HPLcom/android/server/pm/ShortcutPackage;->tryApiCall(Z)Z HPLcom/android/server/pm/ShortcutPackageInfo;-><init>(JJLjava/util/ArrayList;Z)V HPLcom/android/server/pm/ShortcutPackageInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V +PLcom/android/server/pm/ShortcutPackageInfo;->getBackupSourceVersionCode()J HPLcom/android/server/pm/ShortcutPackageInfo;->getLastUpdateTime()J HPLcom/android/server/pm/ShortcutPackageInfo;->getVersionCode()J HPLcom/android/server/pm/ShortcutPackageInfo;->isBackupAllowed()Z @@ -31931,7 +32798,7 @@ PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda16;->accept(Ljav HSPLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda18;-><init>()V HPLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;)Z HPLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;)V -PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda19;->run()V +HPLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda19;->run()V PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda1;-><init>()V PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/ShortcutService$$ExternalSyntheticLambda20;-><init>()V @@ -31976,7 +32843,7 @@ HSPLcom/android/server/pm/ShortcutService$4;->lambda$onUidStateChanged$0(II)V HSPLcom/android/server/pm/ShortcutService$4;->onUidGone(IZ)V HSPLcom/android/server/pm/ShortcutService$4;->onUidStateChanged(IIJI)V+]Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutService; HSPLcom/android/server/pm/ShortcutService$5;-><init>(Lcom/android/server/pm/ShortcutService;)V -PLcom/android/server/pm/ShortcutService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +HSPLcom/android/server/pm/ShortcutService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/pm/ShortcutService$6;-><init>(Lcom/android/server/pm/ShortcutService;)V HPLcom/android/server/pm/ShortcutService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/pm/ShortcutService$7;-><init>(Lcom/android/server/pm/ShortcutService;)V @@ -32056,7 +32923,7 @@ PLcom/android/server/pm/ShortcutService;->$r8$lambda$u3FOxqGBnNkJQphxurehYp7pJsw PLcom/android/server/pm/ShortcutService;->$r8$lambda$ukPbXRXhb-nZtBOQtbLDQsKXKw8(Landroid/content/pm/ShortcutInfo;)Z PLcom/android/server/pm/ShortcutService;->$r8$lambda$xzx_7n_mrcSi1GqSkswffUdehX8(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V PLcom/android/server/pm/ShortcutService;->$r8$lambda$zijvvwSyhVkExww_yiUjY4-zTQw(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;)V -PLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmBootCompleted(Lcom/android/server/pm/ShortcutService;)Ljava/util/concurrent/atomic/AtomicBoolean; +HSPLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmBootCompleted(Lcom/android/server/pm/ShortcutService;)Ljava/util/concurrent/atomic/AtomicBoolean; PLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmHandler(Lcom/android/server/pm/ShortcutService;)Landroid/os/Handler; HSPLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmListeners(Lcom/android/server/pm/ShortcutService;)Ljava/util/ArrayList; HSPLcom/android/server/pm/ShortcutService;->-$$Nest$fgetmLock(Lcom/android/server/pm/ShortcutService;)Ljava/lang/Object; @@ -32302,7 +33169,7 @@ PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda5;-><init>()V PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda6;-><init>(ILjava/lang/String;Ljava/util/function/Consumer;)V HPLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V -PLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda7;-><init>()V +HPLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda7;-><init>()V HPLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda7;->test(Ljava/lang/Object;)Z HPLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda8;-><init>(Lcom/android/internal/infra/AndroidFuture;)V HPLcom/android/server/pm/ShortcutUser$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V @@ -32410,12 +33277,12 @@ PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda1;-><init>( PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/SuspendPackageHelper;)V PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda3;-><init>(Landroid/util/ArrayMap;I)V -PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V +HSPLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda3;-><init>(Landroid/util/ArrayMap;I)V +HSPLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/pm/SuspendPackageHelper;ZI[Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda4;->run()V PLcom/android/server/pm/SuspendPackageHelper;->$r8$lambda$-kxJhQB6niEon2VDSOkCMLvwRm8(Lcom/android/server/pm/SuspendPackageHelper;Ljava/lang/String;Landroid/os/Bundle;I)V -PLcom/android/server/pm/SuspendPackageHelper;->$r8$lambda$56lMTTmdwpGLgie--3DUwPSUIRI(Landroid/util/ArrayMap;ILcom/android/server/pm/pkg/mutate/PackageStateMutator;)V +HSPLcom/android/server/pm/SuspendPackageHelper;->$r8$lambda$56lMTTmdwpGLgie--3DUwPSUIRI(Landroid/util/ArrayMap;ILcom/android/server/pm/pkg/mutate/PackageStateMutator;)V PLcom/android/server/pm/SuspendPackageHelper;->$r8$lambda$6YfsbCyXxl4x41lDMNyhN_WCAmI(Lcom/android/server/pm/SuspendPackageHelper;ZI[Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/pm/SuspendPackageHelper;->$r8$lambda$q8yyKm6etC93i5lkgJcTbAozJFk(Landroid/util/ArraySet;IZLjava/lang/String;Lcom/android/server/pm/pkg/SuspendParams;Lcom/android/server/pm/pkg/mutate/PackageStateMutator;)V PLcom/android/server/pm/SuspendPackageHelper;->$r8$lambda$wmTkHnCGOjVBGi6tfs-oIerjH08(Lcom/android/server/pm/SuspendPackageHelper;Ljava/lang/Integer;Landroid/os/Bundle;)Landroid/os/Bundle; @@ -32430,12 +33297,12 @@ PLcom/android/server/pm/SuspendPackageHelper;->getUnsuspendablePackagesForUser(L PLcom/android/server/pm/SuspendPackageHelper;->isCallerDeviceOrProfileOwner(Lcom/android/server/pm/Computer;II)Z HSPLcom/android/server/pm/SuspendPackageHelper;->isPackageSuspended(Lcom/android/server/pm/Computer;Ljava/lang/String;II)Z PLcom/android/server/pm/SuspendPackageHelper;->isSuspendAllowedForUser(Lcom/android/server/pm/Computer;II)Z -PLcom/android/server/pm/SuspendPackageHelper;->lambda$removeSuspensionsBySuspendingPackage$1(Landroid/util/ArrayMap;ILcom/android/server/pm/pkg/mutate/PackageStateMutator;)V +HSPLcom/android/server/pm/SuspendPackageHelper;->lambda$removeSuspensionsBySuspendingPackage$1(Landroid/util/ArrayMap;ILcom/android/server/pm/pkg/mutate/PackageStateMutator;)V PLcom/android/server/pm/SuspendPackageHelper;->lambda$sendMyPackageSuspendedOrUnsuspended$4(ZI[Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/pm/SuspendPackageHelper;->lambda$sendPackagesSuspendedForUser$2(Ljava/lang/Integer;Landroid/os/Bundle;)Landroid/os/Bundle; PLcom/android/server/pm/SuspendPackageHelper;->lambda$sendPackagesSuspendedForUser$3(Ljava/lang/String;Landroid/os/Bundle;I)V PLcom/android/server/pm/SuspendPackageHelper;->lambda$setPackagesSuspended$0(Landroid/util/ArraySet;IZLjava/lang/String;Lcom/android/server/pm/pkg/SuspendParams;Lcom/android/server/pm/pkg/mutate/PackageStateMutator;)V -PLcom/android/server/pm/SuspendPackageHelper;->removeSuspensionsBySuspendingPackage(Lcom/android/server/pm/Computer;[Ljava/lang/String;Ljava/util/function/Predicate;I)V +HSPLcom/android/server/pm/SuspendPackageHelper;->removeSuspensionsBySuspendingPackage(Lcom/android/server/pm/Computer;[Ljava/lang/String;Ljava/util/function/Predicate;I)V PLcom/android/server/pm/SuspendPackageHelper;->sendMyPackageSuspendedOrUnsuspended([Ljava/lang/String;ZI)V PLcom/android/server/pm/SuspendPackageHelper;->sendPackagesSuspendedForUser(Ljava/lang/String;[Ljava/lang/String;[II)V PLcom/android/server/pm/SuspendPackageHelper;->setPackagesSuspended(Lcom/android/server/pm/Computer;[Ljava/lang/String;ZLandroid/os/PersistableBundle;Landroid/os/PersistableBundle;Landroid/content/pm/SuspendDialogInfo;Ljava/lang/String;II)[Ljava/lang/String; @@ -32589,7 +33456,7 @@ HPLcom/android/server/pm/UserManagerService;->getCrossProfileIntentFilterAccessC HSPLcom/android/server/pm/UserManagerService;->getCurrentUserId()I+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService; HSPLcom/android/server/pm/UserManagerService;->getDevicePolicyLocalRestrictionsForTargetUserLR(I)Lcom/android/server/pm/RestrictionsSet; PLcom/android/server/pm/UserManagerService;->getDevicePolicyManagerInternal()Landroid/app/admin/DevicePolicyManagerInternal; -HSPLcom/android/server/pm/UserManagerService;->getEffectiveUserRestrictions(I)Landroid/os/Bundle;+]Lcom/android/server/pm/RestrictionsSet;Lcom/android/server/pm/RestrictionsSet;]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService; +HSPLcom/android/server/pm/UserManagerService;->getEffectiveUserRestrictions(I)Landroid/os/Bundle;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/RestrictionsSet;Lcom/android/server/pm/RestrictionsSet; HSPLcom/android/server/pm/UserManagerService;->getInstance()Lcom/android/server/pm/UserManagerService; HSPLcom/android/server/pm/UserManagerService;->getInternalForInjectorOnly()Lcom/android/server/pm/UserManagerInternal; HSPLcom/android/server/pm/UserManagerService;->getOwnerName()Ljava/lang/String; @@ -32608,14 +33475,14 @@ HPLcom/android/server/pm/UserManagerService;->getUidForPackage(Ljava/lang/String HSPLcom/android/server/pm/UserManagerService;->getUpdatedTargetUserIdsFromLocalRestrictions(ILcom/android/server/pm/RestrictionsSet;)Ljava/util/List; PLcom/android/server/pm/UserManagerService;->getUserAccount(I)Ljava/lang/String; HPLcom/android/server/pm/UserManagerService;->getUserBadgeColorResId(I)I -PLcom/android/server/pm/UserManagerService;->getUserBadgeDarkColorResId(I)I +HPLcom/android/server/pm/UserManagerService;->getUserBadgeDarkColorResId(I)I HPLcom/android/server/pm/UserManagerService;->getUserBadgeLabelResId(I)I HPLcom/android/server/pm/UserManagerService;->getUserBadgeNoBackgroundResId(I)I PLcom/android/server/pm/UserManagerService;->getUserCreationTime(I)J HSPLcom/android/server/pm/UserManagerService;->getUserDataLU(I)Lcom/android/server/pm/UserManagerService$UserData;+]Landroid/util/SparseArray;Landroid/util/SparseArray; HSPLcom/android/server/pm/UserManagerService;->getUserDataNoChecks(I)Lcom/android/server/pm/UserManagerService$UserData; HSPLcom/android/server/pm/UserManagerService;->getUserHandle(I)I -PLcom/android/server/pm/UserManagerService;->getUserIcon(I)Landroid/os/ParcelFileDescriptor; +HPLcom/android/server/pm/UserManagerService;->getUserIcon(I)Landroid/os/ParcelFileDescriptor; PLcom/android/server/pm/UserManagerService;->getUserIconBadgeResId(I)I HSPLcom/android/server/pm/UserManagerService;->getUserIds()[I HSPLcom/android/server/pm/UserManagerService;->getUserIdsIncludingPreCreated()[I @@ -32663,7 +33530,7 @@ HSPLcom/android/server/pm/UserManagerService;->isQuietModeEnabled(I)Z PLcom/android/server/pm/UserManagerService;->isReallyHeadlessSystemUserMode()Z PLcom/android/server/pm/UserManagerService;->isRestricted(I)Z HPLcom/android/server/pm/UserManagerService;->isSameProfileGroup(II)Z -HPLcom/android/server/pm/UserManagerService;->isSameProfileGroupNoChecks(II)Z+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService; +HSPLcom/android/server/pm/UserManagerService;->isSameProfileGroupNoChecks(II)Z+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService; HSPLcom/android/server/pm/UserManagerService;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z PLcom/android/server/pm/UserManagerService;->isUserLimitReached()Z HSPLcom/android/server/pm/UserManagerService;->isUserRunning(I)Z @@ -32732,7 +33599,7 @@ HSPLcom/android/server/pm/UserRestrictionsUtils;->isGlobal(ILjava/lang/String;)Z HSPLcom/android/server/pm/UserRestrictionsUtils;->isLocal(ILjava/lang/String;)Z HSPLcom/android/server/pm/UserRestrictionsUtils;->isSettingRestrictedForUser(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;I)Z PLcom/android/server/pm/UserRestrictionsUtils;->isSystemApp(I[Ljava/lang/String;)Z -HSPLcom/android/server/pm/UserRestrictionsUtils;->isValidRestriction(Ljava/lang/String;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl;]Ljava/util/Set;Landroid/util/ArraySet; +HSPLcom/android/server/pm/UserRestrictionsUtils;->isValidRestriction(Ljava/lang/String;)Z+]Ljava/util/Set;Landroid/util/ArraySet;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; HSPLcom/android/server/pm/UserRestrictionsUtils;->merge(Landroid/os/Bundle;Landroid/os/Bundle;)V HSPLcom/android/server/pm/UserRestrictionsUtils;->newSetWithUniqueCheck([Ljava/lang/String;)Ljava/util/Set; HSPLcom/android/server/pm/UserRestrictionsUtils;->nonNull(Landroid/os/Bundle;)Landroid/os/Bundle; @@ -32756,7 +33623,7 @@ HSPLcom/android/server/pm/UserSystemPackageInstaller;-><init>(Lcom/android/serve HSPLcom/android/server/pm/UserSystemPackageInstaller;->checkWhitelistedSystemPackages(I)V HSPLcom/android/server/pm/UserSystemPackageInstaller;->determineWhitelistedPackagesForUserTypes(Lcom/android/server/SystemConfig;)Landroid/util/ArrayMap; HPLcom/android/server/pm/UserSystemPackageInstaller;->dump(Landroid/util/IndentingPrintWriter;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/IndentingPrintWriter;Landroid/util/IndentingPrintWriter;]Ljava/lang/Long;Ljava/lang/Long;]Lcom/android/server/pm/UserSystemPackageInstaller;Lcom/android/server/pm/UserSystemPackageInstaller;]Ljava/io/PrintWriter;Landroid/util/IndentingPrintWriter; -PLcom/android/server/pm/UserSystemPackageInstaller;->dumpPackageWhitelistProblems(Landroid/util/IndentingPrintWriter;IZZ)V +HPLcom/android/server/pm/UserSystemPackageInstaller;->dumpPackageWhitelistProblems(Landroid/util/IndentingPrintWriter;IZZ)V HSPLcom/android/server/pm/UserSystemPackageInstaller;->getAndSortKeysFromMap(Landroid/util/ArrayMap;)[Ljava/lang/String; HSPLcom/android/server/pm/UserSystemPackageInstaller;->getBaseTypeBitSets()Ljava/util/Map; HSPLcom/android/server/pm/UserSystemPackageInstaller;->getDeviceDefaultWhitelistMode()I @@ -32940,7 +33807,7 @@ PLcom/android/server/pm/dex/ArtManagerService;->checkShellPermissions(ILjava/lan HSPLcom/android/server/pm/dex/ArtManagerService;->clearAppProfiles(Lcom/android/server/pm/pkg/AndroidPackage;)V PLcom/android/server/pm/dex/ArtManagerService;->createProfileSnapshot(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V PLcom/android/server/pm/dex/ArtManagerService;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V -PLcom/android/server/pm/dex/ArtManagerService;->getCompilationFilterTronValue(Ljava/lang/String;)I +HPLcom/android/server/pm/dex/ArtManagerService;->getCompilationFilterTronValue(Ljava/lang/String;)I HSPLcom/android/server/pm/dex/ArtManagerService;->getCompilationReasonTronValue(Ljava/lang/String;)I PLcom/android/server/pm/dex/ArtManagerService;->getPackageManager()Landroid/content/pm/IPackageManager; HSPLcom/android/server/pm/dex/ArtManagerService;->getPackageProfileNames(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/util/ArrayMap; @@ -33016,7 +33883,7 @@ HSPLcom/android/server/pm/dex/DexManager;->isSystemServerDexPathSupportedForOdex HSPLcom/android/server/pm/dex/DexManager;->load(Ljava/util/Map;)V HSPLcom/android/server/pm/dex/DexManager;->loadInternal(Ljava/util/Map;)V HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoad(Landroid/content/pm/ApplicationInfo;Ljava/util/Map;Ljava/lang/String;IZ)V+]Lcom/android/server/pm/dex/DexManager;Lcom/android/server/pm/dex/DexManager; -HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoadInternal(Landroid/content/pm/ApplicationInfo;Ljava/util/Map;Ljava/lang/String;IZ)V+]Lcom/android/server/pm/dex/PackageDexUsage;Lcom/android/server/pm/dex/PackageDexUsage;]Lcom/android/server/pm/dex/DexManager;Lcom/android/server/pm/dex/DexManager;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;,Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;]Lcom/android/server/pm/dex/DynamicCodeLogger;Lcom/android/server/pm/dex/DynamicCodeLogger;]Ljava/util/Map;Ljava/util/HashMap;,Ljava/util/Collections$UnmodifiableMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;,Ljava/util/HashMap$EntrySet; +HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoadInternal(Landroid/content/pm/ApplicationInfo;Ljava/util/Map;Ljava/lang/String;IZ)V+]Lcom/android/server/pm/dex/PackageDexUsage;Lcom/android/server/pm/dex/PackageDexUsage;]Lcom/android/server/pm/dex/DexManager;Lcom/android/server/pm/dex/DexManager;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;,Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;]Lcom/android/server/pm/dex/DynamicCodeLogger;Lcom/android/server/pm/dex/DynamicCodeLogger;]Ljava/util/Map;Ljava/util/HashMap;,Ljava/util/Collections$UnmodifiableMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;,Ljava/util/HashMap$EntrySet;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HSPLcom/android/server/pm/dex/DexManager;->notifyPackageDataDestroyed(Ljava/lang/String;I)V PLcom/android/server/pm/dex/DexManager;->notifyPackageInstalled(Landroid/content/pm/PackageInfo;I)V PLcom/android/server/pm/dex/DexManager;->notifyPackageUpdated(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V @@ -33024,7 +33891,7 @@ HSPLcom/android/server/pm/dex/DexManager;->putIfAbsent(Ljava/util/Map;Ljava/lang HPLcom/android/server/pm/dex/DexManager;->reconcileSecondaryDexFiles(Ljava/lang/String;)V HPLcom/android/server/pm/dex/DexoptOptions;-><init>(Ljava/lang/String;II)V HPLcom/android/server/pm/dex/DexoptOptions;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V -PLcom/android/server/pm/dex/DexoptOptions;->getCompilationReason()I +HPLcom/android/server/pm/dex/DexoptOptions;->getCompilationReason()I HPLcom/android/server/pm/dex/DexoptOptions;->getCompilerFilter()Ljava/lang/String; PLcom/android/server/pm/dex/DexoptOptions;->getFlags()I HPLcom/android/server/pm/dex/DexoptOptions;->getPackageName()Ljava/lang/String; @@ -33057,7 +33924,7 @@ PLcom/android/server/pm/dex/DynamicCodeLogger;->fileIsUnder(Ljava/lang/String;Lj PLcom/android/server/pm/dex/DynamicCodeLogger;->getAllPackagesWithDynamicCodeLoading()Ljava/util/Set; PLcom/android/server/pm/dex/DynamicCodeLogger;->getPackageDynamicCodeInfo(Ljava/lang/String;)Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode; PLcom/android/server/pm/dex/DynamicCodeLogger;->getPackageManager()Landroid/content/pm/IPackageManager; -PLcom/android/server/pm/dex/DynamicCodeLogger;->logDynamicCodeLoading(Ljava/lang/String;)V +HPLcom/android/server/pm/dex/DynamicCodeLogger;->logDynamicCodeLoading(Ljava/lang/String;)V HSPLcom/android/server/pm/dex/DynamicCodeLogger;->readAndSync(Ljava/util/Map;)V HSPLcom/android/server/pm/dex/DynamicCodeLogger;->recordDex(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/pm/dex/DynamicCodeLogger;->recordNative(ILjava/lang/String;)V @@ -33165,6 +34032,7 @@ HSPLcom/android/server/pm/dex/SystemServerDexLoadReporter;-><init>(Landroid/cont HSPLcom/android/server/pm/dex/SystemServerDexLoadReporter;->configureSystemServerDexReporter(Landroid/content/pm/IPackageManager;)V HSPLcom/android/server/pm/dex/SystemServerDexLoadReporter;->report(Ljava/util/Map;)V HSPLcom/android/server/pm/dex/ViewCompiler;-><init>(Ljava/lang/Object;Lcom/android/server/pm/Installer;)V +HSPLcom/android/server/pm/local/PackageManagerLocalImpl;-><init>(Lcom/android/server/pm/PackageManagerService;)V HSPLcom/android/server/pm/parsing/PackageCacher$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V HSPLcom/android/server/pm/parsing/PackageCacher$$ExternalSyntheticLambda0;->accept(Ljava/io/File;Ljava/lang/String;)Z HSPLcom/android/server/pm/parsing/PackageCacher;->$r8$lambda$EHUdax2tnuvpowUcJ_gJlWWRagM(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;)Z @@ -33183,7 +34051,7 @@ HSPLcom/android/server/pm/parsing/PackageCacher;->toCacheEntryStatic(Lcom/androi HSPLcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;-><init>()V HSPLcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;->generate(Lcom/android/server/pm/pkg/AndroidPackage;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ApplicationInfo; HSPLcom/android/server/pm/parsing/PackageInfoUtils;-><clinit>()V -HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoFlags(ILcom/android/server/pm/pkg/PackageStateInternal;)I +HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoFlags(ILcom/android/server/pm/pkg/PackageStateInternal;)I+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateUnserialized;Lcom/android/server/pm/pkg/PackageStateUnserialized; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoFlags(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)I HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoPrivateFlags(ILcom/android/server/pm/pkg/PackageStateInternal;)I HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoPrivateFlags(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)I @@ -33198,7 +34066,7 @@ HSPLcom/android/server/pm/parsing/PackageInfoUtils;->flag(ZI)I HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generate(Lcom/android/server/pm/pkg/AndroidPackage;[IJJJLjava/util/Set;Lcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/PackageInfo; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/component/ParsedActivity;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ActivityInfo; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/component/ParsedActivity;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ActivityInfo;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Landroid/content/pm/ActivityInfo;Landroid/content/pm/ActivityInfo;]Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Lcom/android/server/pm/pkg/component/ParsedActivity;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Lcom/android/server/pm/pkg/AndroidPackage;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/PackageStateUnserialized;Lcom/android/server/pm/pkg/PackageStateUnserialized; +HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Lcom/android/server/pm/pkg/AndroidPackage;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/PackageStateUnserialized;Lcom/android/server/pm/pkg/PackageStateUnserialized;]Lcom/android/server/pm/pkg/SharedLibraryWrapper;Lcom/android/server/pm/pkg/SharedLibraryWrapper;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/pm/parsing/PackageInfoUtils;->generateDelegateApplicationInfo(Landroid/content/pm/ApplicationInfo;JLcom/android/server/pm/pkg/PackageUserState;I)Landroid/content/pm/ApplicationInfo; HPLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionGroupInfo(Lcom/android/server/pm/pkg/component/ParsedPermissionGroup;J)Landroid/content/pm/PermissionGroupInfo; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionInfo(Lcom/android/server/pm/pkg/component/ParsedPermission;J)Landroid/content/pm/PermissionInfo;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedPermissionImpl;]Lcom/android/server/pm/pkg/component/ParsedPermission;Lcom/android/server/pm/pkg/component/ParsedPermissionImpl;]Landroid/os/BaseBundle;Landroid/os/Bundle; @@ -33206,7 +34074,7 @@ HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProcessInfo(Ljava/u HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProviderInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/component/ParsedProvider;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ProviderInfo;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/component/ParsedProvider;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/os/BaseBundle;Landroid/os/Bundle; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/component/ParsedService;JLcom/android/server/pm/pkg/PackageUserStateInternal;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ServiceInfo; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/component/ParsedService;JLcom/android/server/pm/pkg/PackageUserStateInternal;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/ServiceInfo;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/component/ParsedService;Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateWithComponents(Lcom/android/server/pm/pkg/AndroidPackage;[IJJJLjava/util/Set;Lcom/android/server/pm/pkg/PackageUserStateInternal;ILandroid/apex/ApexInfo;Lcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/PackageInfo;+]Lcom/android/server/pm/pkg/component/ParsedAttribution;Lcom/android/server/pm/pkg/component/ParsedAttributionImpl;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Lcom/android/server/pm/pkg/component/ParsedUsesPermission;Lcom/android/server/pm/pkg/component/ParsedUsesPermissionImpl;]Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Set;Landroid/util/ArraySet; +HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateWithComponents(Lcom/android/server/pm/pkg/AndroidPackage;[IJJJLjava/util/Set;Lcom/android/server/pm/pkg/PackageUserStateInternal;ILandroid/apex/ApexInfo;Lcom/android/server/pm/pkg/PackageStateInternal;)Landroid/content/pm/PackageInfo;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Lcom/android/server/pm/pkg/component/ParsedUsesPermission;Lcom/android/server/pm/pkg/component/ParsedUsesPermissionImpl;]Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Set;Landroid/util/ArraySet;]Lcom/android/server/pm/pkg/component/ParsedAttribution;Lcom/android/server/pm/pkg/component/ParsedAttributionImpl; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->getDataDir(Lcom/android/server/pm/pkg/AndroidPackage;I)Ljava/io/File;+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->initForUser(Landroid/content/pm/ApplicationInfo;Lcom/android/server/pm/pkg/AndroidPackage;I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/pm/parsing/pkg/PackageImpl;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/PackageInfoUtils;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;JLcom/android/server/pm/pkg/PackageUserState;)V+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;,Lcom/android/server/pm/pkg/PackageUserStateDefault;]Landroid/content/pm/overlay/OverlayPaths;Landroid/content/pm/overlay/OverlayPaths;]Ljava/util/List;Ljava/util/ArrayList; @@ -33230,7 +34098,7 @@ HSPLcom/android/server/pm/parsing/PackageParser2;->lambda$new$0()Landroid/conten HSPLcom/android/server/pm/parsing/PackageParser2;->lambda$new$1(Lcom/android/server/pm/parsing/PackageParser2$Callback;JLjava/lang/String;I)Z HSPLcom/android/server/pm/parsing/PackageParser2;->lambda$new$2(Landroid/content/pm/parsing/result/ParseInput$Callback;)Landroid/content/pm/parsing/result/ParseTypeImpl; HSPLcom/android/server/pm/parsing/PackageParser2;->parsePackage(Ljava/io/File;IZ)Lcom/android/server/pm/parsing/pkg/ParsedPackage; -HSPLcom/android/server/pm/parsing/ParsedComponentStateUtils;->getNonLocalizedLabelAndIcon(Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/PackageStateInternal;I)Landroid/util/Pair;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Lcom/android/server/pm/pkg/PackageUserStateInternal;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/lang/Integer;Ljava/lang/Integer; +HSPLcom/android/server/pm/parsing/ParsedComponentStateUtils;->getNonLocalizedLabelAndIcon(Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/PackageStateInternal;I)Landroid/util/Pair;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Ljava/lang/Integer;Ljava/lang/Integer;]Lcom/android/server/pm/pkg/PackageUserStateInternal;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting; HSPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;-><init>()V HSPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Z)V HSPLcom/android/server/pm/parsing/library/AndroidNetIpSecIkeUpdater;-><init>()V @@ -33268,13 +34136,11 @@ HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getAllCodePaths(Lcom PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getAllCodePathsExcludingResourceOnly(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/util/List; HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getHiddenApiEnforcementPolicy(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)I PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getPackageDexMetadata(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/util/Map; -HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getPrimaryCpuAbi(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRawPrimaryCpuAbi(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRawSecondaryCpuAbi(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRealPackageOrNull(Lcom/android/server/pm/pkg/AndroidPackage;)Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getSeInfo(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)Ljava/lang/String;+]Lcom/android/server/pm/parsing/pkg/AndroidPackageHidden;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/PackageStateUnserialized;Lcom/android/server/pm/pkg/PackageStateUnserialized; -HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getSecondaryCpuAbi(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;)Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting; -HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->hasComponentClassName(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->hasComponentClassName(Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;)Z+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isEncryptionAware(Lcom/android/server/pm/pkg/AndroidPackage;)Z HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isLibrary(Lcom/android/server/pm/pkg/AndroidPackage;)Z HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isMatchForSystemOnly(Lcom/android/server/pm/pkg/AndroidPackage;J)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; @@ -33299,6 +34165,8 @@ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addConfigPreference(Landroid HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addConfigPreference(Landroid/content/pm/ConfigurationInfo;)Lcom/android/server/pm/pkg/parsing/ParsingPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addImplicitPermission(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addImplicitPermission(Ljava/lang/String;)Lcom/android/server/pm/pkg/parsing/ParsingPackage; +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addInstrumentation(Lcom/android/server/pm/pkg/component/ParsedInstrumentation;)Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addInstrumentation(Lcom/android/server/pm/pkg/component/ParsedInstrumentation;)Lcom/android/server/pm/pkg/parsing/ParsingPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addLibraryName(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addLibraryName(Ljava/lang/String;)Lcom/android/server/pm/pkg/parsing/ParsingPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addMimeGroupsFromComponent(Lcom/android/server/pm/pkg/component/ParsedComponent;)V @@ -33346,7 +34214,7 @@ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->asSplit([Ljava/lang/String;[ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->asSplit([Ljava/lang/String;[Ljava/lang/String;[ILandroid/util/SparseArray;)Lcom/android/server/pm/pkg/parsing/ParsingPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->assignDerivedFields()V HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->assignDerivedFields2()V -HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->buildAppClassNamesByProcess()Landroid/util/ArrayMap;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/component/ParsedProcess;Lcom/android/server/pm/pkg/component/ParsedProcessImpl;]Ljava/util/Map;Ljava/util/HashMap;,Landroid/util/ArrayMap;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;,Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Ljava/util/HashMap$KeySet;,Landroid/util/MapCollections$KeySet; +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->buildAppClassNamesByProcess()Landroid/util/ArrayMap;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/component/ParsedProcess;Lcom/android/server/pm/pkg/component/ParsedProcessImpl;]Ljava/util/Map;Landroid/util/ArrayMap;,Ljava/util/HashMap;,Ljava/util/Collections$UnmodifiableMap;]Ljava/util/Iterator;Ljava/util/HashMap$KeyIterator;,Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$UnmodifiableCollection$1;]Ljava/util/Set;Ljava/util/HashMap$KeySet;,Landroid/util/MapCollections$KeySet;,Ljava/util/Collections$UnmodifiableSet; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->capPermissionPriorities()Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->capPermissionPriorities()Lcom/android/server/pm/parsing/pkg/ParsedPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->clearAdoptPermissions()Lcom/android/server/pm/parsing/pkg/PackageImpl; @@ -33416,6 +34284,7 @@ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getRequiredAccountType()Ljav HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getResizeableActivity()Ljava/lang/Boolean; PLcom/android/server/pm/parsing/pkg/PackageImpl;->getRestrictUpdateHash()[B HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getRestrictedAccountType()Ljava/lang/String; +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSdkLibraryName()Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSeInfo()Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSecondaryCpuAbi()Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getServices()Ljava/util/List; @@ -33429,6 +34298,7 @@ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSplitFlags()[I HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSplitNames()[Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSplitRevisionCodes()[I HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getStaticSharedLibVersion()J +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getStaticSharedLibraryName()Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getTargetSdkVersion()I HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getTaskAffinity()Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getUiOptions()I @@ -33520,6 +34390,7 @@ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isUsesNonSdkApi()Z HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isVendor()Z HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isVmSafeMode()Z PLcom/android/server/pm/parsing/pkg/PackageImpl;->lambda$static$0(Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedMainComponent;)I +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->makeImmutable()V HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->markNotActivitiesAsNotExportedIfSingleUser()Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->markNotActivitiesAsNotExportedIfSingleUser()Lcom/android/server/pm/parsing/pkg/ParsedPackage; PLcom/android/server/pm/parsing/pkg/PackageImpl;->removePermission(I)Lcom/android/server/pm/parsing/pkg/PackageImpl; @@ -33756,6 +34627,8 @@ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStaticSharedLibVersion(J) HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStaticSharedLibVersion(J)Lcom/android/server/pm/pkg/parsing/ParsingPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStaticSharedLibrary(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStaticSharedLibrary(Z)Lcom/android/server/pm/pkg/parsing/ParsingPackage; +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStaticSharedLibraryName(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStaticSharedLibraryName(Ljava/lang/String;)Lcom/android/server/pm/pkg/parsing/ParsingPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStub(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStub(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSupportsExtraLargeScreens(I)Lcom/android/server/pm/parsing/pkg/PackageImpl; @@ -33812,7 +34685,7 @@ HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setZygotePreloadName(Ljava/l PLcom/android/server/pm/parsing/pkg/PackageImpl;->sortActivities()Lcom/android/server/pm/parsing/pkg/PackageImpl; PLcom/android/server/pm/parsing/pkg/PackageImpl;->sortActivities()Lcom/android/server/pm/pkg/parsing/ParsingPackage; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->toAppInfoWithoutState()Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/parsing/pkg/PackageImpl;Lcom/android/server/pm/parsing/pkg/PackageImpl; -HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->toAppInfoWithoutStateWithoutFlags()Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/parsing/pkg/PackageImpl;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->toAppInfoWithoutStateWithoutFlags()Landroid/content/pm/ApplicationInfo;+]Lcom/android/server/pm/parsing/pkg/PackageImpl;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Set;Ljava/util/Collections$UnmodifiableSet;,Ljava/util/Collections$EmptySet;,Landroid/util/ArraySet; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->toString()Ljava/lang/String; HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->writeToParcel(Landroid/os/Parcel;I)V HSPLcom/android/server/pm/permission/CompatibilityPermissionInfo;-><clinit>()V @@ -34125,13 +34998,13 @@ HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerSe HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkOp(ILandroid/content/AttributionSourceState;Ljava/lang/String;ZZ)I HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkOp(Landroid/content/Context;ILcom/android/server/pm/permission/PermissionManagerServiceInternal;Landroid/content/AttributionSource;Ljava/lang/String;ZZ)I HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;ILjava/util/Set;)Z+]Landroid/content/Context;Landroid/app/ContextImpl;]Ljava/util/Set;Landroid/util/ArraySet;,Ljava/util/Collections$EmptySet; -HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZZI)I+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;]Landroid/content/Context;Landroid/app/ContextImpl;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager; +HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZZI)I+]Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/content/Context;Landroid/app/ContextImpl;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager; HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSourceState;Ljava/lang/String;ZZZI)I HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->checkRuntimePermission(Landroid/content/Context;Lcom/android/server/pm/permission/PermissionManagerServiceInternal;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZZI)I+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Ljava/util/concurrent/ConcurrentHashMap;Ljava/util/concurrent/ConcurrentHashMap; PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->finishDataDelivery(ILandroid/content/AttributionSourceState;Z)V HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->finishDataDelivery(Landroid/content/Context;ILandroid/content/AttributionSourceState;Z)V HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->getAttributionChainId(ZLandroid/content/AttributionSource;)I+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger; -HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->performOpTransaction(Landroid/content/Context;ILandroid/content/AttributionSource;Ljava/lang/String;ZZZZZIIII)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager; +HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->performOpTransaction(Landroid/content/Context;ILandroid/content/AttributionSource;Ljava/lang/String;ZZZZZIIII)I+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager; PLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->resolveAttributionFlags(Landroid/content/AttributionSource;Landroid/content/AttributionSource;ZZZZZ)I HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->resolveAttributionSource(Landroid/content/Context;Landroid/content/AttributionSource;)Landroid/content/AttributionSource;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; HPLcom/android/server/pm/permission/PermissionManagerService$PermissionCheckerService;->resolvePackageName(Landroid/content/Context;Landroid/content/AttributionSource;)Ljava/lang/String;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource; @@ -34190,7 +35063,7 @@ PLcom/android/server/pm/permission/PermissionManagerService;->getAllUserIds()[I HPLcom/android/server/pm/permission/PermissionManagerService;->getAllowlistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List; PLcom/android/server/pm/permission/PermissionManagerService;->getOneTimePermissionUserManager(I)Lcom/android/server/pm/permission/OneTimePermissionUserManager; HSPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl; -PLcom/android/server/pm/permission/PermissionManagerService;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo; +HPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo; HSPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;+]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl; HSPLcom/android/server/pm/permission/PermissionManagerService;->getSplitPermissions()Ljava/util/List; PLcom/android/server/pm/permission/PermissionManagerService;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V @@ -34219,10 +35092,11 @@ PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSynthet PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/Permission;ILcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V +PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/Permission;)V HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;II)V -PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z +HPLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;II)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z PLcom/android/server/pm/permission/PermissionManagerServiceImpl$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;I)V @@ -34238,6 +35112,7 @@ PLcom/android/server/pm/permission/PermissionManagerServiceImpl$1$$ExternalSynth PLcom/android/server/pm/permission/PermissionManagerServiceImpl$1$$ExternalSyntheticLambda0;->run()V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$1;->$r8$lambda$4ZU8kX3OTOWSR2BeFJXv4pmZczs(Lcom/android/server/pm/permission/PermissionManagerServiceImpl$1;Ljava/lang/String;ILjava/lang/String;I)V HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl$1;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;)V +PLcom/android/server/pm/permission/PermissionManagerServiceImpl$1;->isAppBackupAndRestoreRunning(I)Z PLcom/android/server/pm/permission/PermissionManagerServiceImpl$1;->lambda$onPermissionRevoked$1(Ljava/lang/String;ILjava/lang/String;I)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$1;->onInstallPermissionGranted()V PLcom/android/server/pm/permission/PermissionManagerServiceImpl$1;->onInstallPermissionUpdated()V @@ -34259,6 +35134,7 @@ PLcom/android/server/pm/permission/PermissionManagerServiceImpl$OnPermissionChan HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;-><init>()V HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;-><init>(Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback-IA;)V HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->$r8$lambda$0MXtuf3sdiZml7ol0_vyUjR3AjE(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;[ILcom/android/server/pm/pkg/PackageStateInternal;)V +PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->$r8$lambda$1A1k4DthSiIggg9RdFBbEX2TU9Y(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/pkg/AndroidPackage;)V HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->$r8$lambda$2i8MJWknOO3Xzi-Dmmn7HMNkzAQ(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Ljava/lang/String;I)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->$r8$lambda$6Zwu7x7e9rlGvxFL1JHe8MlJ1-s(II)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->$r8$lambda$7WgQB2l-zF1LgAskn3cy3fOfXEs(Lcom/android/server/pm/permission/PermissionManagerServiceImpl;IILandroid/content/pm/PermissionGroupInfo;)Z @@ -34291,7 +35167,7 @@ HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkCrossUs PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission(Ljava/lang/String;)Z HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkIfLegacyStorageOpsNeedToBeUpdated(Lcom/android/server/pm/pkg/AndroidPackage;Z[I[I)[I HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; -HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkPermissionInternal(Lcom/android/server/pm/pkg/AndroidPackage;ZLjava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Map;Ljava/util/HashMap;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkPermissionInternal(Lcom/android/server/pm/pkg/AndroidPackage;ZLjava/lang/String;I)I+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Ljava/util/Map;Ljava/util/HashMap;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkPrivilegedPermissionAllowlist(Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/permission/Permission;)Z HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkSinglePermissionInternalLocked(Lcom/android/server/pm/permission/UidPermissionState;Ljava/lang/String;Z)Z HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->checkSingleUidPermissionInternalLocked(ILjava/lang/String;)Z @@ -34308,12 +35184,12 @@ HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAllPermis HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAllPermissionsWithProtectionFlags(I)Ljava/util/ArrayList; HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAllUserIds()[I HPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAllowlistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List; -HPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAllowlistedRestrictedPermissionsInternal(Lcom/android/server/pm/pkg/AndroidPackage;II)Ljava/util/List;+]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAllowlistedRestrictedPermissionsInternal(Lcom/android/server/pm/pkg/AndroidPackage;II)Ljava/util/List;+]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAppOpPermissionPackages(Ljava/lang/String;)[Ljava/lang/String; HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getAppOpPermissionPackagesInternal(Ljava/lang/String;)[Ljava/lang/String; HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getGidsForUid(I)[I+]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl; HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getGrantedPermissions(Ljava/lang/String;I)Ljava/util/Set; -HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getGrantedPermissionsInternal(Ljava/lang/String;I)Ljava/util/Set;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getGrantedPermissionsInternal(Ljava/lang/String;I)Ljava/util/Set;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getLegacyPermissionState(I)Lcom/android/server/pm/permission/LegacyPermissionState;+]Lcom/android/server/pm/permission/DevicePermissionState;Lcom/android/server/pm/permission/DevicePermissionState;]Lcom/android/server/pm/permission/LegacyPermissionState;Lcom/android/server/pm/permission/LegacyPermissionState;]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/permission/PermissionState;Lcom/android/server/pm/permission/PermissionState;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl; PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getLegacyPermissions()Ljava/util/List; HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I+]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl; @@ -34343,7 +35219,7 @@ PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->isPermissionDe HPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;I)Z PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->isPermissionSplitFromNonRuntime(Ljava/lang/String;I)Z HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->isPermissionsReviewRequired(Ljava/lang/String;I)Z+]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl; -HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->isPermissionsReviewRequiredInternal(Ljava/lang/String;I)Z+]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->isPermissionsReviewRequiredInternal(Ljava/lang/String;I)Z+]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->killUid(IILjava/lang/String;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$getAllPermissionGroups$0(IILandroid/content/pm/PermissionGroupInfo;)Z PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$onPackageAddedInternal$16(ZLcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/pkg/AndroidPackage;ZLjava/util/List;)V @@ -34354,6 +35230,7 @@ PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$resetRu PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$restoreDelayedRuntimePermissions$5(ILjava/lang/Boolean;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$revokeRuntimePermissionsIfGroupChangedInternal$6([ILjava/lang/String;Lcom/android/server/pm/pkg/AndroidPackage;Ljava/lang/String;Ljava/lang/String;ILcom/android/server/pm/pkg/AndroidPackage;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$updatePermissionSourcePackage$11(Lcom/android/server/pm/permission/Permission;ILcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;Lcom/android/server/pm/pkg/AndroidPackage;)V +PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$updatePermissionSourcePackage$12(Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/pkg/AndroidPackage;)V HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$updatePermissions$10(Lcom/android/server/pm/pkg/AndroidPackage;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;Lcom/android/server/pm/pkg/AndroidPackage;)V HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->lambda$writeLegacyPermissionStateTEMP$15([ILcom/android/server/pm/PackageSetting;)V+]Lcom/android/server/pm/permission/DevicePermissionState;Lcom/android/server/pm/permission/DevicePermissionState;]Lcom/android/server/pm/permission/LegacyPermissionState;Lcom/android/server/pm/permission/LegacyPermissionState;]Lcom/android/server/pm/pkg/SharedUserApi;Lcom/android/server/pm/SharedUserSetting;]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission;]Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/permission/UserPermissionState;Lcom/android/server/pm/permission/UserPermissionState;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/permission/PermissionState;Lcom/android/server/pm/permission/PermissionState;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->logPermission(ILjava/lang/String;Ljava/lang/String;)V @@ -34381,9 +35258,9 @@ PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->resetRuntimePe PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->resetRuntimePermissionsInternal(Lcom/android/server/pm/pkg/AndroidPackage;I)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->resetRuntimePermissionsInternal(Lcom/android/server/pm/pkg/AndroidPackage;ILcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->restoreDelayedRuntimePermissions(Ljava/lang/String;I)V -HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->restorePermissionState(Lcom/android/server/pm/pkg/AndroidPackage;ZLjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;I)V+]Lcom/android/server/policy/PermissionPolicyInternal;Lcom/android/server/policy/PermissionPolicyService$Internal;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$1;]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$EmptyList;,Landroid/util/ArraySet;,Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/permission/PermissionState;Lcom/android/server/pm/permission/PermissionState;]Lcom/android/server/pm/pkg/PackageStateUnserialized;Lcom/android/server/pm/pkg/PackageStateUnserialized;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/permission/DevicePermissionState;Lcom/android/server/pm/permission/DevicePermissionState;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/pm/permission/UserPermissionState;Lcom/android/server/pm/permission/UserPermissionState;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/permission/PermissionRegistry;Lcom/android/server/pm/permission/PermissionRegistry;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/Collections$EmptyIterator; +HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->restorePermissionState(Lcom/android/server/pm/pkg/AndroidPackage;ZLjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;I)V+]Lcom/android/server/policy/PermissionPolicyInternal;Lcom/android/server/policy/PermissionPolicyService$Internal;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$1;]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/Collection;Ljava/util/Collections$EmptyList;,Landroid/util/ArraySet;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/permission/PermissionState;Lcom/android/server/pm/permission/PermissionState;]Lcom/android/server/pm/pkg/PackageStateUnserialized;Lcom/android/server/pm/pkg/PackageStateUnserialized;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/permission/DevicePermissionState;Lcom/android/server/pm/permission/DevicePermissionState;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/pm/permission/UserPermissionState;Lcom/android/server/pm/permission/UserPermissionState;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/pkg/PackageState;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/permission/PermissionRegistry;Lcom/android/server/pm/permission/PermissionRegistry;]Lcom/android/server/pm/permission/PermissionManagerServiceImpl;Lcom/android/server/pm/permission/PermissionManagerServiceImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;,Ljava/util/Collections$EmptyIterator;,Ljava/util/Collections$UnmodifiableCollection$1; PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->revokePermissionFromPackageForUser(Ljava/lang/String;Ljava/lang/String;ZILcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;)V -HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->revokePermissionsNoLongerImplicitLocked(Lcom/android/server/pm/permission/UidPermissionState;Ljava/lang/String;Ljava/util/Collection;II[I)[I+]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Ljava/util/Collection;Ljava/util/Collections$EmptyList;,Landroid/util/ArraySet;,Ljava/util/ArrayList;]Lcom/android/server/pm/permission/PermissionRegistry;Lcom/android/server/pm/permission/PermissionRegistry;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$EmptyIterator;]Ljava/util/Set;Landroid/util/ArraySet;,Ljava/util/Collections$EmptySet; +HSPLcom/android/server/pm/permission/PermissionManagerServiceImpl;->revokePermissionsNoLongerImplicitLocked(Lcom/android/server/pm/permission/UidPermissionState;Ljava/lang/String;Ljava/util/Collection;II[I)[I+]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Ljava/util/Collection;Ljava/util/Collections$EmptyList;,Landroid/util/ArraySet;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/permission/PermissionRegistry;Lcom/android/server/pm/permission/PermissionRegistry;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/Collections$EmptyIterator;]Ljava/util/Set;Landroid/util/ArraySet;,Ljava/util/Collections$EmptySet; PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->revokeRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;)V PLcom/android/server/pm/permission/PermissionManagerServiceImpl;->revokeRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZZIILjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceImpl$PermissionCallback;)V @@ -34461,7 +35338,7 @@ HSPLcom/android/server/pm/permission/UidPermissionState;->removePermissionState( HSPLcom/android/server/pm/permission/UidPermissionState;->reset()V PLcom/android/server/pm/permission/UidPermissionState;->revokePermission(Lcom/android/server/pm/permission/Permission;)Z HSPLcom/android/server/pm/permission/UidPermissionState;->setMissing(Z)V -HSPLcom/android/server/pm/permission/UidPermissionState;->updatePermissionFlags(Lcom/android/server/pm/permission/Permission;II)Z+]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/permission/PermissionState;Lcom/android/server/pm/permission/PermissionState;]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission; +HSPLcom/android/server/pm/permission/UidPermissionState;->updatePermissionFlags(Lcom/android/server/pm/permission/Permission;II)Z+]Lcom/android/server/pm/permission/Permission;Lcom/android/server/pm/permission/Permission;]Lcom/android/server/pm/permission/UidPermissionState;Lcom/android/server/pm/permission/UidPermissionState;]Lcom/android/server/pm/permission/PermissionState;Lcom/android/server/pm/permission/PermissionState; HSPLcom/android/server/pm/permission/UserPermissionState;-><init>()V HSPLcom/android/server/pm/permission/UserPermissionState;->areInstallPermissionsFixed(Ljava/lang/String;)Z HSPLcom/android/server/pm/permission/UserPermissionState;->checkAppId(I)V @@ -34587,6 +35464,10 @@ HSPLcom/android/server/pm/pkg/PackageUserStateUtils;->isMatch(Lcom/android/serve PLcom/android/server/pm/pkg/PackageUserStateUtils;->isPackageEnabled(Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/AndroidPackage;)Z HSPLcom/android/server/pm/pkg/PackageUserStateUtils;->reportIfDebug(ZJ)Z HSPLcom/android/server/pm/pkg/SELinuxUtil;->getSeinfoUser(Lcom/android/server/pm/pkg/PackageUserState;)Ljava/lang/String;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;,Lcom/android/server/pm/pkg/PackageUserStateDefault; +HSPLcom/android/server/pm/pkg/SharedLibraryWrapper;-><init>(Landroid/content/pm/SharedLibraryInfo;)V +HSPLcom/android/server/pm/pkg/SharedLibraryWrapper;->getInfo()Landroid/content/pm/SharedLibraryInfo; +PLcom/android/server/pm/pkg/SharedLibraryWrapper;->getType()I +PLcom/android/server/pm/pkg/SharedLibraryWrapper;->isNative()Z HSPLcom/android/server/pm/pkg/SuspendParams;-><init>(Landroid/content/pm/SuspendDialogInfo;Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;)V PLcom/android/server/pm/pkg/SuspendParams;->equals(Ljava/lang/Object;)Z PLcom/android/server/pm/pkg/SuspendParams;->getAppExtras()Landroid/os/PersistableBundle; @@ -34601,6 +35482,7 @@ HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setExactFlags(Lco HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setExported(Lcom/android/server/pm/pkg/component/ParsedMainComponent;Z)V HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setMaxAspectRatio(Lcom/android/server/pm/pkg/component/ParsedActivity;IF)V HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setMinAspectRatio(Lcom/android/server/pm/pkg/component/ParsedActivity;IF)V +HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setPackageName(Lcom/android/server/pm/pkg/component/ParsedComponent;Ljava/lang/String;)V HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setParsedPermissionGroup(Lcom/android/server/pm/pkg/component/ParsedPermission;Lcom/android/server/pm/pkg/component/ParsedPermissionGroup;)V HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setPriority(Lcom/android/server/pm/pkg/component/ParsedPermissionGroup;I)V HSPLcom/android/server/pm/pkg/component/ComponentMutateUtils;->setSupportsSizeChanges(Lcom/android/server/pm/pkg/component/ParsedActivity;Z)V @@ -34674,7 +35556,7 @@ HSPLcom/android/server/pm/pkg/component/ParsedActivityImpl;->writeToParcel(Landr HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;-><clinit>()V HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;->getActivityConfigChanges(II)I HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;->getActivityResizeMode(Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/TypedArray;I)I -HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;->parseActivityAlias(Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZLjava/lang/String;Landroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]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;]Lcom/android/server/pm/pkg/component/ParsedComponentImpl;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Landroid/content/pm/parsing/result/ParseResult;Landroid/content/pm/parsing/result/ParseTypeImpl;]Lcom/android/server/pm/pkg/parsing/ParsingPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;->parseActivityAlias(Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZLjava/lang/String;Landroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Lcom/android/server/pm/pkg/parsing/ParsingPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Lcom/android/server/pm/pkg/component/ParsedComponentImpl;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Landroid/content/pm/parsing/result/ParseResult;Landroid/content/pm/parsing/result/ParseTypeImpl; HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;->parseActivityOrAlias(Lcom/android/server/pm/pkg/component/ParsedActivityImpl;Lcom/android/server/pm/pkg/parsing/ParsingPackage;Ljava/lang/String;Landroid/content/res/XmlResourceParser;Landroid/content/res/Resources;Landroid/content/res/TypedArray;ZZZLandroid/content/pm/parsing/result/ParseInput;III)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;->parseActivityOrReceiver([Ljava/lang/String;Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;IZLjava/lang/String;Landroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/component/ParsedActivityUtils;->parseActivityWindowLayout(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult; @@ -34715,7 +35597,7 @@ HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;-><init>(Landroid/os HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->addIntent(Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;)V HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->addProperty(Landroid/content/pm/PackageManager$Property;)V HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->getBanner()I -HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->getComponentName()Landroid/content/ComponentName;+]Lcom/android/server/pm/pkg/component/ParsedComponentImpl;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl; +HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->getComponentName()Landroid/content/ComponentName;+]Lcom/android/server/pm/pkg/component/ParsedComponentImpl;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;,Lcom/android/server/pm/pkg/component/ParsedProviderImpl;,Lcom/android/server/pm/pkg/component/ParsedServiceImpl;,Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl; HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->getDescriptionRes()I HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->getFlags()I HSPLcom/android/server/pm/pkg/component/ParsedComponentImpl;->getIcon()I @@ -34743,6 +35625,14 @@ HSPLcom/android/server/pm/pkg/component/ParsedComponentUtils;->addProperty(Lcom/ HSPLcom/android/server/pm/pkg/component/ParsedComponentUtils;->parseComponent(Lcom/android/server/pm/pkg/component/ParsedComponentImpl;Ljava/lang/String;Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/TypedArray;ZLandroid/content/pm/parsing/result/ParseInput;IIIIIII)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl$1;-><init>()V HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;-><clinit>()V +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;-><init>()V +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;->getTargetPackage()Ljava/lang/String; +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;->setFunctionalTest(Z)Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl; +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;->setHandleProfiling(Z)Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl; +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;->setTargetPackage(Ljava/lang/String;)Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl; +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;->setTargetProcesses(Ljava/lang/String;)Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl; +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationImpl;->writeToParcel(Landroid/os/Parcel;I)V +HSPLcom/android/server/pm/pkg/component/ParsedInstrumentationUtils;->parseInstrumentation(Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZLandroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoImpl$1;-><init>()V HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoImpl$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl; HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoImpl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -34760,7 +35650,7 @@ HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;->setLabelRes(I)Lco HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;->setNonLocalizedLabel(Ljava/lang/CharSequence;)Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl; HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;->writeToParcel(Landroid/os/Parcel;I)V HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoUtils;->parseData(Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZLandroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult; -HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoUtils;->parseIntentInfo(Ljava/lang/String;Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZZLandroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/pm/parsing/result/ParseInput;Landroid/content/pm/parsing/result/ParseTypeImpl;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/pm/parsing/result/ParseResult;Landroid/content/pm/parsing/result/ParseTypeImpl;]Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Landroid/util/TypedValue;Landroid/util/TypedValue; +HSPLcom/android/server/pm/pkg/component/ParsedIntentInfoUtils;->parseIntentInfo(Ljava/lang/String;Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZZLandroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult;+]Ljava/lang/String;Ljava/lang/String;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/util/TypedValue;Landroid/util/TypedValue;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/pm/parsing/result/ParseInput;Landroid/content/pm/parsing/result/ParseTypeImpl;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Landroid/content/pm/parsing/result/ParseResult;Landroid/content/pm/parsing/result/ParseTypeImpl;]Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl; HSPLcom/android/server/pm/pkg/component/ParsedMainComponentImpl$1;-><init>()V HSPLcom/android/server/pm/pkg/component/ParsedMainComponentImpl;-><clinit>()V HSPLcom/android/server/pm/pkg/component/ParsedMainComponentImpl;-><init>()V @@ -34791,7 +35681,7 @@ HSPLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;-><init>()V HSPLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;-><init>(Landroid/os/Parcel;)V PLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;->getBackgroundRequestDetailRes()I PLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;->getBackgroundRequestRes()I -PLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;->getPriority()I +HPLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;->getPriority()I PLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;->getRequestDetailRes()I PLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;->getRequestRes()I HSPLcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl;->setBackgroundRequestDetailRes(I)Lcom/android/server/pm/pkg/component/ParsedPermissionGroupImpl; @@ -34967,6 +35857,7 @@ HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseBaseAppChildTag HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseBaseApplication(Landroid/content/pm/parsing/result/ParseInput;Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseClusterPackage(Landroid/content/pm/parsing/result/ParseInput;Ljava/io/File;I)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseFeatureInfo(Landroid/content/res/Resources;Landroid/util/AttributeSet;)Landroid/content/pm/FeatureInfo; +HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseInstrumentation(Landroid/content/pm/parsing/result/ParseInput;Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseLibrary(Lcom/android/server/pm/pkg/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseMetaData(Lcom/android/server/pm/pkg/parsing/ParsingPackage;Lcom/android/server/pm/pkg/component/ParsedComponent;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Ljava/lang/String;Landroid/content/pm/parsing/result/ParseInput;)Landroid/content/pm/parsing/result/ParseResult; HSPLcom/android/server/pm/pkg/parsing/ParsingPackageUtils;->parseMinOrMaxSdkVersion(Landroid/content/res/TypedArray;II)I @@ -35037,10 +35928,10 @@ HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;-> HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z+]Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver; HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/util/Pair; HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newArray(I)[Ljava/lang/Object; -HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newResult(Lcom/android/server/pm/Computer;Landroid/util/Pair;IIJ)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/server/pm/UserNeedsBadgingCache;Lcom/android/server/pm/UserNeedsBadgingCache;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;,Lcom/android/server/pm/ComputerLocked; +HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newResult(Lcom/android/server/pm/Computer;Landroid/util/Pair;IIJ)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/server/pm/UserNeedsBadgingCache;Lcom/android/server/pm/UserNeedsBadgingCache;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerLocked;,Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;+]Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver; HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->queryIntent(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService; -HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->queryIntentForPackage(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList;]Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->queryIntentForPackage(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ReceiverIntentResolver;,Lcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->removeActivity(Lcom/android/server/pm/pkg/component/ParsedActivity;Ljava/lang/String;)V HSPLcom/android/server/pm/resolution/ComponentResolver$ActivityIntentResolver;->sortResults(Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList; PLcom/android/server/pm/resolution/ComponentResolver$InstantAppIntentResolver;-><init>(Lcom/android/server/pm/UserManagerService;)V @@ -35098,7 +35989,7 @@ HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->n HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newResult(Lcom/android/server/pm/Computer;Landroid/util/Pair;IIJ)Landroid/content/pm/ResolveInfo;+]Lcom/android/server/pm/pkg/PackageUserState;Lcom/android/server/pm/pkg/PackageUserStateImpl;]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->newResult(Lcom/android/server/pm/Computer;Ljava/lang/Object;IIJ)Ljava/lang/Object;+]Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver; HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->queryIntent(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService; -HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->queryIntentForPackage(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->queryIntentForPackage(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedServiceImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;Lcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->removeService(Lcom/android/server/pm/pkg/component/ParsedService;)V HSPLcom/android/server/pm/resolution/ComponentResolver$ServiceIntentResolver;->sortResults(Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList; HSPLcom/android/server/pm/resolution/ComponentResolver;->$r8$lambda$q1lJ9rfFnT_oyvfX2vuSgkxXQfE(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I @@ -35138,7 +36029,7 @@ HSPLcom/android/server/pm/resolution/ComponentResolverBase;->queryActivities(Lco HSPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProvider(Lcom/android/server/pm/Computer;Ljava/lang/String;JI)Landroid/content/pm/ProviderInfo;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine; HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProviders(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List; PLcom/android/server/pm/resolution/ComponentResolverBase;->queryProviders(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List; -HSPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProviders(Lcom/android/server/pm/Computer;Ljava/lang/String;Ljava/lang/String;IJI)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/component/ParsedProvider;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Lcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;Lcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/pm/resolution/ComponentResolverBase;->queryProviders(Lcom/android/server/pm/Computer;Ljava/lang/String;Ljava/lang/String;IJI)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/component/ParsedProvider;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/PackageStateInternal;Lcom/android/server/pm/PackageSetting;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/pm/pkg/component/ParsedMainComponent;Lcom/android/server/pm/pkg/component/ParsedProviderImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Lcom/android/server/pm/Computer;Lcom/android/server/pm/ComputerEngine;]Landroid/os/BaseBundle;Landroid/os/Bundle;]Lcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;Lcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator; HSPLcom/android/server/pm/resolution/ComponentResolverBase;->queryReceivers(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List; HPLcom/android/server/pm/resolution/ComponentResolverBase;->queryReceivers(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JLjava/util/List;I)Ljava/util/List; HSPLcom/android/server/pm/resolution/ComponentResolverBase;->queryServices(Lcom/android/server/pm/Computer;Landroid/content/Intent;Ljava/lang/String;JI)Ljava/util/List; @@ -35183,7 +36074,7 @@ HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->byteSizeOf HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectAllWebDomains(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/util/ArraySet; HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomains(Lcom/android/server/pm/pkg/AndroidPackage;ZZ)Landroid/util/ArraySet; HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomains(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; -HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomainsInternal(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Ljava/util/function/BiFunction;Lcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda2;,Lcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda0;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Lcom/android/server/pm/verify/domain/DomainVerificationCollector;Lcom/android/server/pm/verify/domain/DomainVerificationCollector;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/IntentFilter$AuthorityEntry;Landroid/content/IntentFilter$AuthorityEntry; +HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomainsInternal(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;+]Lcom/android/server/pm/pkg/component/ParsedComponent;Lcom/android/server/pm/pkg/component/ParsedActivityImpl;]Ljava/util/function/BiFunction;Lcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda0;,Lcom/android/server/pm/verify/domain/DomainVerificationCollector$$ExternalSyntheticLambda2;]Lcom/android/server/pm/pkg/component/ParsedIntentInfo;Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/pm/verify/domain/DomainVerificationCollector;Lcom/android/server/pm/verify/domain/DomainVerificationCollector;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/IntentFilter$AuthorityEntry;Landroid/content/IntentFilter$AuthorityEntry; HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectDomainsLegacy(Lcom/android/server/pm/pkg/AndroidPackage;ZZLjava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; PLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectInvalidAutoVerifyDomains(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/util/ArraySet; HSPLcom/android/server/pm/verify/domain/DomainVerificationCollector;->collectValidAutoVerifyDomains(Lcom/android/server/pm/pkg/AndroidPackage;)Landroid/util/ArraySet; @@ -35466,7 +36357,7 @@ PLcom/android/server/policy/KeyCombinationManager;->getKeyInterceptTimeout(I)J PLcom/android/server/policy/KeyCombinationManager;->interceptKey(Landroid/view/KeyEvent;Z)Z HPLcom/android/server/policy/KeyCombinationManager;->interceptKeyLocked(Landroid/view/KeyEvent;Z)Z PLcom/android/server/policy/KeyCombinationManager;->isKeyConsumed(Landroid/view/KeyEvent;)Z -PLcom/android/server/policy/KeyCombinationManager;->isPowerKeyIntercepted()Z +HPLcom/android/server/policy/KeyCombinationManager;->isPowerKeyIntercepted()Z PLcom/android/server/policy/KeyCombinationManager;->lambda$dump$4(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;)V PLcom/android/server/policy/KeyCombinationManager;->lambda$interceptKeyLocked$0(Lcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;)V PLcom/android/server/policy/KeyCombinationManager;->lambda$interceptKeyLocked$1(ILcom/android/server/policy/KeyCombinationManager$TwoKeysCombinationRule;)V @@ -35593,7 +36484,7 @@ HSPLcom/android/server/policy/PermissionPolicyService;->registerCarrierPrivilege HPLcom/android/server/policy/PermissionPolicyService;->resetAppOpPermissionsIfNotRequestedForUid(I)V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Lcom/android/server/SystemService;Lcom/android/server/policy/PermissionPolicyService;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Landroid/app/AppOpsManager;Landroid/app/AppOpsManager; HPLcom/android/server/policy/PermissionPolicyService;->resetAppOpPermissionsIfNotRequestedForUidAsync(I)V HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsAsyncForUser(Ljava/lang/String;I)V+]Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyService;]Landroid/os/Handler;Landroid/os/Handler;]Landroid/util/ArraySet;Landroid/util/ArraySet; -HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsForUser(Ljava/lang/String;I)V+]Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;]Lcom/android/server/SystemService;Lcom/android/server/policy/PermissionPolicyService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsForUser(Ljava/lang/String;I)V+]Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;]Lcom/android/server/SystemService;Lcom/android/server/policy/PermissionPolicyService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePermissionsAndAppOpsForUser(I)V PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/PhoneWindowManager;I)V PLcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda0;->run()V @@ -35625,9 +36516,10 @@ PLcom/android/server/policy/PhoneWindowManager$7;->cancel()V PLcom/android/server/policy/PhoneWindowManager$7;->execute()V HSPLcom/android/server/policy/PhoneWindowManager$8;-><init>(Lcom/android/server/policy/PhoneWindowManager;II)V PLcom/android/server/policy/PhoneWindowManager$8;->cancel()V -PLcom/android/server/policy/PhoneWindowManager$8;->preCondition()Z +HPLcom/android/server/policy/PhoneWindowManager$8;->preCondition()Z HSPLcom/android/server/policy/PhoneWindowManager$9;-><init>(Lcom/android/server/policy/PhoneWindowManager;II)V PLcom/android/server/policy/PhoneWindowManager$9;->cancel()V +PLcom/android/server/policy/PhoneWindowManager$9;->execute()V PLcom/android/server/policy/PhoneWindowManager$9;->preCondition()Z PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;)V PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler$$ExternalSyntheticLambda0;->run()V @@ -35663,6 +36555,7 @@ PLcom/android/server/policy/PhoneWindowManager$PowerKeyRule;->onPress(J)V PLcom/android/server/policy/PhoneWindowManager$PowerKeyRule;->supportLongPress()Z PLcom/android/server/policy/PhoneWindowManager$PowerKeyRule;->supportVeryLongPress()Z HSPLcom/android/server/policy/PhoneWindowManager$ScreenLockTimeout;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V +PLcom/android/server/policy/PhoneWindowManager$ScreenLockTimeout;->run()V HSPLcom/android/server/policy/PhoneWindowManager$SettingsObserver;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/os/Handler;)V HSPLcom/android/server/policy/PhoneWindowManager$SettingsObserver;->observe()V PLcom/android/server/policy/PhoneWindowManager$SettingsObserver;->onChange(Z)V @@ -35674,6 +36567,7 @@ PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fgetmHandler(Lcom/andro PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fgetmKeyguardDelegate(Lcom/android/server/policy/PhoneWindowManager;)Lcom/android/server/policy/keyguard/KeyguardServiceDelegate; PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fgetmSingleKeyGestureDetector(Lcom/android/server/policy/PhoneWindowManager;)Lcom/android/server/policy/SingleKeyGestureDetector; PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fgetmSupportLongPressPowerWhenNonInteractive(Lcom/android/server/policy/PhoneWindowManager;)Z +PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$fputmLockNowPending(Lcom/android/server/policy/PhoneWindowManager;Z)V PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mcancelGlobalActionsAction(Lcom/android/server/policy/PhoneWindowManager;)V PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mcancelPendingAccessibilityShortcutAction(Lcom/android/server/policy/PhoneWindowManager;)V PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mcancelPendingScreenshotChordAction(Lcom/android/server/policy/PhoneWindowManager;)V @@ -35688,6 +36582,7 @@ PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mhandleTransitionForKey PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mhasLongPressOnPowerBehavior(Lcom/android/server/policy/PhoneWindowManager;)Z PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mhasVeryLongPressOnPowerBehavior(Lcom/android/server/policy/PhoneWindowManager;)Z PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$minterceptScreenshotChord(Lcom/android/server/policy/PhoneWindowManager;IIJ)V +PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mperformHapticFeedback(Lcom/android/server/policy/PhoneWindowManager;IZLjava/lang/String;)Z PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mpowerLongPress(Lcom/android/server/policy/PhoneWindowManager;J)V PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$mpowerPress(Lcom/android/server/policy/PhoneWindowManager;JIZ)V PLcom/android/server/policy/PhoneWindowManager;->-$$Nest$msendSystemKeyToStatusBar(Lcom/android/server/policy/PhoneWindowManager;I)V @@ -35775,6 +36670,7 @@ HSPLcom/android/server/policy/PhoneWindowManager;->isKeyguardOccluded()Z HPLcom/android/server/policy/PhoneWindowManager;->isKeyguardSecure(I)Z HSPLcom/android/server/policy/PhoneWindowManager;->isKeyguardShowing()Z+]Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;Lcom/android/server/policy/keyguard/KeyguardServiceDelegate; HSPLcom/android/server/policy/PhoneWindowManager;->isKeyguardShowingAndNotOccluded()Z+]Lcom/android/server/policy/PhoneWindowManager;Lcom/android/server/policy/PhoneWindowManager;]Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;Lcom/android/server/policy/keyguard/KeyguardServiceDelegate; +PLcom/android/server/policy/PhoneWindowManager;->isKeyguardTrustedLw()Z PLcom/android/server/policy/PhoneWindowManager;->isKeyguardUnoccluding()Z HPLcom/android/server/policy/PhoneWindowManager;->isScreenOn()Z+]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy; PLcom/android/server/policy/PhoneWindowManager;->isTheaterModeEnabled()Z @@ -35834,7 +36730,7 @@ PLcom/android/server/policy/PhoneWindowManager;->showGlobalActions()V PLcom/android/server/policy/PhoneWindowManager;->showGlobalActionsInternal()V PLcom/android/server/policy/PhoneWindowManager;->showRecentApps(Z)V PLcom/android/server/policy/PhoneWindowManager;->sleepDefaultDisplay(JII)V -PLcom/android/server/policy/PhoneWindowManager;->sleepDefaultDisplayFromPowerButton(JI)Z +HPLcom/android/server/policy/PhoneWindowManager;->sleepDefaultDisplayFromPowerButton(JI)Z PLcom/android/server/policy/PhoneWindowManager;->startDockOrHome(IZZ)V PLcom/android/server/policy/PhoneWindowManager;->startDockOrHome(IZZLjava/lang/String;)V PLcom/android/server/policy/PhoneWindowManager;->startedGoingToSleep(I)V @@ -35861,7 +36757,7 @@ PLcom/android/server/policy/SideFpsEventHandler$2;->onAllAuthenticatorsRegistere PLcom/android/server/policy/SideFpsEventHandler;->-$$Nest$fgetmDialog(Lcom/android/server/policy/SideFpsEventHandler;)Lcom/android/server/policy/SideFpsToast; HSPLcom/android/server/policy/SideFpsEventHandler;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/os/PowerManager;)V HSPLcom/android/server/policy/SideFpsEventHandler;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/os/PowerManager;Lcom/android/server/policy/SideFpsEventHandler$DialogProvider;)V -PLcom/android/server/policy/SideFpsEventHandler;->notifyPowerPressed()V +HPLcom/android/server/policy/SideFpsEventHandler;->notifyPowerPressed()V PLcom/android/server/policy/SideFpsEventHandler;->onFingerprintSensorReady()V PLcom/android/server/policy/SideFpsEventHandler;->shouldConsumeSinglePress(J)Z HSPLcom/android/server/policy/SingleKeyGestureDetector$KeyHandler;-><init>(Lcom/android/server/policy/SingleKeyGestureDetector;)V @@ -35947,6 +36843,7 @@ HPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isInputRestricte HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isOccluded()Z HPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isSecure(I)Z HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isShowing()Z+]Lcom/android/server/policy/keyguard/KeyguardServiceWrapper;Lcom/android/server/policy/keyguard/KeyguardServiceWrapper; +PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isTrusted()Z PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onBootCompleted()V PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onDreamingStarted()V PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onDreamingStopped()V @@ -35969,6 +36866,7 @@ PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->dump(Ljava/lang/St HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isInputRestricted()Z HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isSecure(I)Z HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isShowing()Z +PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isTrusted()Z PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onBootCompleted()V PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStarted()V PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStopped()V @@ -35989,8 +36887,9 @@ PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->getCurrentUser()I HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isInputRestricted()Z HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isSecure(I)Z HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isShowing()Z +PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isTrusted()Z PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onInputRestrictedStateChanged(Z)V -PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onShowingStateChanged(ZI)V +HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onShowingStateChanged(ZI)V PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onSimSecureStateChanged(Z)V PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onTrustedChanged(Z)V HSPLcom/android/server/policy/role/RoleServicePlatformHelperImpl$$ExternalSyntheticLambda0;-><init>(Ljava/io/DataOutputStream;Landroid/content/pm/PackageManagerInternal;I)V @@ -36002,7 +36901,7 @@ HSPLcom/android/server/policy/role/RoleServicePlatformHelperImpl;->$r8$lambda$7D HSPLcom/android/server/policy/role/RoleServicePlatformHelperImpl;-><clinit>()V HSPLcom/android/server/policy/role/RoleServicePlatformHelperImpl;-><init>(Landroid/content/Context;)V HSPLcom/android/server/policy/role/RoleServicePlatformHelperImpl;->computePackageStateHash(I)Ljava/lang/String; -HSPLcom/android/server/policy/role/RoleServicePlatformHelperImpl;->lambda$computePackageStateHash$0(Ljava/io/DataOutputStream;Landroid/content/pm/PackageManagerInternal;ILcom/android/server/pm/pkg/AndroidPackage;)V+]Landroid/content/pm/Signature;Landroid/content/pm/Signature;]Ljava/io/DataOutputStream;Ljava/io/DataOutputStream;]Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/io/OutputStream;Ljava/io/DataOutputStream;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; +HSPLcom/android/server/policy/role/RoleServicePlatformHelperImpl;->lambda$computePackageStateHash$0(Ljava/io/DataOutputStream;Landroid/content/pm/PackageManagerInternal;ILcom/android/server/pm/pkg/AndroidPackage;)V+]Landroid/content/pm/Signature;Landroid/content/pm/Signature;]Ljava/io/DataOutputStream;Ljava/io/DataOutputStream;]Landroid/content/pm/SigningDetails;Landroid/content/pm/SigningDetails;]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;,Ljava/util/Collections$UnmodifiableRandomAccessList;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Ljava/io/OutputStream;Ljava/io/DataOutputStream;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/power/AmbientDisplaySuppressionController;-><init>(Landroid/content/Context;)V PLcom/android/server/power/AmbientDisplaySuppressionController;->dump(Ljava/io/PrintWriter;)V PLcom/android/server/power/AmbientDisplaySuppressionController;->getStatusBar()Lcom/android/internal/statusbar/IStatusBarService; @@ -36011,16 +36910,23 @@ PLcom/android/server/power/AmbientDisplaySuppressionController;->suppress(Ljava/ HSPLcom/android/server/power/AttentionDetector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/AttentionDetector;)V PLcom/android/server/power/AttentionDetector$$ExternalSyntheticLambda0;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/power/AttentionDetector$1;-><init>(Lcom/android/server/power/AttentionDetector;Landroid/os/Handler;Landroid/content/Context;)V +PLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;-><init>(Lcom/android/server/power/AttentionDetector;I)V +PLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;->onSuccess(IJ)V HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;)V HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;Lcom/android/server/power/AttentionDetector$UserSwitchObserver-IA;)V PLcom/android/server/power/AttentionDetector;->$r8$lambda$vAWNBBapFegWUK8AN5L8ul_hKAM(Lcom/android/server/power/AttentionDetector;Landroid/provider/DeviceConfig$Properties;)V +PLcom/android/server/power/AttentionDetector;->-$$Nest$fgetmLock(Lcom/android/server/power/AttentionDetector;)Ljava/lang/Object; +PLcom/android/server/power/AttentionDetector;->-$$Nest$fgetmOnUserAttention(Lcom/android/server/power/AttentionDetector;)Ljava/lang/Runnable; +PLcom/android/server/power/AttentionDetector;->-$$Nest$fgetmRequested(Lcom/android/server/power/AttentionDetector;)Ljava/util/concurrent/atomic/AtomicBoolean; +PLcom/android/server/power/AttentionDetector;->-$$Nest$fgetmWakefulness(Lcom/android/server/power/AttentionDetector;)I +PLcom/android/server/power/AttentionDetector;->-$$Nest$mresetConsecutiveExtensionCount(Lcom/android/server/power/AttentionDetector;)V HSPLcom/android/server/power/AttentionDetector;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V HSPLcom/android/server/power/AttentionDetector;->cancelCurrentRequestIfAny()V PLcom/android/server/power/AttentionDetector;->dump(Ljava/io/PrintWriter;)V HSPLcom/android/server/power/AttentionDetector;->getMaxExtensionMillis()J HSPLcom/android/server/power/AttentionDetector;->getPostDimCheckDurationMillis()J HSPLcom/android/server/power/AttentionDetector;->getPreDimCheckDurationMillis()J -PLcom/android/server/power/AttentionDetector;->isAttentionServiceSupported()Z +HPLcom/android/server/power/AttentionDetector;->isAttentionServiceSupported()Z PLcom/android/server/power/AttentionDetector;->lambda$systemReady$0(Landroid/provider/DeviceConfig$Properties;)V PLcom/android/server/power/AttentionDetector;->onDeviceConfigChange(Ljava/util/Set;)V HSPLcom/android/server/power/AttentionDetector;->onUserActivity(JI)I @@ -36029,7 +36935,7 @@ HSPLcom/android/server/power/AttentionDetector;->readValuesFromDeviceConfig()V HSPLcom/android/server/power/AttentionDetector;->resetConsecutiveExtensionCount()V HSPLcom/android/server/power/AttentionDetector;->systemReady(Landroid/content/Context;)V HSPLcom/android/server/power/AttentionDetector;->updateEnabledFromSettings(Landroid/content/Context;)V -HSPLcom/android/server/power/AttentionDetector;->updateUserActivity(JJ)J +HSPLcom/android/server/power/AttentionDetector;->updateUserActivity(JJ)J+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/attention/AttentionManagerInternal;Lcom/android/server/attention/AttentionManagerService$LocalService;]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;]Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/wm/WindowManagerService$LocalService;]Lcom/android/server/power/AttentionDetector;Lcom/android/server/power/AttentionDetector; HSPLcom/android/server/power/FaceDownDetector$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/FaceDownDetector;)V HPLcom/android/server/power/FaceDownDetector$$ExternalSyntheticLambda0;->run()V HSPLcom/android/server/power/FaceDownDetector$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/FaceDownDetector;)V @@ -36192,6 +37098,7 @@ HSPLcom/android/server/power/PowerGroup;->supportsSandmanLocked()Z HSPLcom/android/server/power/PowerGroup;->updateLocked(FZZZIFZLandroid/os/PowerSaveState;ZZZZZZ)Z+]Lcom/android/server/power/PowerGroup;Lcom/android/server/power/PowerGroup;]Lcom/android/server/power/Notifier;Lcom/android/server/power/Notifier;]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService; HSPLcom/android/server/power/PowerGroup;->wakeUpLocked(JILjava/lang/String;ILjava/lang/String;ILcom/android/internal/util/LatencyTracker;)V HSPLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/PowerManagerService;)V +PLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda0;->run()V HSPLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/PowerManagerService;)V PLcom/android/server/power/PowerManagerService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V HSPLcom/android/server/power/PowerManagerService$1;-><init>(Lcom/android/server/power/PowerManagerService;)V @@ -36252,7 +37159,7 @@ HSPLcom/android/server/power/PowerManagerService$DockReceiver;-><init>(Lcom/andr HSPLcom/android/server/power/PowerManagerService$DockReceiver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$DockReceiver-IA;)V HSPLcom/android/server/power/PowerManagerService$DreamReceiver;-><init>(Lcom/android/server/power/PowerManagerService;)V HSPLcom/android/server/power/PowerManagerService$DreamReceiver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$DreamReceiver-IA;)V -PLcom/android/server/power/PowerManagerService$DreamReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +HPLcom/android/server/power/PowerManagerService$DreamReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;)V HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$ForegroundProfileObserver-IA;)V PLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;->onForegroundProfileSwitch(I)V @@ -36288,7 +37195,7 @@ HSPLcom/android/server/power/PowerManagerService$LocalService;->getLowPowerState PLcom/android/server/power/PowerManagerService$LocalService;->interceptPowerKeyDown(Landroid/view/KeyEvent;)Z HSPLcom/android/server/power/PowerManagerService$LocalService;->registerLowPowerModeObserver(Landroid/os/PowerManagerInternal$LowPowerModeListener;)V PLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleMode(Z)Z -HPLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleTempWhitelist([I)V +HSPLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleTempWhitelist([I)V HSPLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleWhitelist([I)V HPLcom/android/server/power/PowerManagerService$LocalService;->setDozeOverrideFromDreamManager(II)V PLcom/android/server/power/PowerManagerService$LocalService;->setLightDeviceIdleMode(Z)Z @@ -36339,6 +37246,7 @@ HSPLcom/android/server/power/PowerManagerService$WakeLock;->setDisabled(Z)Z PLcom/android/server/power/PowerManagerService$WakeLock;->toString()Ljava/lang/String; HSPLcom/android/server/power/PowerManagerService$WakeLock;->unlinkToDeath()V+]Landroid/os/IBinder;Landroid/os/BinderProxy;,Landroid/os/Binder; HPLcom/android/server/power/PowerManagerService$WakeLock;->updateWorkSource(Landroid/os/WorkSource;)V +PLcom/android/server/power/PowerManagerService;->$r8$lambda$3O_XhPeje_Bvi3Lsae4KaFoxJj0(Lcom/android/server/power/PowerManagerService;)V PLcom/android/server/power/PowerManagerService;->$r8$lambda$q7dp6tNnllSjuO6t2c5KypV49H8(Lcom/android/server/power/PowerManagerService;Z)V PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmAmbientDisplayConfiguration(Lcom/android/server/power/PowerManagerService;)Landroid/hardware/display/AmbientDisplayConfiguration; PLcom/android/server/power/PowerManagerService;->-$$Nest$fgetmAmbientDisplaySuppressionController(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/AmbientDisplaySuppressionController; @@ -36413,7 +37321,7 @@ HSPLcom/android/server/power/PowerManagerService;->-$$Nest$smnativeSetPowerMode( HSPLcom/android/server/power/PowerManagerService;-><clinit>()V HSPLcom/android/server/power/PowerManagerService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/power/PowerManagerService;-><init>(Landroid/content/Context;Lcom/android/server/power/PowerManagerService$Injector;)V -HSPLcom/android/server/power/PowerManagerService;->acquireWakeLockInternal(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILandroid/os/IWakeLockCallback;)V+]Lcom/android/server/power/PowerManagerService$WakeLock;Lcom/android/server/power/PowerManagerService$WakeLock;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Landroid/view/DisplayInfo;Landroid/view/DisplayInfo; +HSPLcom/android/server/power/PowerManagerService;->acquireWakeLockInternal(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILandroid/os/IWakeLockCallback;)V+]Lcom/android/server/power/PowerManagerService$WakeLock;Lcom/android/server/power/PowerManagerService$WakeLock;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/DisplayInfo;Landroid/view/DisplayInfo; HSPLcom/android/server/power/PowerManagerService;->adjustWakeLockSummary(II)I HSPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnAcquireLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Lcom/android/server/power/PowerManagerService$WakeLock;Lcom/android/server/power/PowerManagerService$WakeLock;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Lcom/android/server/power/PowerManagerService$Clock;Lcom/android/server/power/PowerManagerService$Injector$2; HSPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnReleaseLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V @@ -36472,6 +37380,7 @@ HSPLcom/android/server/power/PowerManagerService;->onBootPhase(I)V HPLcom/android/server/power/PowerManagerService;->onFlip(Z)V PLcom/android/server/power/PowerManagerService;->onPowerGroupEventLocked(ILcom/android/server/power/PowerGroup;)V HSPLcom/android/server/power/PowerManagerService;->onStart()V +PLcom/android/server/power/PowerManagerService;->onUserAttention()V HSPLcom/android/server/power/PowerManagerService;->readConfigurationLocked()V HPLcom/android/server/power/PowerManagerService;->recalculateGlobalWakefulnessLocked()I HSPLcom/android/server/power/PowerManagerService;->releaseWakeLockInternal(Landroid/os/IBinder;I)V+]Lcom/android/server/power/PowerManagerService$WakeLock;Lcom/android/server/power/PowerManagerService$WakeLock;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -36480,7 +37389,7 @@ HSPLcom/android/server/power/PowerManagerService;->restartNofifyLongTimerLocked( HSPLcom/android/server/power/PowerManagerService;->scheduleSandmanLocked()V+]Lcom/android/server/power/PowerGroup;Lcom/android/server/power/PowerGroup;]Landroid/os/Handler;Landroid/os/Handler;]Landroid/os/Message;Landroid/os/Message;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/PowerManagerService$Clock;Lcom/android/server/power/PowerManagerService$Injector$2; HSPLcom/android/server/power/PowerManagerService;->scheduleUserInactivityTimeout(J)V PLcom/android/server/power/PowerManagerService;->setDeviceIdleModeInternal(Z)Z -HPLcom/android/server/power/PowerManagerService;->setDeviceIdleTempWhitelistInternal([I)V +HSPLcom/android/server/power/PowerManagerService;->setDeviceIdleTempWhitelistInternal([I)V HSPLcom/android/server/power/PowerManagerService;->setDeviceIdleWhitelistInternal([I)V PLcom/android/server/power/PowerManagerService;->setDozeAfterScreenOffInternal(Z)V HPLcom/android/server/power/PowerManagerService;->setDozeOverrideFromDreamManagerInternal(II)V @@ -36489,7 +37398,7 @@ HSPLcom/android/server/power/PowerManagerService;->setHalInteractiveModeLocked(Z PLcom/android/server/power/PowerManagerService;->setLightDeviceIdleModeInternal(Z)Z PLcom/android/server/power/PowerManagerService;->setLowPowerModeInternal(Z)Z HSPLcom/android/server/power/PowerManagerService;->setMaximumScreenOffTimeoutFromDeviceAdminInternal(IJ)V -HSPLcom/android/server/power/PowerManagerService;->setPowerBoostInternal(II)V +HSPLcom/android/server/power/PowerManagerService;->setPowerBoostInternal(II)V+]Lcom/android/server/power/PowerManagerService$NativeWrapper;Lcom/android/server/power/PowerManagerService$NativeWrapper; HSPLcom/android/server/power/PowerManagerService;->setPowerModeInternal(IZ)Z HSPLcom/android/server/power/PowerManagerService;->setScreenBrightnessOverrideFromWindowManagerInternal(F)V+]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService; HSPLcom/android/server/power/PowerManagerService;->setUserActivityTimeoutOverrideFromWindowManagerInternal(J)V+]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService; @@ -36507,7 +37416,7 @@ HSPLcom/android/server/power/PowerManagerService;->uidIdleInternal(I)V HSPLcom/android/server/power/PowerManagerService;->updateAttentiveStateLocked(JI)V+]Lcom/android/server/power/PowerGroup;Lcom/android/server/power/PowerGroup;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService; HSPLcom/android/server/power/PowerManagerService;->updateDreamLocked(IZ)V+]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService; HPLcom/android/server/power/PowerManagerService;->updateGlobalWakefulnessLocked(JIIILjava/lang/String;Ljava/lang/String;)V -HSPLcom/android/server/power/PowerManagerService;->updateIsPoweredLocked(I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/power/Notifier;Lcom/android/server/power/Notifier;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/batterysaver/BatterySaverStateMachine;Lcom/android/server/power/batterysaver/BatterySaverStateMachine;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/power/WirelessChargerDetector;Lcom/android/server/power/WirelessChargerDetector;]Landroid/os/BatteryManagerInternal;Lcom/android/server/BatteryService$LocalService;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Lcom/android/server/power/PowerManagerService$Clock;Lcom/android/server/power/PowerManagerService$Injector$2; +HSPLcom/android/server/power/PowerManagerService;->updateIsPoweredLocked(I)V+]Lcom/android/server/power/batterysaver/BatterySaverStateMachine;Lcom/android/server/power/batterysaver/BatterySaverStateMachine;]Landroid/os/BatteryManagerInternal;Lcom/android/server/BatteryService$LocalService;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/power/Notifier;Lcom/android/server/power/Notifier;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/Context;Landroid/app/ContextImpl;]Lcom/android/server/power/WirelessChargerDetector;Lcom/android/server/power/WirelessChargerDetector;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Lcom/android/server/power/PowerManagerService$Clock;Lcom/android/server/power/PowerManagerService$Injector$2; HSPLcom/android/server/power/PowerManagerService;->updatePowerGroupsLocked(I)Z+]Lcom/android/server/power/PowerGroup;Lcom/android/server/power/PowerGroup;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/internal/util/LatencyTracker;Lcom/android/internal/util/LatencyTracker;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/batterysaver/BatterySaverPolicy;Lcom/android/server/power/batterysaver/BatterySaverPolicy;]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Lcom/android/server/power/PowerManagerService$Clock;Lcom/android/server/power/PowerManagerService$Injector$2; HSPLcom/android/server/power/PowerManagerService;->updatePowerStateLocked()V+]Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService;]Lcom/android/server/power/PowerManagerService$Clock;Lcom/android/server/power/PowerManagerService$Injector$2; HSPLcom/android/server/power/PowerManagerService;->updateProfilesLocked(J)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; @@ -36647,7 +37556,7 @@ HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;->setCallba HSPLcom/android/server/power/ThermalManagerService;->$r8$lambda$EFa1q7lNzNJKR9kHjyMZOluNpXA(Lcom/android/server/power/ThermalManagerService;Landroid/os/Temperature;)V HSPLcom/android/server/power/ThermalManagerService;->$r8$lambda$g2jTj6VJDwnSkMsHJvQaUykmq-4(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V HSPLcom/android/server/power/ThermalManagerService;->$r8$lambda$lFrxurL8ANGCcVUNbDj5KUpTrxQ(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V -PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmHalReady(Lcom/android/server/power/ThermalManagerService;)Ljava/util/concurrent/atomic/AtomicBoolean; +HPLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmHalReady(Lcom/android/server/power/ThermalManagerService;)Ljava/util/concurrent/atomic/AtomicBoolean; HSPLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmHalWrapper(Lcom/android/server/power/ThermalManagerService;)Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper; PLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmIsStatusOverride(Lcom/android/server/power/ThermalManagerService;)Z HSPLcom/android/server/power/ThermalManagerService;->-$$Nest$fgetmLock(Lcom/android/server/power/ThermalManagerService;)Ljava/lang/Object; @@ -36846,8 +37755,11 @@ HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->systemReady()V PLcom/android/server/power/batterysaver/BatterySaverPolicy;->toEventLogString()Ljava/lang/String; HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->updateConstantsLocked(Ljava/lang/String;Ljava/lang/String;)Z HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->updatePolicyDependenciesLocked()V +PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V +PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda0;->run()V HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda1;->run()V +PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;I)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda2;->run()V PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda3;->run()V @@ -36855,6 +37767,7 @@ HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSynt PLcom/android/server/power/batterysaver/BatterySaverStateMachine$$ExternalSyntheticLambda4;->run()V HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine$1;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;Landroid/os/Handler;)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine$1;->onChange(Z)V +PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->$r8$lambda$1EwyG_pn3H-C0ioZbgS2cfrLLCI(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->$r8$lambda$5YGRMAjJ8DyuYmjloVzrbb8dcsY(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->$r8$lambda$LslWh4hhYFjFFwmSSc2-r8ZXWXk(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;I)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->$r8$lambda$S_N5dZx6EbaDriR4Ktah_f_DgcA(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V @@ -36880,6 +37793,7 @@ PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->lambda$hideNo PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->lambda$new$1()V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->lambda$onBootCompleted$0()V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->lambda$triggerDynamicModeNotification$2()V +PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->lambda$triggerStickyDisabledNotification$3()V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->onBootCompleted()V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->putGlobalSetting(Ljava/lang/String;I)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->refreshSettingsLocked()V @@ -36893,7 +37807,8 @@ PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->setFullBatter PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->setSettingsLocked(ZZIZIIZI)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->setStickyActive(Z)V PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->triggerDynamicModeNotification()V -PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->updateStateLocked(ZZ)V +PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->triggerStickyDisabledNotification()V +HPLcom/android/server/power/batterysaver/BatterySaverStateMachine;->updateStateLocked(ZZ)V PLcom/android/server/power/batterysaver/BatterySavingStats$BatterySaverState;->fromIndex(I)I PLcom/android/server/power/batterysaver/BatterySavingStats$DozeState;->fromIndex(I)I PLcom/android/server/power/batterysaver/BatterySavingStats$InteractiveState;->fromIndex(I)I @@ -36904,20 +37819,22 @@ HSPLcom/android/server/power/batterysaver/BatterySavingStats;-><init>(Ljava/lang PLcom/android/server/power/batterysaver/BatterySavingStats;->dump(Landroid/util/IndentingPrintWriter;)V PLcom/android/server/power/batterysaver/BatterySavingStats;->dumpLineLocked(Landroid/util/IndentingPrintWriter;ILjava/lang/String;ILjava/lang/String;)V HPLcom/android/server/power/batterysaver/BatterySavingStats;->endLastStateLocked(JII)V -PLcom/android/server/power/batterysaver/BatterySavingStats;->getBatteryManagerInternal()Landroid/os/BatteryManagerInternal; +HPLcom/android/server/power/batterysaver/BatterySavingStats;->getBatteryManagerInternal()Landroid/os/BatteryManagerInternal; HPLcom/android/server/power/batterysaver/BatterySavingStats;->getStat(I)Lcom/android/server/power/batterysaver/BatterySavingStats$Stat; PLcom/android/server/power/batterysaver/BatterySavingStats;->getStat(IIII)Lcom/android/server/power/batterysaver/BatterySavingStats$Stat; PLcom/android/server/power/batterysaver/BatterySavingStats;->injectBatteryLevel()I -PLcom/android/server/power/batterysaver/BatterySavingStats;->injectBatteryPercent()I +HPLcom/android/server/power/batterysaver/BatterySavingStats;->injectBatteryPercent()I PLcom/android/server/power/batterysaver/BatterySavingStats;->injectCurrentTime()J HPLcom/android/server/power/batterysaver/BatterySavingStats;->startNewStateLocked(IJII)V PLcom/android/server/power/batterysaver/BatterySavingStats;->statesToIndex(IIII)I HPLcom/android/server/power/batterysaver/BatterySavingStats;->transitionState(IIII)V HPLcom/android/server/power/batterysaver/BatterySavingStats;->transitionStateLocked(I)V +PLcom/android/server/power/hint/HintManagerService$AppHintSession;->-$$Nest$mdump(Lcom/android/server/power/hint/HintManagerService$AppHintSession;Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/power/hint/HintManagerService$AppHintSession;->-$$Nest$monProcStateChanged(Lcom/android/server/power/hint/HintManagerService$AppHintSession;)V HPLcom/android/server/power/hint/HintManagerService$AppHintSession;-><init>(Lcom/android/server/power/hint/HintManagerService;II[ILandroid/os/IBinder;JJ)V PLcom/android/server/power/hint/HintManagerService$AppHintSession;->binderDied()V HPLcom/android/server/power/hint/HintManagerService$AppHintSession;->close()V +PLcom/android/server/power/hint/HintManagerService$AppHintSession;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/power/hint/HintManagerService$AppHintSession;->onProcStateChanged()V HPLcom/android/server/power/hint/HintManagerService$AppHintSession;->pause()V HPLcom/android/server/power/hint/HintManagerService$AppHintSession;->reportActualWorkDuration([J[J)V+]Lcom/android/server/power/hint/HintManagerService$NativeWrapper;Lcom/android/server/power/hint/HintManagerService$NativeWrapper;]Lcom/android/server/power/hint/HintManagerService$AppHintSession;Lcom/android/server/power/hint/HintManagerService$AppHintSession; @@ -36998,7 +37915,7 @@ HSPLcom/android/server/power/stats/BatteryExternalStatsWorker$3;-><init>(Lcom/an HPLcom/android/server/power/stats/BatteryExternalStatsWorker$3;->execute(Ljava/lang/Runnable;)V HPLcom/android/server/power/stats/BatteryExternalStatsWorker$4;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Landroid/os/SynchronousResultReceiver;)V HPLcom/android/server/power/stats/BatteryExternalStatsWorker$4;->onBluetoothActivityEnergyInfoAvailable(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V -PLcom/android/server/power/stats/BatteryExternalStatsWorker$4;->onBluetoothActivityEnergyInfoError(I)V +HPLcom/android/server/power/stats/BatteryExternalStatsWorker$4;->onBluetoothActivityEnergyInfoError(I)V HPLcom/android/server/power/stats/BatteryExternalStatsWorker$5;-><init>(Lcom/android/server/power/stats/BatteryExternalStatsWorker;Ljava/util/concurrent/CompletableFuture;)V PLcom/android/server/power/stats/BatteryExternalStatsWorker$5;->onError(Landroid/telephony/TelephonyManager$ModemActivityInfoException;)V PLcom/android/server/power/stats/BatteryExternalStatsWorker$5;->onError(Ljava/lang/Throwable;)V @@ -37105,6 +38022,7 @@ HPLcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;-> HSPLcom/android/server/power/stats/BatteryStatsImpl$Constants;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;Landroid/os/Handler;)V PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->dumpLocked(Ljava/io/PrintWriter;)V HSPLcom/android/server/power/stats/BatteryStatsImpl$Constants;->onChange()V +PLcom/android/server/power/stats/BatteryStatsImpl$Constants;->onChange(ZLandroid/net/Uri;)V HSPLcom/android/server/power/stats/BatteryStatsImpl$Constants;->startObserving(Landroid/content/ContentResolver;)V HSPLcom/android/server/power/stats/BatteryStatsImpl$Constants;->updateBatteryChargedDelayMsLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl$Constants;->updateConstants()V @@ -37301,15 +38219,15 @@ HPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->onTim HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->readFromParcel(Landroid/os/Parcel;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;IJ)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter; PLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->reset(ZJ)Z HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->setState(IJ)V+]Lcom/android/internal/os/LongMultiStateCounter;Lcom/android/internal/os/LongMultiStateCounter; -HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->update(JJ)J -HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->writeToParcel(Landroid/os/Parcel;)V +HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->update(JJ)J+]Lcom/android/internal/os/LongMultiStateCounter;Lcom/android/internal/os/LongMultiStateCounter; +HSPLcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;->writeToParcel(Landroid/os/Parcel;)V+]Lcom/android/internal/os/LongMultiStateCounter;Lcom/android/internal/os/LongMultiStateCounter; HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;-><init>(Lcom/android/internal/os/Clock;ILcom/android/server/power/stats/BatteryStatsImpl$TimeBase;)V+]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase; -HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->detach()V +HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->detach()V+]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase; HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->getCountLocked(I)I+]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;megamorphic_types HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->getTimeSinceMarkLocked(J)J+]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer; HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->getTotalTimeLocked(JI)J+]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;megamorphic_types HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->onTimeStarted(JJJ)V -HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->onTimeStopped(JJJ)V +HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->onTimeStopped(JJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer; HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; HPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->reset(ZJ)Z+]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer; HSPLcom/android/server/power/stats/BatteryStatsImpl$Timer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;megamorphic_types]Landroid/os/Parcel;Landroid/os/Parcel; @@ -37385,15 +38303,16 @@ PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fgetmSystemServi HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fgetmUidMeasuredEnergyStats(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)Lcom/android/internal/power/MeasuredEnergyStats; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fgetmWifiRadioApWakeupCount(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmMobileRadioApWakeupCount(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;)V -PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmProportionalSystemServiceUsage(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;D)V +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmProportionalSystemServiceUsage(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;D)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmSystemServiceTimeUs(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;J)V HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmUidMeasuredEnergyStats(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/internal/power/MeasuredEnergyStats;)V HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$fputmWifiRadioApWakeupCount(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$maddChargeToCustomBucketLocked(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;JI)V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$maddChargeToStandardBucketLocked(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;JIJ)V -HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mgetCpuActiveTimeCounter(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter; +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mgetCpuActiveTimeCounter(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;)Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mgetProcStateScreenOffTimeCounter(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;J)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mgetProcStateTimeCounter(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;J)Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter; +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mmarkGnssTimeUs(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;J)J HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->-$$Nest$mmarkProcessForegroundTimeUs(Lcom/android/server/power/stats/BatteryStatsImpl$Uid;JZ)J HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;-><clinit>()V HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;IJJ)V @@ -37447,7 +38366,7 @@ HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCpuFreqTimes([JI)Z+] HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCpuMeasuredBatteryConsumptionUC()J+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCpuMeasuredBatteryConsumptionUC(I)J HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getCustomConsumerMeasuredBatteryConsumptionUC()[J -HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getDeferredJobsCheckinLineLocked(Ljava/lang/StringBuilder;I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter; +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getDeferredJobsCheckinLineLocked(Ljava/lang/StringBuilder;I)V+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter; PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getDeferredJobsLineLocked(Ljava/lang/StringBuilder;I)V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Landroid/os/BatteryStats$Timer;+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Lcom/android/server/power/stats/BatteryStatsImpl$Timer; @@ -37510,7 +38429,7 @@ HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWakelockTimerLocked HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiControllerActivity()Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl; HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiMeasuredBatteryConsumptionUC()J -PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiMeasuredBatteryConsumptionUC(I)J +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiMeasuredBatteryConsumptionUC(I)J HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiMulticastTime(JI)J HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiRadioApWakeupCount(I)J+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter; HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->getWifiRunningTime(JI)J+]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer; @@ -37523,6 +38442,7 @@ HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->hasUserActivity()Z HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->initUserActivityLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->isInBackground()Z HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->makeProcessState(ILandroid/os/Parcel;)V +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->markGnssTimeUs(J)J HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->markProcessForegroundTimeUs(JZ)J+]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->maybeScheduleExternalStatsSync(II)V+]Lcom/android/server/power/stats/BatteryStatsImpl$ExternalStatsSync;Lcom/android/server/power/stats/BatteryExternalStatsWorker; HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteActivityPausedLocked(J)V @@ -37546,6 +38466,7 @@ HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteMobileRadioActiveTi HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteMobileRadioApWakeupLocked()V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteNetworkActivityLocked(IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteResetBluetoothScanLocked(J)V +PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteResetCameraLocked(J)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStartGps(J)V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStartJobLocked(Ljava/lang/String;J)V HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStartSensor(IJ)V @@ -37556,14 +38477,14 @@ HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStopJobLocked(Ljava HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStopSensor(IJ)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStopSyncLocked(Ljava/lang/String;J)V HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteStopWakeLocked(ILjava/lang/String;IJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$1; -HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteUserActivityLocked(I)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteUserActivityLocked(I)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteVibratorOffLocked(J)V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteVibratorOnLocked(JJ)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteVideoTurnedOffLocked(J)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteVideoTurnedOnLocked(J)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiMulticastDisabledLocked(J)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiMulticastEnabledLocked(J)V -PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiRadioApWakeupLocked()V +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiRadioApWakeupLocked()V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiScanStartedLocked(J)V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->noteWifiScanStoppedLocked(J)V HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->nullIfAllZeros(Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;I)[J+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray; @@ -37573,10 +38494,10 @@ HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->readSyncSummaryFromPar HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->readWakeSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->removeIsolatedUid(I)V PLcom/android/server/power/stats/BatteryStatsImpl$Uid;->reportExcessiveCpuLocked(Ljava/lang/String;JJ)V -HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->reset(JJI)Z+]Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$1;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$3;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$2; +HPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->reset(JJI)Z+]Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Wakelock;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$1;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$3;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$2; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->updateOnBatteryBgTimeBase(JJ)Z HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->updateOnBatteryScreenOffBgTimeBase(JJ)Z+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase; -HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->updateUidProcessStateLocked(IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/internal/os/LongArrayMultiStateCounter;Lcom/android/internal/os/LongArrayMultiStateCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter; +HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->updateUidProcessStateLocked(IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/internal/os/LongArrayMultiStateCounter;Lcom/android/internal/os/LongArrayMultiStateCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats; HSPLcom/android/server/power/stats/BatteryStatsImpl$Uid;->writeJobCompletionsToParcelLocked(Landroid/os/Parcel;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/os/Parcel;Landroid/os/Parcel; PLcom/android/server/power/stats/BatteryStatsImpl$UidToRemove;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;IIJ)V PLcom/android/server/power/stats/BatteryStatsImpl$UidToRemove;-><init>(Lcom/android/server/power/stats/BatteryStatsImpl;IJ)V @@ -37612,6 +38533,7 @@ HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$fgetmWifiScanTimer PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mnoteUsbConnectionStateLocked(Lcom/android/server/power/stats/BatteryStatsImpl;ZJJ)V PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mremoveCpuStatsForUidRangeLocked(Lcom/android/server/power/stats/BatteryStatsImpl;II)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mrequestImmediateCpuUpdate(Lcom/android/server/power/stats/BatteryStatsImpl;)V +HSPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$mtrackPerProcStateCpuTimes(Lcom/android/server/power/stats/BatteryStatsImpl;)Z PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$sfgetMAX_WAKELOCKS_PER_UID()I HPLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$sfgetZERO_LONG_COUNTER()Landroid/os/BatteryStats$LongCounter; PLcom/android/server/power/stats/BatteryStatsImpl;->-$$Nest$sfgetZERO_LONG_COUNTER_ARRAY()[Landroid/os/BatteryStats$LongCounter; @@ -37707,9 +38629,9 @@ PLcom/android/server/power/stats/BatteryStatsImpl;->getGpsBatteryStats()Landroid PLcom/android/server/power/stats/BatteryStatsImpl;->getGpsSignalQualityTime(IJI)J HSPLcom/android/server/power/stats/BatteryStatsImpl;->getHighDischargeAmountSinceCharge()I PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryStringPoolBytes()I -HPLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryStringPoolSize()I+]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; -HPLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTagPoolString(I)Ljava/lang/String;+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; -HPLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTagPoolUid(I)I+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; +HPLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryStringPoolSize()I+]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Ljava/util/HashMap;Ljava/util/HashMap; +HPLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTagPoolString(I)Ljava/lang/String;+]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray; +HPLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTagPoolUid(I)I+]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray; PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryTotalSize()I PLcom/android/server/power/stats/BatteryStatsImpl;->getHistoryUsedSize()I PLcom/android/server/power/stats/BatteryStatsImpl;->getInteractiveTime(JI)J @@ -37805,10 +38727,11 @@ HSPLcom/android/server/power/stats/BatteryStatsImpl;->isOnBattery(II)Z HSPLcom/android/server/power/stats/BatteryStatsImpl;->isOnBatteryLocked()Z HSPLcom/android/server/power/stats/BatteryStatsImpl;->isOnBatteryScreenOffLocked()Z PLcom/android/server/power/stats/BatteryStatsImpl;->isProcessStateDataAvailable()Z +HSPLcom/android/server/power/stats/BatteryStatsImpl;->isUsageHistoryEnabled()Z HSPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$new$4()V HPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$readKernelUidCpuActiveTimesLocked$2(JJILjava/lang/Long;)V+]Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/server/am/BatteryStatsService$3;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Long;Ljava/lang/Long; -HPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$readKernelUidCpuClusterTimesLocked$3(JJZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;I[J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;]Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/server/am/BatteryStatsService$3;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray; -HPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$readKernelUidCpuFreqTimesLocked$1(JJZZZIILcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;I[J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/server/am/BatteryStatsService$3;]Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile; +HPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$readKernelUidCpuClusterTimesLocked$3(JJZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;I[J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/server/am/BatteryStatsService$3;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;]Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator; +HPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$readKernelUidCpuFreqTimesLocked$1(JJZZZIILcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;I[J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/server/am/BatteryStatsService$3;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounterArray;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator; HPLcom/android/server/power/stats/BatteryStatsImpl;->lambda$readKernelUidCpuTimesLocked$0(JJIZLandroid/util/SparseLongArray;I[J)V+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$UserInfoProvider;Lcom/android/server/am/BatteryStatsService$3;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl; HSPLcom/android/server/power/stats/BatteryStatsImpl;->mapIsolatedUid(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; PLcom/android/server/power/stats/BatteryStatsImpl;->mapNetworkTypeToRadioAccessTechnology(I)I @@ -37835,7 +38758,7 @@ PLcom/android/server/power/stats/BatteryStatsImpl;->noteCameraOffLocked(IJJ)V PLcom/android/server/power/stats/BatteryStatsImpl;->noteCameraOnLocked(IJJ)V HPLcom/android/server/power/stats/BatteryStatsImpl;->noteChangeWakelockFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/WorkSource;Landroid/os/WorkSource; HPLcom/android/server/power/stats/BatteryStatsImpl;->noteConnectivityChangedLocked(ILjava/lang/String;JJ)V -PLcom/android/server/power/stats/BatteryStatsImpl;->noteCurrentTimeChangedLocked(JJJ)V +HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteCurrentTimeChangedLocked(JJJ)V HPLcom/android/server/power/stats/BatteryStatsImpl;->noteDeviceIdleModeLocked(ILjava/lang/String;IJJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteEventLocked(ILjava/lang/String;IJJ)V PLcom/android/server/power/stats/BatteryStatsImpl;->noteFlashlightOffLocked(IJJ)V @@ -37858,7 +38781,7 @@ PLcom/android/server/power/stats/BatteryStatsImpl;->noteLongPartialWakelockStart PLcom/android/server/power/stats/BatteryStatsImpl;->noteLongPartialWakelockStartFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;JJ)V HPLcom/android/server/power/stats/BatteryStatsImpl;->noteMobileRadioApWakeupLocked(JJI)V HPLcom/android/server/power/stats/BatteryStatsImpl;->noteMobileRadioPowerStateLocked(IJIJJ)Z -HPLcom/android/server/power/stats/BatteryStatsImpl;->noteModemControllerActivity(Landroid/telephony/ModemActivityInfo;JJJLandroid/app/usage/NetworkStatsManager;)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Landroid/net/NetworkStats;Landroid/net/NetworkStats;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;]Lcom/android/server/power/stats/MobileRadioPowerCalculator;Lcom/android/server/power/stats/MobileRadioPowerCalculator;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/internal/os/RailStats;Lcom/android/internal/os/RailStats;]Landroid/telephony/ModemActivityInfo;Landroid/telephony/ModemActivityInfo;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats;]Ljava/util/Iterator;Landroid/net/NetworkStats$1;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; +HPLcom/android/server/power/stats/BatteryStatsImpl;->noteModemControllerActivity(Landroid/telephony/ModemActivityInfo;JJJLandroid/app/usage/NetworkStatsManager;)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Landroid/net/NetworkStats;Landroid/net/NetworkStats;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/internal/os/RailStats;Lcom/android/internal/os/RailStats;]Landroid/telephony/ModemActivityInfo;Landroid/telephony/ModemActivityInfo;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Ljava/util/Iterator;Landroid/net/NetworkStats$1;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Lcom/android/server/power/stats/MobileRadioPowerCalculator;Lcom/android/server/power/stats/MobileRadioPowerCalculator;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats; PLcom/android/server/power/stats/BatteryStatsImpl;->noteNetworkInterfaceForTransports(Ljava/lang/String;[I)V PLcom/android/server/power/stats/BatteryStatsImpl;->notePackageInstalledLocked(Ljava/lang/String;JJJ)V PLcom/android/server/power/stats/BatteryStatsImpl;->notePackageUninstalledLocked(Ljava/lang/String;JJ)V @@ -37877,16 +38800,18 @@ HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteProcessFinishLocked(Lj HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteProcessStartLocked(Ljava/lang/String;IJJ)V PLcom/android/server/power/stats/BatteryStatsImpl;->noteResetAudioLocked(JJ)V PLcom/android/server/power/stats/BatteryStatsImpl;->noteResetBluetoothScanLocked(JJ)V +PLcom/android/server/power/stats/BatteryStatsImpl;->noteResetCameraLocked(JJ)V +PLcom/android/server/power/stats/BatteryStatsImpl;->noteResetFlashlightLocked(JJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteScreenBrightnessLocked(IIJJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteScreenStateLocked(IIJJJ)V PLcom/android/server/power/stats/BatteryStatsImpl;->noteStartGpsLocked(ILandroid/os/WorkSource$WorkChain;JJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteStartSensorLocked(IIJJ)V HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStartWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/WorkSource;Landroid/os/WorkSource;]Landroid/os/WorkSource$WorkChain;Landroid/os/WorkSource$WorkChain; -HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteStartWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IZJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/WorkSource$WorkChain;Landroid/os/WorkSource$WorkChain;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; +HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteStartWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IZJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Landroid/os/WorkSource$WorkChain;Landroid/os/WorkSource$WorkChain; PLcom/android/server/power/stats/BatteryStatsImpl;->noteStopGpsLocked(ILandroid/os/WorkSource$WorkChain;JJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopSensorLocked(IIJJ)V -HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/WorkSource;Landroid/os/WorkSource;]Landroid/os/WorkSource$WorkChain;Landroid/os/WorkSource$WorkChain; -HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Landroid/os/WorkSource$WorkChain;Landroid/os/WorkSource$WorkChain;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; +HPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/WorkSource;Landroid/os/WorkSource;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/WorkSource$WorkChain;Landroid/os/WorkSource$WorkChain; +HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteStopWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Landroid/os/WorkSource$WorkChain;Landroid/os/WorkSource$WorkChain; HPLcom/android/server/power/stats/BatteryStatsImpl;->noteSyncFinishLocked(Ljava/lang/String;IJJ)V HPLcom/android/server/power/stats/BatteryStatsImpl;->noteSyncStartLocked(Ljava/lang/String;IJJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->noteUidProcessStateLocked(IIJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl; @@ -37915,7 +38840,7 @@ PLcom/android/server/power/stats/BatteryStatsImpl;->noteWifiSupplicantStateChang PLcom/android/server/power/stats/BatteryStatsImpl;->onCleanupUserLocked(IJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->onSystemReady()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->postBatteryNeedsCpuUpdateMsg()V -PLcom/android/server/power/stats/BatteryStatsImpl;->prepareForDumpLocked()V +HPLcom/android/server/power/stats/BatteryStatsImpl;->prepareForDumpLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->pullPendingStateUpdatesLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyItemTagDetailsLocked(Landroid/util/TypedXmlPullParser;Landroid/os/BatteryStats$DailyItem;ZLjava/lang/String;)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyItemTagLocked(Landroid/util/TypedXmlPullParser;)V @@ -37923,11 +38848,11 @@ HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyItemsLocked(Landr HSPLcom/android/server/power/stats/BatteryStatsImpl;->readDailyStatsLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuActiveTimesLocked(Z)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuClusterTimesLocked(ZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V -HSPLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuFreqTimesLocked(Ljava/util/ArrayList;ZZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;]Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuFreqTimesLocked(Ljava/util/ArrayList;ZZLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V+]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;Lcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;]Lcom/android/internal/os/KernelCpuUidTimeReader;Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader; HSPLcom/android/server/power/stats/BatteryStatsImpl;->readKernelUidCpuTimesLocked(Ljava/util/ArrayList;Landroid/util/SparseLongArray;Z)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->readLocked()V PLcom/android/server/power/stats/BatteryStatsImpl;->readMobileNetworkStatsLocked(Landroid/app/usage/NetworkStatsManager;)Landroid/net/NetworkStats; -HSPLcom/android/server/power/stats/BatteryStatsImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/BatteryStats$LevelStepTracker;Landroid/os/BatteryStats$LevelStepTracker;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;]Lcom/android/internal/power/MeasuredEnergyStats$Config;Lcom/android/internal/power/MeasuredEnergyStats$Config;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Landroid/os/Parcel;Landroid/os/Parcel;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile; +HSPLcom/android/server/power/stats/BatteryStatsImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/BatteryStats$LevelStepTracker;Landroid/os/BatteryStats$LevelStepTracker;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;]Lcom/android/internal/power/MeasuredEnergyStats$Config;Lcom/android/internal/power/MeasuredEnergyStats$Config;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Landroid/os/Parcel;Landroid/os/Parcel;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/power/stats/BatteryStatsImpl;->readWifiNetworkStatsLocked(Landroid/app/usage/NetworkStatsManager;)Landroid/net/NetworkStats; HSPLcom/android/server/power/stats/BatteryStatsImpl;->recordDailyStatsIfNeededLocked(ZJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->recordDailyStatsLocked()V @@ -37965,7 +38890,7 @@ HSPLcom/android/server/power/stats/BatteryStatsImpl;->systemServicesReady(Landro HSPLcom/android/server/power/stats/BatteryStatsImpl;->trackPerProcStateCpuTimes()Z HPLcom/android/server/power/stats/BatteryStatsImpl;->updateAllPhoneStateLocked(IIIJJ)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateBatteryPropertiesLocked()V -HPLcom/android/server/power/stats/BatteryStatsImpl;->updateBluetoothStateLocked(Landroid/bluetooth/BluetoothActivityEnergyInfo;JJJ)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/bluetooth/BluetoothActivityEnergyInfo;Landroid/bluetooth/BluetoothActivityEnergyInfo;]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Lcom/android/server/power/stats/BluetoothPowerCalculator;Lcom/android/server/power/stats/BluetoothPowerCalculator;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;Lcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Landroid/bluetooth/UidTraffic;Landroid/bluetooth/UidTraffic; +HPLcom/android/server/power/stats/BatteryStatsImpl;->updateBluetoothStateLocked(Landroid/bluetooth/BluetoothActivityEnergyInfo;JJJ)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/bluetooth/UidTraffic;Landroid/bluetooth/UidTraffic;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/bluetooth/BluetoothActivityEnergyInfo;Landroid/bluetooth/BluetoothActivityEnergyInfo;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;Lcom/android/server/power/stats/BatteryStatsImpl$BluetoothActivityInfoCache;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Lcom/android/server/power/stats/BluetoothPowerCalculator;Lcom/android/server/power/stats/BluetoothPowerCalculator;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats; HPLcom/android/server/power/stats/BatteryStatsImpl;->updateCpuMeasuredEnergyStatsLocked([JLcom/android/server/power/stats/BatteryStatsImpl$CpuDeltaPowerAccumulator;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats; HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateCpuTimeLocked(ZZ[J)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateCpuTimesForAllUids()V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/internal/os/LongArrayMultiStateCounter;Lcom/android/internal/os/LongArrayMultiStateCounter;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;]Lcom/android/internal/os/KernelSingleUidTimeReader;Lcom/android/internal/os/KernelSingleUidTimeReader; @@ -37973,24 +38898,25 @@ HPLcom/android/server/power/stats/BatteryStatsImpl;->updateCustomMeasuredEnergyS HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateDailyDeadlineLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateDischargeScreenLevelsLocked(II)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateDisplayMeasuredEnergyStatsLocked([J[IJ)V+]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats; +HPLcom/android/server/power/stats/BatteryStatsImpl;->updateGnssMeasuredEnergyStatsLocked(JJ)V+]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats; HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateKernelMemoryBandwidthLocked(J)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateKernelWakelocksLocked(J)V+]Lcom/android/server/power/stats/KernelWakelockReader;Lcom/android/server/power/stats/KernelWakelockReader;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/util/AbstractMap;Lcom/android/server/power/stats/KernelWakelockStats;]Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;]Ljava/util/Set;Ljava/util/HashMap$EntrySet; HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateNewDischargeScreenLevelLocked(I)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateOldDischargeScreenLevelLocked(I)V -HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateProcStateCpuTimesLocked(IJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/internal/os/LongArrayMultiStateCounter;Lcom/android/internal/os/LongArrayMultiStateCounter;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;]Lcom/android/internal/os/KernelSingleUidTimeReader;Lcom/android/internal/os/KernelSingleUidTimeReader; +HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateProcStateCpuTimesLocked(IJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/internal/os/LongArrayMultiStateCounter;Lcom/android/internal/os/LongArrayMultiStateCounter;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;]Lcom/android/internal/os/KernelSingleUidTimeReader;Lcom/android/internal/os/KernelSingleUidTimeReader; HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateRailStatsLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateRpmStatsLocked(J)V+]Ljava/util/Map$Entry;Landroid/util/MapCollections$MapIterator;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;]Ljava/util/Map;Landroid/util/ArrayMap;]Ljava/util/Iterator;Landroid/util/MapCollections$MapIterator;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet; HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateSystemServerThreadStats()V HPLcom/android/server/power/stats/BatteryStatsImpl;->updateSystemServiceCallStats()V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet; HSPLcom/android/server/power/stats/BatteryStatsImpl;->updateTimeBasesLocked(ZIJJ)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Landroid/util/SparseArray;Landroid/util/SparseArray; -HPLcom/android/server/power/stats/BatteryStatsImpl;->updateWifiState(Landroid/os/connectivity/WifiActivityEnergyInfo;JJJLandroid/app/usage/NetworkStatsManager;)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/net/NetworkStats;Landroid/net/NetworkStats;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Lcom/android/server/power/stats/WifiPowerCalculator;Lcom/android/server/power/stats/WifiPowerCalculator;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/internal/os/RailStats;Lcom/android/internal/os/RailStats;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Landroid/os/connectivity/WifiActivityEnergyInfo;Landroid/os/connectivity/WifiActivityEnergyInfo;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats;]Ljava/util/Iterator;Landroid/net/NetworkStats$1;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; +HPLcom/android/server/power/stats/BatteryStatsImpl;->updateWifiState(Landroid/os/connectivity/WifiActivityEnergyInfo;JJJLandroid/app/usage/NetworkStatsManager;)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/net/NetworkStats;Landroid/net/NetworkStats;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;]Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;]Lcom/android/internal/os/RailStats;Lcom/android/internal/os/RailStats;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Landroid/os/connectivity/WifiActivityEnergyInfo;Landroid/os/connectivity/WifiActivityEnergyInfo;]Ljava/util/Iterator;Landroid/net/NetworkStats$1;]Lcom/android/internal/os/PowerProfile;Lcom/android/internal/os/PowerProfile;]Lcom/android/server/power/stats/WifiPowerCalculator;Lcom/android/server/power/stats/WifiPowerCalculator;]Landroid/util/SparseDoubleArray;Landroid/util/SparseDoubleArray;]Lcom/android/internal/power/MeasuredEnergyStats;Lcom/android/internal/power/MeasuredEnergyStats; HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeAsyncLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeDailyItemsLocked(Landroid/util/TypedXmlSerializer;)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeDailyLevelSteps(Landroid/util/TypedXmlSerializer;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Ljava/lang/StringBuilder;)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeHistoryLocked()V HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeParcelToFileLocked(Landroid/os/Parcel;Landroid/util/AtomicFile;)V HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeStatsLocked()V -HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeSummaryToParcel(Landroid/os/Parcel;Z)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Ljava/lang/Integer;Ljava/lang/Integer;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;]Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Landroid/util/MapCollections$MapIterator;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;,Landroid/util/MapCollections$MapIterator;]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/BatteryStats$LevelStepTracker;Landroid/os/BatteryStats$LevelStepTracker;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet;,Ljava/util/HashMap$EntrySet;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;]Lcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$1;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$3;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$2;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory; +HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeSummaryToParcel(Landroid/os/Parcel;Z)V+]Lcom/android/server/power/stats/BatteryStatsImpl$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;Lcom/android/server/power/stats/BatteryStatsImpl$TimeBase;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Lcom/android/server/power/stats/BatteryStatsImpl$Counter;Lcom/android/server/power/stats/BatteryStatsImpl$Counter;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Pkg$Serv;]Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$RadioAccessTechnologyBatteryStats;]Lcom/android/internal/os/Clock;Lcom/android/internal/os/Clock$1;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryStatsImpl$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$BatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer;,Lcom/android/server/power/stats/BatteryStatsImpl$SamplingTimer;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Landroid/util/MapCollections$MapIterator;]Landroid/os/Parcel;Landroid/os/Parcel;]Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;,Landroid/util/MapCollections$MapIterator;]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/BatteryStats$LevelStepTracker;Landroid/os/BatteryStats$LevelStepTracker;]Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl$DisplayBatteryStats;]Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Proc;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;]Ljava/util/Set;Landroid/util/MapCollections$EntrySet;,Ljava/util/HashMap$EntrySet;]Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeInFreqMultiStateCounter;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer;]Lcom/android/server/power/stats/BatteryStatsImpl$OverflowArrayMap;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$1;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$3;,Lcom/android/server/power/stats/BatteryStatsImpl$Uid$2;]Ljava/lang/Integer;Ljava/lang/Integer; HSPLcom/android/server/power/stats/BatteryStatsImpl;->writeSyncLocked()V HSPLcom/android/server/power/stats/BatteryUsageStatsProvider;-><init>(Landroid/content/Context;Landroid/os/BatteryStats;)V HSPLcom/android/server/power/stats/BatteryUsageStatsProvider;-><init>(Landroid/content/Context;Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryUsageStatsStore;)V @@ -38000,7 +38926,7 @@ HPLcom/android/server/power/stats/BatteryUsageStatsProvider;->getAggregatedBatte PLcom/android/server/power/stats/BatteryUsageStatsProvider;->getBatteryUsageStats(Landroid/os/BatteryUsageStatsQuery;)Landroid/os/BatteryUsageStats; PLcom/android/server/power/stats/BatteryUsageStatsProvider;->getBatteryUsageStats(Landroid/os/BatteryUsageStatsQuery;J)Landroid/os/BatteryUsageStats; HPLcom/android/server/power/stats/BatteryUsageStatsProvider;->getBatteryUsageStats(Ljava/util/List;)Ljava/util/List; -HPLcom/android/server/power/stats/BatteryUsageStatsProvider;->getCurrentBatteryUsageStats(Landroid/os/BatteryUsageStatsQuery;J)Landroid/os/BatteryUsageStats;+]Ljava/io/File;Ljava/io/File;]Lcom/android/server/power/stats/PowerCalculator;megamorphic_types]Landroid/os/BatteryUsageStatsQuery;Landroid/os/BatteryUsageStatsQuery;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Lcom/android/server/power/stats/BatteryUsageStatsProvider;Lcom/android/server/power/stats/BatteryUsageStatsProvider;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl; +HPLcom/android/server/power/stats/BatteryUsageStatsProvider;->getCurrentBatteryUsageStats(Landroid/os/BatteryUsageStatsQuery;J)Landroid/os/BatteryUsageStats;+]Lcom/android/server/power/stats/PowerCalculator;megamorphic_types]Landroid/os/BatteryUsageStatsQuery;Landroid/os/BatteryUsageStatsQuery;]Lcom/android/server/power/stats/BatteryStatsImpl;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Lcom/android/server/power/stats/BatteryUsageStatsProvider;Lcom/android/server/power/stats/BatteryUsageStatsProvider;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Ljava/io/File;Ljava/io/File;]Lcom/android/internal/os/BatteryStatsHistory;Lcom/android/internal/os/BatteryStatsHistory;]Landroid/os/Parcel;Landroid/os/Parcel; HPLcom/android/server/power/stats/BatteryUsageStatsProvider;->getPowerCalculators()Ljava/util/List; HPLcom/android/server/power/stats/BatteryUsageStatsProvider;->getProcessBackgroundTimeMs(Landroid/os/BatteryStats$Uid;J)J HPLcom/android/server/power/stats/BatteryUsageStatsProvider;->getProcessForegroundTimeMs(Landroid/os/BatteryStats$Uid;J)J+]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/BatteryStats$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$StopwatchTimer; @@ -38036,7 +38962,7 @@ HSPLcom/android/server/power/stats/BluetoothPowerCalculator;-><clinit>()V HSPLcom/android/server/power/stats/BluetoothPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V HPLcom/android/server/power/stats/BluetoothPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryStats;JJLandroid/os/BatteryUsageStatsQuery;)V+]Landroid/os/BatteryUsageStatsQuery;Landroid/os/BatteryUsageStatsQuery;]Landroid/os/AggregateBatteryConsumer$Builder;Landroid/os/AggregateBatteryConsumer$Builder;]Lcom/android/server/power/stats/BluetoothPowerCalculator;Lcom/android/server/power/stats/BluetoothPowerCalculator;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/AggregateBatteryConsumer$Builder;,Landroid/os/UidBatteryConsumer$Builder; HPLcom/android/server/power/stats/BluetoothPowerCalculator;->calculateApp(Landroid/os/UidBatteryConsumer$Builder;Lcom/android/server/power/stats/BluetoothPowerCalculator$PowerAndDuration;Landroid/os/BatteryUsageStatsQuery;)V+]Landroid/os/BatteryUsageStatsQuery;Landroid/os/BatteryUsageStatsQuery;]Lcom/android/server/power/stats/BluetoothPowerCalculator;Lcom/android/server/power/stats/BluetoothPowerCalculator;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/UidBatteryConsumer$Builder; -HPLcom/android/server/power/stats/BluetoothPowerCalculator;->calculatePowerAndDuration(Landroid/os/BatteryStats$Uid;IJLandroid/os/BatteryStats$ControllerActivityCounter;ZLcom/android/server/power/stats/BluetoothPowerCalculator$PowerAndDuration;)V+]Landroid/os/BatteryStats$LongCounter;Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;,Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;,Lcom/android/server/power/stats/BatteryStatsImpl$1;]Lcom/android/server/power/stats/BluetoothPowerCalculator;Lcom/android/server/power/stats/BluetoothPowerCalculator;]Landroid/os/BatteryStats$ControllerActivityCounter;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl; +HPLcom/android/server/power/stats/BluetoothPowerCalculator;->calculatePowerAndDuration(Landroid/os/BatteryStats$Uid;IJLandroid/os/BatteryStats$ControllerActivityCounter;ZLcom/android/server/power/stats/BluetoothPowerCalculator$PowerAndDuration;)V+]Landroid/os/BatteryStats$LongCounter;Lcom/android/server/power/stats/BatteryStatsImpl$LongSamplingCounter;,Lcom/android/server/power/stats/BatteryStatsImpl$1;,Lcom/android/server/power/stats/BatteryStatsImpl$TimeMultiStateCounter;]Lcom/android/server/power/stats/BluetoothPowerCalculator;Lcom/android/server/power/stats/BluetoothPowerCalculator;]Landroid/os/BatteryStats$ControllerActivityCounter;Lcom/android/server/power/stats/BatteryStatsImpl$ControllerActivityCounterImpl;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; HPLcom/android/server/power/stats/BluetoothPowerCalculator;->calculatePowerMah(JJJ)D PLcom/android/server/power/stats/CameraPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V HPLcom/android/server/power/stats/CameraPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryStats;JJLandroid/os/BatteryUsageStatsQuery;)V @@ -38056,7 +38982,7 @@ HPLcom/android/server/power/stats/CpuPowerCalculator;->calculatePowerAndDuration HPLcom/android/server/power/stats/CpuPowerCalculator;->calculateUidModeledPowerMah(Landroid/os/BatteryStats$Uid;I)D HPLcom/android/server/power/stats/CpuPowerCalculator;->calculateUidModeledPowerMah(Landroid/os/BatteryStats$Uid;J[J[J)D+]Lcom/android/server/power/stats/CpuPowerCalculator;Lcom/android/server/power/stats/CpuPowerCalculator;]Lcom/android/server/power/stats/UsageBasedPowerEstimator;Lcom/android/server/power/stats/UsageBasedPowerEstimator; PLcom/android/server/power/stats/CustomMeasuredPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V -HPLcom/android/server/power/stats/CustomMeasuredPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryStats;JJLandroid/os/BatteryUsageStatsQuery;)V+]Landroid/os/AggregateBatteryConsumer$Builder;Landroid/os/AggregateBatteryConsumer$Builder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Lcom/android/server/power/stats/CustomMeasuredPowerCalculator;Lcom/android/server/power/stats/CustomMeasuredPowerCalculator;]Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/AggregateBatteryConsumer$Builder; +HPLcom/android/server/power/stats/CustomMeasuredPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryStats;JJLandroid/os/BatteryUsageStatsQuery;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Lcom/android/server/power/stats/CustomMeasuredPowerCalculator;Lcom/android/server/power/stats/CustomMeasuredPowerCalculator;]Landroid/os/BatteryStats;Lcom/android/server/power/stats/BatteryStatsImpl;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/AggregateBatteryConsumer$Builder;Landroid/os/AggregateBatteryConsumer$Builder;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/AggregateBatteryConsumer$Builder; HPLcom/android/server/power/stats/CustomMeasuredPowerCalculator;->calculateApp(Landroid/os/UidBatteryConsumer$Builder;Landroid/os/BatteryStats$Uid;[D)[D+]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Lcom/android/server/power/stats/CustomMeasuredPowerCalculator;Lcom/android/server/power/stats/CustomMeasuredPowerCalculator;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/UidBatteryConsumer$Builder; HPLcom/android/server/power/stats/CustomMeasuredPowerCalculator;->calculateMeasuredEnergiesMah([J)[D PLcom/android/server/power/stats/FlashlightPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V @@ -38125,10 +39051,10 @@ PLcom/android/server/power/stats/ScreenPowerCalculator;->calculateTotalDurationA HPLcom/android/server/power/stats/ScreenPowerCalculator;->calculateTotalPowerFromBrightness(Landroid/os/BatteryStats;J)D HPLcom/android/server/power/stats/ScreenPowerCalculator;->getForegroundActivityTotalTimeUs(Landroid/os/BatteryStats$Uid;J)J HPLcom/android/server/power/stats/ScreenPowerCalculator;->getProcessForegroundTimeMs(Landroid/os/BatteryStats$Uid;J)J+]Lcom/android/server/power/stats/ScreenPowerCalculator;Lcom/android/server/power/stats/ScreenPowerCalculator;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid; -HPLcom/android/server/power/stats/ScreenPowerCalculator;->smearScreenBatteryDrain(Landroid/util/SparseArray;Lcom/android/server/power/stats/ScreenPowerCalculator$PowerAndDuration;J)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/power/stats/ScreenPowerCalculator;Lcom/android/server/power/stats/ScreenPowerCalculator;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder; +HPLcom/android/server/power/stats/ScreenPowerCalculator;->smearScreenBatteryDrain(Landroid/util/SparseArray;Lcom/android/server/power/stats/ScreenPowerCalculator$PowerAndDuration;J)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Lcom/android/server/power/stats/ScreenPowerCalculator;Lcom/android/server/power/stats/ScreenPowerCalculator;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/UidBatteryConsumer$Builder; HPLcom/android/server/power/stats/SensorPowerCalculator;-><init>(Landroid/hardware/SensorManager;)V HPLcom/android/server/power/stats/SensorPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryStats;JJLandroid/os/BatteryUsageStatsQuery;)V+]Landroid/os/AggregateBatteryConsumer$Builder;Landroid/os/AggregateBatteryConsumer$Builder;]Lcom/android/server/power/stats/SensorPowerCalculator;Lcom/android/server/power/stats/SensorPowerCalculator;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/AggregateBatteryConsumer$Builder; -HPLcom/android/server/power/stats/SensorPowerCalculator;->calculateApp(Landroid/os/UidBatteryConsumer$Builder;Landroid/os/BatteryStats$Uid;J)D+]Lcom/android/server/power/stats/SensorPowerCalculator;Lcom/android/server/power/stats/SensorPowerCalculator;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder; +HPLcom/android/server/power/stats/SensorPowerCalculator;->calculateApp(Landroid/os/UidBatteryConsumer$Builder;Landroid/os/BatteryStats$Uid;J)D+]Lcom/android/server/power/stats/SensorPowerCalculator;Lcom/android/server/power/stats/SensorPowerCalculator;]Landroid/os/BatteryConsumer$BaseBuilder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder; HPLcom/android/server/power/stats/SensorPowerCalculator;->calculateDuration(Landroid/os/BatteryStats$Uid;JI)J+]Landroid/os/BatteryStats$Uid$Sensor;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/BatteryStats$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer; HPLcom/android/server/power/stats/SensorPowerCalculator;->calculatePowerMah(Landroid/os/BatteryStats$Uid;JI)D+]Landroid/hardware/Sensor;Landroid/hardware/Sensor;]Landroid/os/BatteryStats$Uid$Sensor;Lcom/android/server/power/stats/BatteryStatsImpl$Uid$Sensor;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/BatteryStats$Uid;Lcom/android/server/power/stats/BatteryStatsImpl$Uid;]Landroid/os/BatteryStats$Timer;Lcom/android/server/power/stats/BatteryStatsImpl$DualTimer; HSPLcom/android/server/power/stats/SystemServerCpuThreadReader$SystemServiceCpuThreadTimes;-><init>()V @@ -38147,7 +39073,7 @@ HPLcom/android/server/power/stats/UsageBasedPowerEstimator;->calculateDuration(L HPLcom/android/server/power/stats/UsageBasedPowerEstimator;->calculatePower(J)D HSPLcom/android/server/power/stats/UsageBasedPowerEstimator;->isSupported()Z PLcom/android/server/power/stats/UserPowerCalculator;-><init>()V -HPLcom/android/server/power/stats/UserPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryStats;JJLandroid/os/BatteryUsageStatsQuery;)V+]Landroid/os/BatteryUsageStatsQuery;Landroid/os/BatteryUsageStatsQuery;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder;]Landroid/os/UserBatteryConsumer$Builder;Landroid/os/UserBatteryConsumer$Builder; +HPLcom/android/server/power/stats/UserPowerCalculator;->calculate(Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryStats;JJLandroid/os/BatteryUsageStatsQuery;)V+]Landroid/os/BatteryUsageStatsQuery;Landroid/os/BatteryUsageStatsQuery;]Landroid/os/BatteryUsageStats$Builder;Landroid/os/BatteryUsageStats$Builder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/UserBatteryConsumer$Builder;Landroid/os/UserBatteryConsumer$Builder;]Landroid/os/UidBatteryConsumer$Builder;Landroid/os/UidBatteryConsumer$Builder; PLcom/android/server/power/stats/VideoPowerCalculator$PowerAndDuration;-><init>()V PLcom/android/server/power/stats/VideoPowerCalculator$PowerAndDuration;-><init>(Lcom/android/server/power/stats/VideoPowerCalculator$PowerAndDuration-IA;)V PLcom/android/server/power/stats/VideoPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V @@ -38240,7 +39166,7 @@ HSPLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSynthe HPLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/powerstats/PowerStatsService;)V PLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V HPLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/powerstats/PowerStatsService;)V -PLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/powerstats/PowerStatsService$LocalService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/server/powerstats/PowerStatsService$LocalService;->$r8$lambda$2yX43EuSJtF0TBRtN1lN8cdONNQ(Lcom/android/server/powerstats/PowerStatsService;Ljava/util/concurrent/CompletableFuture;[I)V PLcom/android/server/powerstats/PowerStatsService$LocalService;->$r8$lambda$_FSMfoY1miikQ7k_ORbfYimdtHo(Lcom/android/server/powerstats/PowerStatsService;Ljava/util/concurrent/CompletableFuture;[I)V PLcom/android/server/powerstats/PowerStatsService$LocalService;->$r8$lambda$rF6cfAPApgKX-PGr_vXKYEXlwGc(Lcom/android/server/powerstats/PowerStatsService;Ljava/util/concurrent/CompletableFuture;[I)V @@ -38294,7 +39220,7 @@ HSPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;-><init>(Landroid/co HSPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->initPullOnDevicePowerMeasurement()Z HSPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->initSubsystemSleepState()Z HPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->onPullAtom(ILjava/util/List;)I -HPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->pullOnDevicePowerMeasurement(ILjava/util/List;)I +HPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->pullOnDevicePowerMeasurement(ILjava/util/List;)I+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;]Landroid/power/PowerStatsInternal;Lcom/android/server/powerstats/PowerStatsService$LocalService;]Ljava/util/Map;Ljava/util/HashMap; HPLcom/android/server/powerstats/StatsPullAtomCallbackImpl;->pullSubsystemSleepState(ILjava/util/List;)I+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;]Landroid/power/PowerStatsInternal;Lcom/android/server/powerstats/PowerStatsService$LocalService;]Ljava/util/Map;Ljava/util/HashMap; PLcom/android/server/powerstats/TimerTrigger$1;-><init>(Lcom/android/server/powerstats/TimerTrigger;)V PLcom/android/server/powerstats/TimerTrigger$1;->run()V @@ -38361,6 +39287,8 @@ PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda11;-><init PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda13;-><init>()V PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V +PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda1;-><init>()V +PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda4;-><init>()V PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V PLcom/android/server/print/RemotePrintService$$ExternalSyntheticLambda6;-><init>()V @@ -38708,36 +39636,36 @@ PLcom/android/server/rollback/AppDataRollbackHelper;->commitPendingBackupAndRest PLcom/android/server/rollback/Rollback;-><init>(ILjava/io/File;IZILjava/lang/String;[ILandroid/util/SparseIntArray;)V HSPLcom/android/server/rollback/Rollback;-><init>(Landroid/content/rollback/RollbackInfo;Ljava/io/File;Ljava/time/Instant;IILjava/lang/String;ZILjava/lang/String;Landroid/util/SparseIntArray;)V PLcom/android/server/rollback/Rollback;->allPackagesEnabled()Z -PLcom/android/server/rollback/Rollback;->assertInWorkerThread()V +HSPLcom/android/server/rollback/Rollback;->assertInWorkerThread()V PLcom/android/server/rollback/Rollback;->commitPendingBackupAndRestoreForUser(ILcom/android/server/rollback/AppDataRollbackHelper;)V PLcom/android/server/rollback/Rollback;->containsSessionId(I)Z PLcom/android/server/rollback/Rollback;->delete(Lcom/android/server/rollback/AppDataRollbackHelper;Ljava/lang/String;)V HPLcom/android/server/rollback/Rollback;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V PLcom/android/server/rollback/Rollback;->enableForPackage(Ljava/lang/String;JJZLjava/lang/String;[Ljava/lang/String;I)Z -PLcom/android/server/rollback/Rollback;->getBackupDir()Ljava/io/File; -PLcom/android/server/rollback/Rollback;->getExtensionVersions()Landroid/util/SparseIntArray; -PLcom/android/server/rollback/Rollback;->getInstallerPackageName()Ljava/lang/String; -PLcom/android/server/rollback/Rollback;->getOriginalSessionId()I +HSPLcom/android/server/rollback/Rollback;->getBackupDir()Ljava/io/File; +HSPLcom/android/server/rollback/Rollback;->getExtensionVersions()Landroid/util/SparseIntArray; +HSPLcom/android/server/rollback/Rollback;->getInstallerPackageName()Ljava/lang/String; +HSPLcom/android/server/rollback/Rollback;->getOriginalSessionId()I PLcom/android/server/rollback/Rollback;->getPackageNames()Ljava/util/List; -PLcom/android/server/rollback/Rollback;->getStateAsString()Ljava/lang/String; -PLcom/android/server/rollback/Rollback;->getStateDescription()Ljava/lang/String; -PLcom/android/server/rollback/Rollback;->getTimestamp()Ljava/time/Instant; -PLcom/android/server/rollback/Rollback;->getUserId()I +HSPLcom/android/server/rollback/Rollback;->getStateAsString()Ljava/lang/String; +HSPLcom/android/server/rollback/Rollback;->getStateDescription()Ljava/lang/String; +HSPLcom/android/server/rollback/Rollback;->getTimestamp()Ljava/time/Instant; +HSPLcom/android/server/rollback/Rollback;->getUserId()I PLcom/android/server/rollback/Rollback;->includesPackage(Ljava/lang/String;)Z PLcom/android/server/rollback/Rollback;->includesPackageWithDifferentVersion(Ljava/lang/String;J)Z PLcom/android/server/rollback/Rollback;->isAvailable()Z PLcom/android/server/rollback/Rollback;->isCommitted()Z PLcom/android/server/rollback/Rollback;->isDeleted()Z PLcom/android/server/rollback/Rollback;->isEnabling()Z -PLcom/android/server/rollback/Rollback;->isRestoreUserDataInProgress()Z +HSPLcom/android/server/rollback/Rollback;->isRestoreUserDataInProgress()Z PLcom/android/server/rollback/Rollback;->isStaged()Z PLcom/android/server/rollback/Rollback;->makeAvailable()V PLcom/android/server/rollback/Rollback;->restoreUserDataForPackageIfInProgress(Ljava/lang/String;[IILjava/lang/String;Lcom/android/server/rollback/AppDataRollbackHelper;)Z HSPLcom/android/server/rollback/Rollback;->rollbackStateFromString(Ljava/lang/String;)I -PLcom/android/server/rollback/Rollback;->rollbackStateToString(I)Ljava/lang/String; +HSPLcom/android/server/rollback/Rollback;->rollbackStateToString(I)Ljava/lang/String; PLcom/android/server/rollback/Rollback;->saveRollback()V PLcom/android/server/rollback/Rollback;->setState(ILjava/lang/String;)V -PLcom/android/server/rollback/Rollback;->setTimestamp(Ljava/time/Instant;)V +HSPLcom/android/server/rollback/Rollback;->setTimestamp(Ljava/time/Instant;)V PLcom/android/server/rollback/Rollback;->snapshotUserData(Ljava/lang/String;[ILcom/android/server/rollback/AppDataRollbackHelper;)V HSPLcom/android/server/rollback/RollbackManagerService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/rollback/RollbackManagerService;->onBootPhase(I)V @@ -38770,7 +39698,7 @@ HSPLcom/android/server/rollback/RollbackManagerServiceImpl$3;-><init>(Lcom/andro HSPLcom/android/server/rollback/RollbackManagerServiceImpl$4;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V PLcom/android/server/rollback/RollbackManagerServiceImpl$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/rollback/RollbackManagerServiceImpl$5;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V -PLcom/android/server/rollback/RollbackManagerServiceImpl$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +HSPLcom/android/server/rollback/RollbackManagerServiceImpl$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V HSPLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;Lcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback-IA;)V PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;->onActiveChanged(IZ)V @@ -38785,10 +39713,10 @@ PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$Jeae9NigXk PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$Wh15N1uwUCncxSnHZ8ox_FHtj1o(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$elOKSo51xVdLI7HawJttdwZbCic(Lcom/android/server/rollback/RollbackManagerServiceImpl;Lcom/android/internal/util/IndentingPrintWriter;)V PLcom/android/server/rollback/RollbackManagerServiceImpl;->$r8$lambda$ryoBCg7xtdc_e4Iqs0ymaDPImVY(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;[IILjava/lang/String;I)V -PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fgetmRelativeBootTime(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J -PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fgetmRollbacks(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List; -PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fputmRelativeBootTime(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)V -PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$massertInWorkerThread(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V +HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fgetmRelativeBootTime(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J +HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fgetmRollbacks(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List; +HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$fputmRelativeBootTime(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)V +HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$massertInWorkerThread(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$mcompleteEnableRollback(Lcom/android/server/rollback/RollbackManagerServiceImpl;Lcom/android/server/rollback/Rollback;)Z PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$menableRollback(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)Z PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$mgetHandler(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Landroid/os/Handler; @@ -38798,11 +39726,11 @@ PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$monPackageFul PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$monPackageReplaced(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;)V PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$mqueueSleepIfNeeded(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$sfgetLOCAL_LOGV()Z -PLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$smcalculateRelativeBootTime()J +HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->-$$Nest$smcalculateRelativeBootTime()J HSPLcom/android/server/rollback/RollbackManagerServiceImpl;-><clinit>()V HSPLcom/android/server/rollback/RollbackManagerServiceImpl;-><init>(Landroid/content/Context;)V PLcom/android/server/rollback/RollbackManagerServiceImpl;->allocateRollbackId()I -PLcom/android/server/rollback/RollbackManagerServiceImpl;->assertInWorkerThread()V +HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->assertInWorkerThread()V PLcom/android/server/rollback/RollbackManagerServiceImpl;->assertNotInWorkerThread()V PLcom/android/server/rollback/RollbackManagerServiceImpl;->awaitResult(Ljava/lang/Runnable;)V PLcom/android/server/rollback/RollbackManagerServiceImpl;->awaitResult(Ljava/util/function/Supplier;)Ljava/lang/Object; @@ -38870,13 +39798,13 @@ PLcom/android/server/rollback/RollbackPackageHealthObserver;->startObservingHeal HSPLcom/android/server/rollback/RollbackPackageHealthObserver;->writeBoolean(Ljava/io/File;Z)V HSPLcom/android/server/rollback/RollbackStore;-><init>(Ljava/io/File;Ljava/io/File;)V PLcom/android/server/rollback/RollbackStore;->backupPackageCodePath(Lcom/android/server/rollback/Rollback;Ljava/lang/String;Ljava/lang/String;)V -PLcom/android/server/rollback/RollbackStore;->convertToJsonArray(Ljava/util/List;)Lorg/json/JSONArray; +HSPLcom/android/server/rollback/RollbackStore;->convertToJsonArray(Ljava/util/List;)Lorg/json/JSONArray; HSPLcom/android/server/rollback/RollbackStore;->convertToRestoreInfoArray(Lorg/json/JSONArray;)Ljava/util/ArrayList; PLcom/android/server/rollback/RollbackStore;->createNonStagedRollback(IIILjava/lang/String;[ILandroid/util/SparseIntArray;)Lcom/android/server/rollback/Rollback; PLcom/android/server/rollback/RollbackStore;->deleteRollback(Lcom/android/server/rollback/Rollback;)V HSPLcom/android/server/rollback/RollbackStore;->extensionVersionsFromJson(Lorg/json/JSONArray;)Landroid/util/SparseIntArray; -PLcom/android/server/rollback/RollbackStore;->extensionVersionsToJson(Landroid/util/SparseIntArray;)Lorg/json/JSONArray; -PLcom/android/server/rollback/RollbackStore;->fromIntList(Ljava/util/List;)Lorg/json/JSONArray; +HSPLcom/android/server/rollback/RollbackStore;->extensionVersionsToJson(Landroid/util/SparseIntArray;)Lorg/json/JSONArray; +HSPLcom/android/server/rollback/RollbackStore;->fromIntList(Ljava/util/List;)Lorg/json/JSONArray; PLcom/android/server/rollback/RollbackStore;->isLinkPossible(Ljava/io/File;Ljava/io/File;)Z PLcom/android/server/rollback/RollbackStore;->loadHistorialRollbacks()Ljava/util/List; HSPLcom/android/server/rollback/RollbackStore;->loadRollback(Ljava/io/File;)Lcom/android/server/rollback/Rollback; @@ -38887,17 +39815,17 @@ HSPLcom/android/server/rollback/RollbackStore;->packageRollbackInfosFromJson(Lor PLcom/android/server/rollback/RollbackStore;->removeFile(Ljava/io/File;)V HSPLcom/android/server/rollback/RollbackStore;->rollbackFromJson(Lorg/json/JSONObject;Ljava/io/File;)Lcom/android/server/rollback/Rollback; HSPLcom/android/server/rollback/RollbackStore;->rollbackInfoFromJson(Lorg/json/JSONObject;)Landroid/content/rollback/RollbackInfo; -PLcom/android/server/rollback/RollbackStore;->rollbackInfoToJson(Landroid/content/rollback/RollbackInfo;)Lorg/json/JSONObject; -PLcom/android/server/rollback/RollbackStore;->saveRollback(Lcom/android/server/rollback/Rollback;)V -PLcom/android/server/rollback/RollbackStore;->saveRollback(Lcom/android/server/rollback/Rollback;Ljava/io/File;)V +HSPLcom/android/server/rollback/RollbackStore;->rollbackInfoToJson(Landroid/content/rollback/RollbackInfo;)Lorg/json/JSONObject; +HSPLcom/android/server/rollback/RollbackStore;->saveRollback(Lcom/android/server/rollback/Rollback;)V +HSPLcom/android/server/rollback/RollbackStore;->saveRollback(Lcom/android/server/rollback/Rollback;Ljava/io/File;)V PLcom/android/server/rollback/RollbackStore;->saveRollbackToHistory(Lcom/android/server/rollback/Rollback;)V HSPLcom/android/server/rollback/RollbackStore;->toIntList(Lorg/json/JSONArray;)Ljava/util/List; -PLcom/android/server/rollback/RollbackStore;->toJson(Landroid/content/pm/VersionedPackage;)Lorg/json/JSONObject; -PLcom/android/server/rollback/RollbackStore;->toJson(Landroid/content/rollback/PackageRollbackInfo;)Lorg/json/JSONObject; -PLcom/android/server/rollback/RollbackStore;->toJson(Ljava/util/List;)Lorg/json/JSONArray; +HSPLcom/android/server/rollback/RollbackStore;->toJson(Landroid/content/pm/VersionedPackage;)Lorg/json/JSONObject; +HSPLcom/android/server/rollback/RollbackStore;->toJson(Landroid/content/rollback/PackageRollbackInfo;)Lorg/json/JSONObject; +HSPLcom/android/server/rollback/RollbackStore;->toJson(Ljava/util/List;)Lorg/json/JSONArray; HSPLcom/android/server/rollback/RollbackStore;->versionedPackageFromJson(Lorg/json/JSONObject;)Landroid/content/pm/VersionedPackage; HSPLcom/android/server/rollback/RollbackStore;->versionedPackagesFromJson(Lorg/json/JSONArray;)Ljava/util/List; -PLcom/android/server/rollback/RollbackStore;->versionedPackagesToJson(Ljava/util/List;)Lorg/json/JSONArray; +HSPLcom/android/server/rollback/RollbackStore;->versionedPackagesToJson(Ljava/util/List;)Lorg/json/JSONArray; PLcom/android/server/rotationresolver/RemoteRotationResolverService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/rotationresolver/RemoteRotationResolverService$RotationRequest;Landroid/service/rotationresolver/RotationResolutionRequest;)V PLcom/android/server/rotationresolver/RemoteRotationResolverService$$ExternalSyntheticLambda0;->runNoResult(Ljava/lang/Object;)V PLcom/android/server/rotationresolver/RemoteRotationResolverService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/rotationresolver/RemoteRotationResolverService$RotationRequest;)V @@ -39188,7 +40116,9 @@ HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;- HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->addListener(Landroid/hardware/ISensorPrivacyListener;)V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->addToggleListener(Landroid/hardware/ISensorPrivacyListener;)V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->handleSensorPrivacyChanged(IIIZ)V +PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->removeDeathRecipient(Landroid/hardware/ISensorPrivacyListener;)V PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->removeListener(Landroid/hardware/ISensorPrivacyListener;)V +PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyHandler;->removeToggleListener(Landroid/hardware/ISensorPrivacyListener;)V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl$$ExternalSyntheticLambda0;-><init>(Landroid/hardware/SensorPrivacyManagerInternal$OnUserSensorPrivacyChangedListener;IZ)V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl$$ExternalSyntheticLambda0;->run()V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyManagerInternalImpl;->$r8$lambda$2Vm8p4xms3zjA4SqcmVUqguYGDU(Landroid/hardware/SensorPrivacyManagerInternal$OnUserSensorPrivacyChangedListener;IZ)V @@ -39229,8 +40159,10 @@ HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceIm HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->lambda$userSwitching$5([ZI[Z[ZI[Z)V PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->onOpNoted(IILjava/lang/String;Ljava/lang/String;II)V PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->onOpStarted(IILjava/lang/String;Ljava/lang/String;II)V +PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->onSensorUseStarted(ILjava/lang/String;I)V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->removeSensorPrivacyListener(Landroid/hardware/ISensorPrivacyListener;)V +PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->removeToggleSensorPrivacyListener(Landroid/hardware/ISensorPrivacyListener;)V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->setGlobalRestriction(IZ)V PLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->showSensorUseDialog(I)V HSPLcom/android/server/sensorprivacy/SensorPrivacyService$SensorPrivacyServiceImpl;->supportsSensorToggle(II)Z @@ -39383,14 +40315,14 @@ PLcom/android/server/slice/PinnedSliceState$$ExternalSyntheticLambda4;->test(Lja PLcom/android/server/slice/PinnedSliceState$$ExternalSyntheticLambda5;-><init>()V PLcom/android/server/slice/PinnedSliceState$$ExternalSyntheticLambda5;->apply(I)Ljava/lang/Object; PLcom/android/server/slice/PinnedSliceState$ListenerInfo;->-$$Nest$fgettoken(Lcom/android/server/slice/PinnedSliceState$ListenerInfo;)Landroid/os/IBinder; -PLcom/android/server/slice/PinnedSliceState$ListenerInfo;-><init>(Lcom/android/server/slice/PinnedSliceState;Landroid/os/IBinder;Ljava/lang/String;ZII)V +HPLcom/android/server/slice/PinnedSliceState$ListenerInfo;-><init>(Lcom/android/server/slice/PinnedSliceState;Landroid/os/IBinder;Ljava/lang/String;ZII)V PLcom/android/server/slice/PinnedSliceState;->$r8$lambda$8PpN4rPvmAFHBo8-AMOxIfBPgPw(I)[Landroid/app/slice/SliceSpec; PLcom/android/server/slice/PinnedSliceState;->$r8$lambda$ERd_d_JS6RbheGBSXebEeuMrqiQ(Lcom/android/server/slice/PinnedSliceState;[Landroid/app/slice/SliceSpec;Landroid/app/slice/SliceSpec;)Landroid/app/slice/SliceSpec; PLcom/android/server/slice/PinnedSliceState;->$r8$lambda$GPHzsVzQrFovXYdDpqangr_EisQ(Lcom/android/server/slice/PinnedSliceState;)V PLcom/android/server/slice/PinnedSliceState;->$r8$lambda$MPBILTkBeFQUvCUH0InA99pZsdg(Landroid/app/slice/SliceSpec;)Z PLcom/android/server/slice/PinnedSliceState;->$r8$lambda$MwobWwKdlIfDl3rSs94MZQb8xJI(Lcom/android/server/slice/PinnedSliceState;)V PLcom/android/server/slice/PinnedSliceState;->$r8$lambda$SQzZQ-4v_riZaVmzcSSOK1h8Fsw(Lcom/android/server/slice/PinnedSliceState;)V -PLcom/android/server/slice/PinnedSliceState;-><init>(Lcom/android/server/slice/SliceManagerService;Landroid/net/Uri;Ljava/lang/String;)V +HPLcom/android/server/slice/PinnedSliceState;-><init>(Lcom/android/server/slice/SliceManagerService;Landroid/net/Uri;Ljava/lang/String;)V PLcom/android/server/slice/PinnedSliceState;->checkSelfRemove()V PLcom/android/server/slice/PinnedSliceState;->destroy()V PLcom/android/server/slice/PinnedSliceState;->findSpec([Landroid/app/slice/SliceSpec;Ljava/lang/String;)Landroid/app/slice/SliceSpec; @@ -39440,6 +40372,8 @@ PLcom/android/server/slice/SliceManagerService$$ExternalSyntheticLambda1;-><init PLcom/android/server/slice/SliceManagerService$$ExternalSyntheticLambda1;->run()V PLcom/android/server/slice/SliceManagerService$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/slice/SliceManagerService;I)V HPLcom/android/server/slice/SliceManagerService$$ExternalSyntheticLambda2;->get()Ljava/lang/Object; +PLcom/android/server/slice/SliceManagerService$$ExternalSyntheticLambda3;-><init>(I)V +PLcom/android/server/slice/SliceManagerService$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z HSPLcom/android/server/slice/SliceManagerService$1;-><init>(Lcom/android/server/slice/SliceManagerService;)V PLcom/android/server/slice/SliceManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/slice/SliceManagerService$Lifecycle;-><init>(Landroid/content/Context;)V @@ -39540,7 +40474,7 @@ PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->-$$Nest$fge PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;-><init>(Ljava/lang/String;Lcom/android/server/slice/DirtyTracker;)V PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->addPkg(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)V PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->getAuthority()Ljava/lang/String; -PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->readFrom(Lorg/xmlpull/v1/XmlPullParser;)V +HPLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->readFrom(Lorg/xmlpull/v1/XmlPullParser;)V PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V PLcom/android/server/slice/SliceProviderPermissions;->-$$Nest$sfgetNAMESPACE()Ljava/lang/String; PLcom/android/server/slice/SliceProviderPermissions;-><clinit>()V @@ -39551,7 +40485,7 @@ PLcom/android/server/slice/SliceProviderPermissions;->getFileName()Ljava/lang/St PLcom/android/server/slice/SliceProviderPermissions;->getFileName(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Ljava/lang/String; PLcom/android/server/slice/SliceProviderPermissions;->getOrCreateAuthority(Ljava/lang/String;)Lcom/android/server/slice/SliceProviderPermissions$SliceAuthority; PLcom/android/server/slice/SliceProviderPermissions;->onPersistableDirty(Lcom/android/server/slice/DirtyTracker$Persistable;)V -PLcom/android/server/slice/SliceProviderPermissions;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V +HPLcom/android/server/slice/SliceProviderPermissions;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V PLcom/android/server/smartspace/RemoteSmartspaceService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;ILcom/android/server/smartspace/RemoteSmartspaceService$RemoteSmartspaceServiceCallbacks;ZZ)V HPLcom/android/server/smartspace/RemoteSmartspaceService;->executeOnResolvedService(Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;)V PLcom/android/server/smartspace/RemoteSmartspaceService;->getServiceInterface(Landroid/os/IBinder;)Landroid/os/IInterface; @@ -40001,6 +40935,7 @@ HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$Modu PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging$CallbackLogging;->onModuleDied()V PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging$CallbackLogging;->onPhraseRecognition(ILandroid/media/soundtrigger/PhraseRecognitionEvent;I)V HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging$CallbackLogging;->onRecognition(ILandroid/media/soundtrigger/RecognitionEvent;I)V +PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging$CallbackLogging;->startKeyphraseEventLatencyTracking(Landroid/media/soundtrigger/PhraseRecognitionEvent;)V PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging$CallbackLogging;->toString()Ljava/lang/String; PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->-$$Nest$fgetmOriginatorIdentity(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;)Landroid/media/permission/Identity; PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V @@ -40017,10 +40952,12 @@ HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$Modu PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->stopRecognition(I)V HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->toString()Ljava/lang/String; PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->unloadModel(I)V +PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->-$$Nest$fgetmContext(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;)Landroid/content/Context; PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->-$$Nest$mlogExceptionWithObject(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Ljava/lang/Object;Landroid/media/permission/Identity;Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->-$$Nest$mlogReturnWithObject(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Ljava/lang/Object;Landroid/media/permission/Identity;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->-$$Nest$mlogVoidReturnWithObject(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Ljava/lang/Object;Landroid/media/permission/Identity;Ljava/lang/String;[Ljava/lang/Object;)V HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;-><clinit>()V +HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;-><init>(Landroid/content/Context;Lcom/android/server/soundtrigger_middleware/ISoundTriggerMiddlewareInternal;)V HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->appendMessage(Ljava/lang/String;)V PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;)Landroid/media/soundtrigger_middleware/ISoundTriggerModule; PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->dump(Ljava/io/PrintWriter;)V @@ -40126,7 +41063,7 @@ PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;-> PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->-$$Nest$munload(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)I PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;)V PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model-IA;)V -PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->forceRecognitionEvent()V +HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->forceRecognitionEvent()V PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->getState()Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState; PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->load(Landroid/media/soundtrigger/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;)I HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->load(Landroid/media/soundtrigger/SoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;)I @@ -40143,7 +41080,7 @@ PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;-><init> PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session-IA;)V HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->checkValid()V PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->detach()V -PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->forceRecognitionEvent(I)V +HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->forceRecognitionEvent(I)V PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->loadModel(Landroid/media/soundtrigger/SoundModel;)I PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->loadPhraseModel(Landroid/media/soundtrigger/PhraseSoundModel;)I PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;->moduleDied()Landroid/media/soundtrigger_middleware/ISoundTriggerCallback; @@ -40277,9 +41214,9 @@ HPLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda12 PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda13;-><init>()V PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda13;->test(I)Z PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda16;-><init>(Landroid/util/SparseArray;I[I[J[D)V -PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda16;->onUidCpuTime(ILjava/lang/Object;)V +HPLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda16;->onUidCpuTime(ILjava/lang/Object;)V PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V -PLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda19;-><init>(Ljava/util/List;I)V +HPLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda19;-><init>(Ljava/util/List;I)V HPLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda19;->onUidCpuTime(ILjava/lang/Object;)V HSPLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V HSPLcom/android/server/stats/pull/StatsPullAtomService$$ExternalSyntheticLambda1;->run()V @@ -40370,6 +41307,7 @@ PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmNumBiometric PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmProcStatsLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object; PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmProcessCpuTimeLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object; PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmProcessMemoryHighWaterMarkLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object; +PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmRuntimeAppOpAccessMessageLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object; PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmSettingsStatsLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object; PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmSystemUptimeLock(Lcom/android/server/stats/pull/StatsPullAtomService;)Ljava/lang/Object; PLcom/android/server/stats/pull/StatsPullAtomService;->-$$Nest$fgetmTelephony(Lcom/android/server/stats/pull/StatsPullAtomService;)Landroid/telephony/TelephonyManager; @@ -40466,13 +41404,14 @@ PLcom/android/server/stats/pull/StatsPullAtomService;->pullNumBiometricsEnrolled PLcom/android/server/stats/pull/StatsPullAtomService;->pullPendingIntentsPerPackage(ILjava/util/List;)I PLcom/android/server/stats/pull/StatsPullAtomService;->pullProcStatsLocked(IILjava/util/List;)I HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessCpuTimeLocked(ILjava/util/List;)I+]Lcom/android/internal/os/ProcessCpuTracker;Lcom/android/internal/os/ProcessCpuTracker;]Ljava/util/List;Ljava/util/ArrayList; -PLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessDmabufMemory(ILjava/util/List;)I +HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessDmabufMemory(ILjava/util/List;)I HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessMemoryHighWaterMarkLocked(ILjava/util/List;)I HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessMemorySnapshot(ILjava/util/List;)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/lang/Iterable;Ljava/util/ArrayList;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; +PLcom/android/server/stats/pull/StatsPullAtomService;->pullRuntimeAppOpAccessMessageLocked(ILjava/util/List;)I PLcom/android/server/stats/pull/StatsPullAtomService;->pullSettingsStatsLocked(ILjava/util/List;)I PLcom/android/server/stats/pull/StatsPullAtomService;->pullSystemMemory(ILjava/util/List;)I PLcom/android/server/stats/pull/StatsPullAtomService;->pullSystemServerPinnerStats(ILjava/util/List;)I -PLcom/android/server/stats/pull/StatsPullAtomService;->pullSystemUptimeLocked(ILjava/util/List;)I +HPLcom/android/server/stats/pull/StatsPullAtomService;->pullSystemUptimeLocked(ILjava/util/List;)I HPLcom/android/server/stats/pull/StatsPullAtomService;->pullTemperatureLocked(ILjava/util/List;)I PLcom/android/server/stats/pull/StatsPullAtomService;->pullTimeZoneDetectorStateLocked(ILjava/util/List;)I PLcom/android/server/stats/pull/StatsPullAtomService;->pullVmStat(ILjava/util/List;)I @@ -40580,8 +41519,8 @@ HPLcom/android/server/stats/pull/netstats/NetworkStatsExt;->hasSameSlicing(Lcom/ PLcom/android/server/stats/pull/netstats/SubInfo;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V HSPLcom/android/server/statusbar/SessionMonitor;-><init>(Landroid/content/Context;)V PLcom/android/server/statusbar/SessionMonitor;->isValidSessionType(I)Z -PLcom/android/server/statusbar/SessionMonitor;->onSessionEnded(ILcom/android/internal/logging/InstanceId;)V -PLcom/android/server/statusbar/SessionMonitor;->onSessionStarted(ILcom/android/internal/logging/InstanceId;)V +HPLcom/android/server/statusbar/SessionMonitor;->onSessionEnded(ILcom/android/internal/logging/InstanceId;)V +HPLcom/android/server/statusbar/SessionMonitor;->onSessionStarted(ILcom/android/internal/logging/InstanceId;)V HSPLcom/android/server/statusbar/SessionMonitor;->registerSessionListener(ILcom/android/internal/statusbar/ISessionListener;)V HSPLcom/android/server/statusbar/SessionMonitor;->requireListenerPermissions(I)V PLcom/android/server/statusbar/SessionMonitor;->requireSetterPermissions(I)V @@ -40777,7 +41716,7 @@ PLcom/android/server/storage/CacheQuotaStrategy;->createServiceConnection()V HSPLcom/android/server/storage/CacheQuotaStrategy;->disconnectService()V HSPLcom/android/server/storage/CacheQuotaStrategy;->getRequestFromXml(Landroid/util/TypedXmlPullParser;)Landroid/app/usage/CacheQuotaHint; PLcom/android/server/storage/CacheQuotaStrategy;->getServiceComponentName()Landroid/content/ComponentName; -HPLcom/android/server/storage/CacheQuotaStrategy;->getUnfulfilledRequests()Ljava/util/List; +HPLcom/android/server/storage/CacheQuotaStrategy;->getUnfulfilledRequests()Ljava/util/List;+]Landroid/app/usage/UsageStats;Landroid/app/usage/UsageStats;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/Context;Landroid/app/ContextImpl;]Landroid/os/UserManager;Landroid/os/UserManager;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/app/usage/CacheQuotaHint$Builder;Landroid/app/usage/CacheQuotaHint$Builder;]Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/usage/UsageStatsService$LocalService; HSPLcom/android/server/storage/CacheQuotaStrategy;->insertIntoQuotaMap(Ljava/lang/String;IIJ)V PLcom/android/server/storage/CacheQuotaStrategy;->onResult(Landroid/os/Bundle;)V HSPLcom/android/server/storage/CacheQuotaStrategy;->pushProcessedQuotas(Ljava/util/List;)V @@ -40987,7 +41926,7 @@ PLcom/android/server/tare/Agent;->-$$Nest$mscheduleBalanceCheckLocked(Lcom/andro HPLcom/android/server/tare/Agent;->-$$Nest$mstopOngoingActionLocked(Lcom/android/server/tare/Agent;ILjava/lang/String;ILjava/lang/String;JJZZ)V HSPLcom/android/server/tare/Agent;-><clinit>()V HSPLcom/android/server/tare/Agent;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Analyst;)V -HPLcom/android/server/tare/Agent;->distributeBasicIncomeLocked(I)V+]Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Scribe;]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService;]Lcom/android/server/tare/Ledger;Lcom/android/server/tare/Ledger;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap; +HPLcom/android/server/tare/Agent;->distributeBasicIncomeLocked(I)V+]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Scribe;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService;]Lcom/android/server/tare/Ledger;Lcom/android/server/tare/Ledger;]Ljava/util/List;Ljava/util/ArrayList; PLcom/android/server/tare/Agent;->dumpLocked(Landroid/util/IndentingPrintWriter;)V HPLcom/android/server/tare/Agent;->getActualDeltaLocked(Lcom/android/server/tare/Agent$OngoingEvent;Lcom/android/server/tare/Ledger;JJ)Lcom/android/server/tare/EconomicPolicy$Cost;+]Lcom/android/server/tare/Agent$OngoingEvent;Lcom/android/server/tare/Agent$OngoingEvent;]Lcom/android/server/tare/Ledger;Lcom/android/server/tare/Ledger; HSPLcom/android/server/tare/Agent;->getBalanceLocked(ILjava/lang/String;)J+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Scribe;]Lcom/android/server/tare/Agent$TotalDeltaCalculator;Lcom/android/server/tare/Agent$TotalDeltaCalculator;]Lcom/android/server/tare/Ledger;Lcom/android/server/tare/Ledger; @@ -40996,7 +41935,7 @@ HSPLcom/android/server/tare/Agent;->isAffordableLocked(JJJ)Z+]Lcom/android/serve HPLcom/android/server/tare/Agent;->noteInstantaneousEventLocked(ILjava/lang/String;ILjava/lang/String;)V+]Lcom/android/server/tare/CompleteEconomicPolicy;Lcom/android/server/tare/CompleteEconomicPolicy;]Lcom/android/server/tare/EconomicPolicy;Lcom/android/server/tare/CompleteEconomicPolicy;]Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Scribe;]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService;]Lcom/android/server/tare/Ledger;Lcom/android/server/tare/Ledger; HPLcom/android/server/tare/Agent;->noteOngoingEventLocked(ILjava/lang/String;ILjava/lang/String;J)V HPLcom/android/server/tare/Agent;->noteOngoingEventLocked(ILjava/lang/String;ILjava/lang/String;JZ)V+]Lcom/android/server/tare/CompleteEconomicPolicy;Lcom/android/server/tare/CompleteEconomicPolicy;]Lcom/android/server/tare/EconomicPolicy;Lcom/android/server/tare/CompleteEconomicPolicy;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; -HSPLcom/android/server/tare/Agent;->onAnythingChangedLocked(Z)V+]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/Agent$ActionAffordabilityNote;Lcom/android/server/tare/Agent$ActionAffordabilityNote;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; +HSPLcom/android/server/tare/Agent;->onAnythingChangedLocked(Z)V+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Lcom/android/server/tare/Agent$ActionAffordabilityNote;Lcom/android/server/tare/Agent$ActionAffordabilityNote;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; PLcom/android/server/tare/Agent;->onAppExemptedLocked(ILjava/lang/String;)V HSPLcom/android/server/tare/Agent;->onAppStatesChangedLocked(ILandroid/util/ArraySet;)V+]Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Scribe;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Lcom/android/server/tare/Agent$ActionAffordabilityNote;Lcom/android/server/tare/Agent$ActionAffordabilityNote;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService;]Lcom/android/server/tare/Ledger;Lcom/android/server/tare/Ledger; HSPLcom/android/server/tare/Agent;->onCreditSupplyChanged()V @@ -41024,15 +41963,25 @@ HPLcom/android/server/tare/AlarmManagerEconomicPolicy;->getMinSatiatedBalance(IL PLcom/android/server/tare/AlarmManagerEconomicPolicy;->getReward(I)Lcom/android/server/tare/EconomicPolicy$Reward; HSPLcom/android/server/tare/AlarmManagerEconomicPolicy;->loadConstants(Ljava/lang/String;Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/tare/AlarmManagerEconomicPolicy;->setup(Landroid/provider/DeviceConfig$Properties;)V +PLcom/android/server/tare/Analyst$Report;->-$$Nest$fgetbsScreenOffDischargeMahBase(Lcom/android/server/tare/Analyst$Report;)J +PLcom/android/server/tare/Analyst$Report;->-$$Nest$fgetbsScreenOffRealtimeBase(Lcom/android/server/tare/Analyst$Report;)J +PLcom/android/server/tare/Analyst$Report;->-$$Nest$fputbsScreenOffDischargeMahBase(Lcom/android/server/tare/Analyst$Report;J)V +PLcom/android/server/tare/Analyst$Report;->-$$Nest$fputbsScreenOffRealtimeBase(Lcom/android/server/tare/Analyst$Report;J)V PLcom/android/server/tare/Analyst$Report;->-$$Nest$mclear(Lcom/android/server/tare/Analyst$Report;)V HSPLcom/android/server/tare/Analyst$Report;-><init>()V PLcom/android/server/tare/Analyst$Report;->clear()V HSPLcom/android/server/tare/Analyst;-><clinit>()V HSPLcom/android/server/tare/Analyst;-><init>()V +HSPLcom/android/server/tare/Analyst;-><init>(Lcom/android/internal/app/IBatteryStats;)V PLcom/android/server/tare/Analyst;->dump(Landroid/util/IndentingPrintWriter;)V +PLcom/android/server/tare/Analyst;->getBatteryScreenOffDischargeMah()J +HPLcom/android/server/tare/Analyst;->getBatteryScreenOffDurationMs()J +PLcom/android/server/tare/Analyst;->getLatestBatteryScreenOffRealtimeMs()J +PLcom/android/server/tare/Analyst;->getLatestScreenOffDischargeMah()J HPLcom/android/server/tare/Analyst;->getReports()Ljava/util/List; +PLcom/android/server/tare/Analyst;->initializeReport()Lcom/android/server/tare/Analyst$Report; HSPLcom/android/server/tare/Analyst;->loadReports(Ljava/util/List;)V -PLcom/android/server/tare/Analyst;->noteBatteryLevelChange(I)V +HPLcom/android/server/tare/Analyst;->noteBatteryLevelChange(I)V HPLcom/android/server/tare/Analyst;->noteTransaction(Lcom/android/server/tare/Ledger$Transaction;)V PLcom/android/server/tare/Analyst;->padStringWithSpaces(Ljava/lang/String;I)Ljava/lang/String; HSPLcom/android/server/tare/ChargingModifier$ChargingTracker;->-$$Nest$fgetmCharging(Lcom/android/server/tare/ChargingModifier$ChargingTracker;)Z @@ -41050,7 +41999,8 @@ HSPLcom/android/server/tare/ChargingModifier;->getModifiedPrice(J)J HSPLcom/android/server/tare/ChargingModifier;->modifyValue(J)J HSPLcom/android/server/tare/ChargingModifier;->setup()V HSPLcom/android/server/tare/CompleteEconomicPolicy$CompleteInjector;-><init>()V -HSPLcom/android/server/tare/CompleteEconomicPolicy$CompleteInjector;->isPolicyEnabled(I)Z +HSPLcom/android/server/tare/CompleteEconomicPolicy$CompleteInjector;->isPolicyEnabled(ILandroid/provider/DeviceConfig$Properties;)Z +HSPLcom/android/server/tare/CompleteEconomicPolicy;-><clinit>()V HSPLcom/android/server/tare/CompleteEconomicPolicy;-><init>(Lcom/android/server/tare/InternalResourceService;)V HSPLcom/android/server/tare/CompleteEconomicPolicy;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/CompleteEconomicPolicy$CompleteInjector;)V PLcom/android/server/tare/CompleteEconomicPolicy;->dump(Landroid/util/IndentingPrintWriter;)V @@ -41061,6 +42011,7 @@ HSPLcom/android/server/tare/CompleteEconomicPolicy;->getInitialSatiatedConsumpti HPLcom/android/server/tare/CompleteEconomicPolicy;->getMaxSatiatedBalance(ILjava/lang/String;)J+]Lcom/android/server/tare/EconomicPolicy;Lcom/android/server/tare/AlarmManagerEconomicPolicy;,Lcom/android/server/tare/JobSchedulerEconomicPolicy;]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/tare/CompleteEconomicPolicy;->getMinSatiatedBalance(ILjava/lang/String;)J+]Lcom/android/server/tare/EconomicPolicy;Lcom/android/server/tare/AlarmManagerEconomicPolicy;,Lcom/android/server/tare/JobSchedulerEconomicPolicy;]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/tare/CompleteEconomicPolicy;->getReward(I)Lcom/android/server/tare/EconomicPolicy$Reward; +PLcom/android/server/tare/CompleteEconomicPolicy;->isPolicyEnabled(I)Z HSPLcom/android/server/tare/CompleteEconomicPolicy;->setup(Landroid/provider/DeviceConfig$Properties;)V HSPLcom/android/server/tare/CompleteEconomicPolicy;->updateLimits()V HSPLcom/android/server/tare/DeviceIdleModifier$DeviceIdleTracker;->-$$Nest$fgetmDeviceIdle(Lcom/android/server/tare/DeviceIdleModifier$DeviceIdleTracker;)Z @@ -41089,7 +42040,7 @@ PLcom/android/server/tare/EconomicPolicy;->dumpReward(Landroid/util/IndentingPri HPLcom/android/server/tare/EconomicPolicy;->eventToString(I)Ljava/lang/String; HSPLcom/android/server/tare/EconomicPolicy;->getConstantAsCake(Landroid/util/KeyValueListParser;Landroid/provider/DeviceConfig$Properties;Ljava/lang/String;J)J HSPLcom/android/server/tare/EconomicPolicy;->getConstantAsCake(Landroid/util/KeyValueListParser;Landroid/provider/DeviceConfig$Properties;Ljava/lang/String;JJ)J -HSPLcom/android/server/tare/EconomicPolicy;->getCostOfAction(IILjava/lang/String;)Lcom/android/server/tare/EconomicPolicy$Cost;+]Lcom/android/server/tare/ProcessStateModifier;Lcom/android/server/tare/ProcessStateModifier;]Lcom/android/server/tare/EconomicPolicy;Lcom/android/server/tare/CompleteEconomicPolicy;]Lcom/android/server/tare/Modifier;Lcom/android/server/tare/ChargingModifier;,Lcom/android/server/tare/DeviceIdleModifier;,Lcom/android/server/tare/PowerSaveModeModifier;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; +HSPLcom/android/server/tare/EconomicPolicy;->getCostOfAction(IILjava/lang/String;)Lcom/android/server/tare/EconomicPolicy$Cost;+]Lcom/android/server/tare/EconomicPolicy;Lcom/android/server/tare/CompleteEconomicPolicy;]Lcom/android/server/tare/ProcessStateModifier;Lcom/android/server/tare/ProcessStateModifier;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService;]Lcom/android/server/tare/Modifier;Lcom/android/server/tare/ChargingModifier;,Lcom/android/server/tare/DeviceIdleModifier;,Lcom/android/server/tare/PowerSaveModeModifier; HPLcom/android/server/tare/EconomicPolicy;->getEventType(I)I HSPLcom/android/server/tare/EconomicPolicy;->getModifier(I)Lcom/android/server/tare/Modifier; HSPLcom/android/server/tare/EconomicPolicy;->initModifier(ILcom/android/server/tare/InternalResourceService;)V @@ -41135,12 +42086,12 @@ HSPLcom/android/server/tare/InternalResourceService$LocalService;-><init>(Lcom/a HSPLcom/android/server/tare/InternalResourceService$LocalService;-><init>(Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService$LocalService-IA;)V HSPLcom/android/server/tare/InternalResourceService$LocalService;->canPayFor(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)Z HPLcom/android/server/tare/InternalResourceService$LocalService;->getMaxDurationMs(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)J+]Lcom/android/server/tare/EconomicPolicy;Lcom/android/server/tare/CompleteEconomicPolicy;]Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Scribe;]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Ljava/util/List;Ljava/util/Collections$UnmodifiableRandomAccessList;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService;]Lcom/android/server/tare/EconomyManagerInternal$ActionBill;Lcom/android/server/tare/EconomyManagerInternal$ActionBill; -HSPLcom/android/server/tare/InternalResourceService$LocalService;->isEnabled()Z +PLcom/android/server/tare/InternalResourceService$LocalService;->isEnabled(I)Z HPLcom/android/server/tare/InternalResourceService$LocalService;->noteInstantaneousEvent(ILjava/lang/String;ILjava/lang/String;)V+]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent; HPLcom/android/server/tare/InternalResourceService$LocalService;->noteOngoingEventStarted(ILjava/lang/String;ILjava/lang/String;)V HPLcom/android/server/tare/InternalResourceService$LocalService;->noteOngoingEventStopped(ILjava/lang/String;ILjava/lang/String;)V+]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent; HSPLcom/android/server/tare/InternalResourceService$LocalService;->registerAffordabilityChangeListener(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$AffordabilityChangeListener;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V+]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; -HSPLcom/android/server/tare/InternalResourceService$LocalService;->registerTareStateChangeListener(Lcom/android/server/tare/EconomyManagerInternal$TareStateChangeListener;)V +PLcom/android/server/tare/InternalResourceService$LocalService;->registerTareStateChangeListener(Lcom/android/server/tare/EconomyManagerInternal$TareStateChangeListener;I)V HPLcom/android/server/tare/InternalResourceService$LocalService;->unregisterAffordabilityChangeListener(ILjava/lang/String;Lcom/android/server/tare/EconomyManagerInternal$AffordabilityChangeListener;Lcom/android/server/tare/EconomyManagerInternal$ActionBill;)V+]Lcom/android/server/tare/Agent;Lcom/android/server/tare/Agent;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; HSPLcom/android/server/tare/InternalResourceService;->$r8$lambda$0WzwOHKU50UyxI6dsoLxMYjaEjc(Lcom/android/server/tare/InternalResourceService;JJ)V HSPLcom/android/server/tare/InternalResourceService;->$r8$lambda$6vievQs7vcv71frhGR6rTFzw8Zo(Lcom/android/server/tare/InternalResourceService;)V @@ -41151,7 +42102,7 @@ HPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmHasBattery(Lco HSPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmIsEnabled(Lcom/android/server/tare/InternalResourceService;)Z HSPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmLock(Lcom/android/server/tare/InternalResourceService;)Ljava/lang/Object; HPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmScribe(Lcom/android/server/tare/InternalResourceService;)Lcom/android/server/tare/Scribe; -HSPLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmStateChangeListeners(Lcom/android/server/tare/InternalResourceService;)Ljava/util/concurrent/CopyOnWriteArraySet; +PLcom/android/server/tare/InternalResourceService;->-$$Nest$fgetmStateChangeListeners(Lcom/android/server/tare/InternalResourceService;)Landroid/util/SparseSetArray; HSPLcom/android/server/tare/InternalResourceService;->-$$Nest$fputmIsEnabled(Lcom/android/server/tare/InternalResourceService;Z)V PLcom/android/server/tare/InternalResourceService;->-$$Nest$mdumpInternal(Lcom/android/server/tare/InternalResourceService;Landroid/util/IndentingPrintWriter;Z)V HSPLcom/android/server/tare/InternalResourceService;->-$$Nest$misTareSupported(Lcom/android/server/tare/InternalResourceService;)Z @@ -41162,6 +42113,7 @@ HSPLcom/android/server/tare/InternalResourceService;-><clinit>()V HSPLcom/android/server/tare/InternalResourceService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/tare/InternalResourceService;->adjustCreditSupplyLocked(Z)V PLcom/android/server/tare/InternalResourceService;->dumpInternal(Landroid/util/IndentingPrintWriter;Z)V +HPLcom/android/server/tare/InternalResourceService;->getAppUpdateResponsibilityCount(ILjava/lang/String;)I+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap; HSPLcom/android/server/tare/InternalResourceService;->getCompleteEconomicPolicyLocked()Lcom/android/server/tare/CompleteEconomicPolicy; HSPLcom/android/server/tare/InternalResourceService;->getConsumptionLimitLocked()J HSPLcom/android/server/tare/InternalResourceService;->getCurrentBatteryLevel()I @@ -41172,6 +42124,7 @@ HPLcom/android/server/tare/InternalResourceService;->getMinBalanceLocked(ILjava/ HSPLcom/android/server/tare/InternalResourceService;->getPackagesForUidLocked(I)Landroid/util/ArraySet;+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager; HSPLcom/android/server/tare/InternalResourceService;->getUid(ILjava/lang/String;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/tare/InternalResourceService;->isEnabled()Z +PLcom/android/server/tare/InternalResourceService;->isEnabled(I)Z HPLcom/android/server/tare/InternalResourceService;->isPackageExempted(ILjava/lang/String;)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet; HPLcom/android/server/tare/InternalResourceService;->isPackageRestricted(ILjava/lang/String;)Z+]Landroid/util/SparseSetArray;Landroid/util/SparseSetArray; HSPLcom/android/server/tare/InternalResourceService;->isSystem(ILjava/lang/String;)Z+]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; @@ -41179,7 +42132,9 @@ HSPLcom/android/server/tare/InternalResourceService;->isTareSupported()Z HSPLcom/android/server/tare/InternalResourceService;->isVip(ILjava/lang/String;)Z+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap;]Lcom/android/server/tare/InternalResourceService;Lcom/android/server/tare/InternalResourceService; HSPLcom/android/server/tare/InternalResourceService;->lambda$scheduleUnusedWealthReclamationLocked$0(JJ)V HSPLcom/android/server/tare/InternalResourceService;->loadInstalledPackageListLocked()V +HPLcom/android/server/tare/InternalResourceService;->maybeAdjustDesiredStockLevelLocked()V HPLcom/android/server/tare/InternalResourceService;->maybePerformQuantitativeEasingLocked()V+]Lcom/android/server/tare/Scribe;Lcom/android/server/tare/Scribe; +PLcom/android/server/tare/InternalResourceService;->maybeUpdateInstallerStatusLocked(Lcom/android/server/tare/InstalledPackageInfo;Lcom/android/server/tare/InstalledPackageInfo;)V HPLcom/android/server/tare/InternalResourceService;->onBatteryLevelChanged()V HSPLcom/android/server/tare/InternalResourceService;->onBootPhase(I)V PLcom/android/server/tare/InternalResourceService;->onBootPhaseBootCompleted()V @@ -41276,6 +42231,7 @@ PLcom/android/server/tare/Scribe;->discardLedgerLocked(ILjava/lang/String;)V PLcom/android/server/tare/Scribe;->dumpLocked(Landroid/util/IndentingPrintWriter;Z)V PLcom/android/server/tare/Scribe;->getCakesInCirculationForLoggingLocked()J HSPLcom/android/server/tare/Scribe;->getLastReclamationTimeLocked()J +HPLcom/android/server/tare/Scribe;->getLastStockRecalculationTimeLocked()J HSPLcom/android/server/tare/Scribe;->getLedgerLocked(ILjava/lang/String;)Lcom/android/server/tare/Ledger;+]Landroid/util/SparseArrayMap;Landroid/util/SparseArrayMap; PLcom/android/server/tare/Scribe;->getLedgersLocked()Landroid/util/SparseArrayMap; HSPLcom/android/server/tare/Scribe;->getRemainingConsumableCakesLocked()J @@ -41291,6 +42247,7 @@ HSPLcom/android/server/tare/Scribe;->recordExists()Z HSPLcom/android/server/tare/Scribe;->scheduleCleanup(J)V PLcom/android/server/tare/Scribe;->setConsumptionLimitLocked(J)V PLcom/android/server/tare/Scribe;->setLastReclamationTimeLocked(J)V +PLcom/android/server/tare/Scribe;->setLastStockRecalculationTimeLocked(J)V HPLcom/android/server/tare/Scribe;->writeReport(Landroid/util/TypedXmlSerializer;Lcom/android/server/tare/Analyst$Report;)V HPLcom/android/server/tare/Scribe;->writeRewardBucket(Landroid/util/TypedXmlSerializer;Lcom/android/server/tare/Ledger$RewardBucket;)V+]Landroid/util/SparseLongArray;Landroid/util/SparseLongArray;]Landroid/util/TypedXmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer;]Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/BinaryXmlSerializer; HPLcom/android/server/tare/Scribe;->writeState()V @@ -41589,6 +42546,7 @@ PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGro PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onServiceConnectedLocked(Lcom/android/internal/textservice/ISpellCheckerService;)V PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onServiceDisconnectedLocked()V PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V +PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->removeAllLocked()V PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->removeListener(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->-$$Nest$fgetmSpellCheckerBindGroups(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Ljava/util/HashMap; PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->-$$Nest$fgetmSpellCheckerList(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Ljava/util/ArrayList; @@ -41598,7 +42556,7 @@ PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;-> PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->-$$Nest$minitializeTextServicesData(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)V PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;-><init>(ILandroid/content/Context;)V PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->dump(Ljava/io/PrintWriter;)V -PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getBoolean(Ljava/lang/String;Z)Z +HPLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getBoolean(Ljava/lang/String;Z)Z HPLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getCurrentSpellChecker()Landroid/view/textservice/SpellCheckerInfo; HPLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getInt(Ljava/lang/String;I)I HPLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getSelectedSpellChecker()Ljava/lang/String; @@ -41678,6 +42636,7 @@ HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fget HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmManualSuggestionLowerBound(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Ljava/time/Instant; HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmOriginPriorities(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)[I HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmSuggestionUpperBound(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Ljava/time/Instant; +HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmSystemClockConfidenceThresholdMillis(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)I HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmSystemClockUpdateThresholdMillis(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)I HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmUserConfigAllowed(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)Z HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->-$$Nest$fgetmUserId(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)I @@ -41689,11 +42648,11 @@ HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->setAutoSugge HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->setManualSuggestionLowerBound(Ljava/time/Instant;)Lcom/android/server/timedetector/ConfigurationInternal$Builder; HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->setOriginPriorities([I)Lcom/android/server/timedetector/ConfigurationInternal$Builder; HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->setSuggestionUpperBound(Ljava/time/Instant;)Lcom/android/server/timedetector/ConfigurationInternal$Builder; +HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->setSystemClockConfidenceThresholdMillis(I)Lcom/android/server/timedetector/ConfigurationInternal$Builder; HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->setSystemClockUpdateThresholdMillis(I)Lcom/android/server/timedetector/ConfigurationInternal$Builder; HSPLcom/android/server/timedetector/ConfigurationInternal$Builder;->setUserConfigAllowed(Z)Lcom/android/server/timedetector/ConfigurationInternal$Builder; HSPLcom/android/server/timedetector/ConfigurationInternal;-><init>(Lcom/android/server/timedetector/ConfigurationInternal$Builder;)V HSPLcom/android/server/timedetector/ConfigurationInternal;-><init>(Lcom/android/server/timedetector/ConfigurationInternal$Builder;Lcom/android/server/timedetector/ConfigurationInternal-IA;)V -PLcom/android/server/timedetector/ConfigurationInternal;->capabilitiesAndConfig()Landroid/app/time/TimeCapabilitiesAndConfig; PLcom/android/server/timedetector/ConfigurationInternal;->getAutoDetectionEnabledBehavior()Z PLcom/android/server/timedetector/ConfigurationInternal;->getAutoDetectionEnabledSetting()Z PLcom/android/server/timedetector/ConfigurationInternal;->getAutoOriginPriorities()[I @@ -41702,7 +42661,6 @@ PLcom/android/server/timedetector/ConfigurationInternal;->getSuggestionUpperBoun PLcom/android/server/timedetector/ConfigurationInternal;->getSystemClockUpdateThresholdMillis()I PLcom/android/server/timedetector/ConfigurationInternal;->isAutoDetectionSupported()Z PLcom/android/server/timedetector/ConfigurationInternal;->isUserConfigAllowed()Z -PLcom/android/server/timedetector/ConfigurationInternal;->timeCapabilities()Landroid/app/time/TimeCapabilities; PLcom/android/server/timedetector/ConfigurationInternal;->timeConfiguration()Landroid/app/time/TimeConfiguration; PLcom/android/server/timedetector/ConfigurationInternal;->toString()Ljava/lang/String; HSPLcom/android/server/timedetector/EnvironmentImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/EnvironmentImpl;Lcom/android/server/timezonedetector/ConfigurationChangeListener;)V @@ -41712,18 +42670,21 @@ PLcom/android/server/timedetector/EnvironmentImpl$$ExternalSyntheticLambda1;->ru PLcom/android/server/timedetector/EnvironmentImpl;->$r8$lambda$yoLQzH6Iw9DSiISdl1qsYL2NmCc(Lcom/android/server/timedetector/EnvironmentImpl;Lcom/android/server/timezonedetector/ConfigurationChangeListener;)V HSPLcom/android/server/timedetector/EnvironmentImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/ServiceConfigAccessor;)V PLcom/android/server/timedetector/EnvironmentImpl;->acquireWakeLock()V +PLcom/android/server/timedetector/EnvironmentImpl;->addDebugLogEntry(Ljava/lang/String;)V PLcom/android/server/timedetector/EnvironmentImpl;->checkWakeLockHeld()V PLcom/android/server/timedetector/EnvironmentImpl;->elapsedRealtimeMillis()J HSPLcom/android/server/timedetector/EnvironmentImpl;->getCurrentUserConfigurationInternal()Lcom/android/server/timedetector/ConfigurationInternal; PLcom/android/server/timedetector/EnvironmentImpl;->lambda$setConfigurationInternalChangeListener$0(Lcom/android/server/timezonedetector/ConfigurationChangeListener;)V PLcom/android/server/timedetector/EnvironmentImpl;->releaseWakeLock()V HSPLcom/android/server/timedetector/EnvironmentImpl;->setConfigurationInternalChangeListener(Lcom/android/server/timezonedetector/ConfigurationChangeListener;)V -PLcom/android/server/timedetector/EnvironmentImpl;->setSystemClock(J)V +PLcom/android/server/timedetector/EnvironmentImpl;->setSystemClock(JILjava/lang/String;)V +PLcom/android/server/timedetector/EnvironmentImpl;->setSystemClockConfidence(ILjava/lang/String;)V +PLcom/android/server/timedetector/EnvironmentImpl;->systemClockConfidence()I PLcom/android/server/timedetector/EnvironmentImpl;->systemClockMillis()J -PLcom/android/server/timedetector/NetworkTimeSuggestion;-><init>(Landroid/os/TimestampedValue;I)V +PLcom/android/server/timedetector/NetworkTimeSuggestion;-><init>(Landroid/app/time/UnixEpochTime;I)V PLcom/android/server/timedetector/NetworkTimeSuggestion;->addDebugInfo([Ljava/lang/String;)V PLcom/android/server/timedetector/NetworkTimeSuggestion;->equals(Ljava/lang/Object;)Z -PLcom/android/server/timedetector/NetworkTimeSuggestion;->getUnixEpochTime()Landroid/os/TimestampedValue; +PLcom/android/server/timedetector/NetworkTimeSuggestion;->getUnixEpochTime()Landroid/app/time/UnixEpochTime; PLcom/android/server/timedetector/NetworkTimeSuggestion;->toString()Ljava/lang/String; HSPLcom/android/server/timedetector/NetworkTimeUpdateService$1;-><init>(Lcom/android/server/timedetector/NetworkTimeUpdateService;)V PLcom/android/server/timedetector/NetworkTimeUpdateService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V @@ -41786,6 +42747,7 @@ HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getConfiguration HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getCurrentUserConfigurationInternal()Lcom/android/server/timedetector/ConfigurationInternal; HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getInstance(Landroid/content/Context;)Lcom/android/server/timedetector/ServiceConfigAccessor; HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getOriginPriorities()[I +HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getSystemClockConfidenceUpgradeThresholdMillis()I HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->getSystemClockUpdateThresholdMillis()I PLcom/android/server/timedetector/ServiceConfigAccessorImpl;->handleConfigurationInternalChangeOnMainThread()V HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->isAutoDetectionSupported()Z @@ -41793,7 +42755,6 @@ HSPLcom/android/server/timedetector/ServiceConfigAccessorImpl;->isUserConfigAllo PLcom/android/server/timedetector/TimeDetectorInternalImpl$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/timedetector/TimeDetectorInternalImpl;Lcom/android/server/timedetector/NetworkTimeSuggestion;)V PLcom/android/server/timedetector/TimeDetectorInternalImpl$$ExternalSyntheticLambda1;->run()V PLcom/android/server/timedetector/TimeDetectorInternalImpl;->$r8$lambda$TKqCM2EnPIplp-gh8ULqvuMsmQc(Lcom/android/server/timedetector/TimeDetectorInternalImpl;Lcom/android/server/timedetector/NetworkTimeSuggestion;)V -HSPLcom/android/server/timedetector/TimeDetectorInternalImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/TimeDetectorStrategy;)V PLcom/android/server/timedetector/TimeDetectorInternalImpl;->lambda$suggestNetworkTime$0(Lcom/android/server/timedetector/NetworkTimeSuggestion;)V PLcom/android/server/timedetector/TimeDetectorInternalImpl;->suggestNetworkTime(Lcom/android/server/timedetector/NetworkTimeSuggestion;)V HSPLcom/android/server/timedetector/TimeDetectorService$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/TimeDetectorService;)V @@ -41807,8 +42768,7 @@ HSPLcom/android/server/timedetector/TimeDetectorService$Lifecycle;-><init>(Landr HSPLcom/android/server/timedetector/TimeDetectorService$Lifecycle;->onStart()V PLcom/android/server/timedetector/TimeDetectorService;->$r8$lambda$8-IX9v99fkEnDpdcZQhZDzzXG1A(Lcom/android/server/timedetector/TimeDetectorService;)V PLcom/android/server/timedetector/TimeDetectorService;->$r8$lambda$qEHUzaO4ICKKqMc38xlrS9PYEz4(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/TelephonyTimeSuggestion;)V -HSPLcom/android/server/timedetector/TimeDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/ServiceConfigAccessor;Lcom/android/server/timedetector/TimeDetectorStrategy;)V -HSPLcom/android/server/timedetector/TimeDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/ServiceConfigAccessor;Lcom/android/server/timedetector/TimeDetectorStrategy;Lcom/android/server/timezonedetector/CallerIdentityInjector;Landroid/util/NtpTrustedTime;)V +HSPLcom/android/server/timedetector/TimeDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/CallerIdentityInjector;Lcom/android/server/timedetector/ServiceConfigAccessor;Lcom/android/server/timedetector/TimeDetectorStrategy;Landroid/util/NtpTrustedTime;)V PLcom/android/server/timedetector/TimeDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestTelephonyTimePermission()V PLcom/android/server/timedetector/TimeDetectorService;->handleConfigurationInternalChangedOnHandlerThread()V @@ -41816,13 +42776,13 @@ PLcom/android/server/timedetector/TimeDetectorService;->lambda$new$0()V PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestTelephonyTime$1(Landroid/app/timedetector/TelephonyTimeSuggestion;)V HSPLcom/android/server/timedetector/TimeDetectorService;->latestNetworkTime()Landroid/app/timedetector/TimePoint; PLcom/android/server/timedetector/TimeDetectorService;->suggestTelephonyTime(Landroid/app/timedetector/TelephonyTimeSuggestion;)V -PLcom/android/server/timedetector/TimeDetectorStrategy;->getTimeAt(Landroid/os/TimestampedValue;J)J PLcom/android/server/timedetector/TimeDetectorStrategy;->originToString(I)Ljava/lang/String; HSPLcom/android/server/timedetector/TimeDetectorStrategy;->stringToOrigin(Ljava/lang/String;)I HSPLcom/android/server/timedetector/TimeDetectorStrategyImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timedetector/TimeDetectorStrategyImpl;)V PLcom/android/server/timedetector/TimeDetectorStrategyImpl$$ExternalSyntheticLambda0;->onChange()V PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->$r8$lambda$gfpQundPDxO1Zb0OIGHRZHEuATE(Lcom/android/server/timedetector/TimeDetectorStrategyImpl;)V HSPLcom/android/server/timedetector/TimeDetectorStrategyImpl;-><init>(Lcom/android/server/timedetector/TimeDetectorStrategyImpl$Environment;)V +PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->addDebugLogEntry(Ljava/lang/String;)V HSPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->create(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/ServiceConfigAccessor;)Lcom/android/server/timedetector/TimeDetectorStrategy; PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->doAutoTimeDetection(Ljava/lang/String;)V PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->dump(Landroid/util/IndentingPrintWriter;[Ljava/lang/String;)V @@ -41830,17 +42790,16 @@ PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->findBestTelephonySu PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->findLatestValidNetworkSuggestion()Lcom/android/server/timedetector/NetworkTimeSuggestion; PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->handleConfigurationInternalChanged()V PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->isOriginAutomatic(I)Z -PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->logTimeDetectorChange(Ljava/lang/String;)V PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->scoreTelephonySuggestion(JLandroid/app/timedetector/TelephonyTimeSuggestion;)I -PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockIfRequired(ILandroid/os/TimestampedValue;Ljava/lang/String;)Z -PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockUnderWakeLock(ILandroid/os/TimestampedValue;Ljava/lang/String;)Z +PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockAndConfidenceIfRequired(ILandroid/app/time/UnixEpochTime;Ljava/lang/String;)Z +PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockAndConfidenceUnderWakeLock(ILandroid/app/time/UnixEpochTime;ILjava/lang/String;)Z PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->storeTelephonySuggestion(Landroid/app/timedetector/TelephonyTimeSuggestion;)Z PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestNetworkTime(Lcom/android/server/timedetector/NetworkTimeSuggestion;)V PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestTelephonyTime(Landroid/app/timedetector/TelephonyTimeSuggestion;)V -PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateAutoSuggestionTime(Landroid/os/TimestampedValue;Ljava/lang/Object;)Z -PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionAgainstLowerBound(Landroid/os/TimestampedValue;Ljava/lang/Object;Ljava/time/Instant;)Z -PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionCommon(Landroid/os/TimestampedValue;Ljava/lang/Object;)Z -PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionUnixEpochTime(JLandroid/os/TimestampedValue;)Z +PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateAutoSuggestionTime(Landroid/app/time/UnixEpochTime;Ljava/lang/Object;)Z +PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionAgainstLowerBound(Landroid/app/time/UnixEpochTime;Ljava/lang/Object;Ljava/time/Instant;)Z +PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionCommon(Landroid/app/time/UnixEpochTime;Ljava/lang/Object;)Z +PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionUnixEpochTime(JLandroid/app/time/UnixEpochTime;)Z HSPLcom/android/server/timezonedetector/ArrayMapWithHistory;-><init>(I)V PLcom/android/server/timezonedetector/ArrayMapWithHistory;->dump(Landroid/util/IndentingPrintWriter;)V PLcom/android/server/timezonedetector/ArrayMapWithHistory;->get(Ljava/lang/Object;)Ljava/lang/Object; @@ -41876,9 +42835,7 @@ HSPLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setTelep HSPLcom/android/server/timezonedetector/ConfigurationInternal$Builder;->setUserConfigAllowed(Z)Lcom/android/server/timezonedetector/ConfigurationInternal$Builder; HSPLcom/android/server/timezonedetector/ConfigurationInternal;-><init>(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;)V HSPLcom/android/server/timezonedetector/ConfigurationInternal;-><init>(Lcom/android/server/timezonedetector/ConfigurationInternal$Builder;Lcom/android/server/timezonedetector/ConfigurationInternal-IA;)V -PLcom/android/server/timezonedetector/ConfigurationInternal;->asCapabilities()Landroid/app/time/TimeZoneCapabilities; PLcom/android/server/timezonedetector/ConfigurationInternal;->asConfiguration()Landroid/app/time/TimeZoneConfiguration; -PLcom/android/server/timezonedetector/ConfigurationInternal;->createCapabilitiesAndConfig()Landroid/app/time/TimeZoneCapabilitiesAndConfig; PLcom/android/server/timezonedetector/ConfigurationInternal;->equals(Ljava/lang/Object;)Z PLcom/android/server/timezonedetector/ConfigurationInternal;->getAutoDetectionEnabledBehavior()Z PLcom/android/server/timezonedetector/ConfigurationInternal;->getAutoDetectionEnabledSetting()Z @@ -41886,6 +42843,7 @@ PLcom/android/server/timezonedetector/ConfigurationInternal;->getDetectionMode() HSPLcom/android/server/timezonedetector/ConfigurationInternal;->getGeoDetectionEnabledSetting()Z HSPLcom/android/server/timezonedetector/ConfigurationInternal;->getGeoDetectionRunInBackgroundEnabled()Z HSPLcom/android/server/timezonedetector/ConfigurationInternal;->getLocationEnabledSetting()Z +PLcom/android/server/timezonedetector/ConfigurationInternal;->getUserId()I PLcom/android/server/timezonedetector/ConfigurationInternal;->isAutoDetectionSupported()Z PLcom/android/server/timezonedetector/ConfigurationInternal;->isEnhancedMetricsCollectionEnabled()Z HSPLcom/android/server/timezonedetector/ConfigurationInternal;->isGeoDetectionExecutionEnabled()Z @@ -41906,11 +42864,15 @@ HSPLcom/android/server/timezonedetector/EnvironmentImpl$$ExternalSyntheticLambda PLcom/android/server/timezonedetector/EnvironmentImpl$$ExternalSyntheticLambda0;->onChange()V PLcom/android/server/timezonedetector/EnvironmentImpl;->$r8$lambda$nGWWD_UkuHE7JO-X_XfuMgJ7CXE(Lcom/android/server/timezonedetector/EnvironmentImpl;Lcom/android/server/timezonedetector/ConfigurationChangeListener;)V HSPLcom/android/server/timezonedetector/EnvironmentImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/ServiceConfigAccessor;)V +PLcom/android/server/timezonedetector/EnvironmentImpl;->addDebugLogEntry(Ljava/lang/String;)V +PLcom/android/server/timezonedetector/EnvironmentImpl;->dumpDebugLog(Ljava/io/PrintWriter;)V HSPLcom/android/server/timezonedetector/EnvironmentImpl;->elapsedRealtimeMillis()J HSPLcom/android/server/timezonedetector/EnvironmentImpl;->getCurrentUserConfigurationInternal()Lcom/android/server/timezonedetector/ConfigurationInternal; PLcom/android/server/timezonedetector/EnvironmentImpl;->getDeviceTimeZone()Ljava/lang/String; +PLcom/android/server/timezonedetector/EnvironmentImpl;->getDeviceTimeZoneConfidence()I PLcom/android/server/timezonedetector/EnvironmentImpl;->lambda$setConfigurationInternalChangeListener$0(Lcom/android/server/timezonedetector/ConfigurationChangeListener;)V HSPLcom/android/server/timezonedetector/EnvironmentImpl;->setConfigurationInternalChangeListener(Lcom/android/server/timezonedetector/ConfigurationChangeListener;)V +PLcom/android/server/timezonedetector/EnvironmentImpl;->setDeviceTimeZoneAndConfidence(Ljava/lang/String;ILjava/lang/String;)V PLcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;-><init>(JLjava/util/List;)V PLcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;->addDebugInfo([Ljava/lang/String;)V PLcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;->createCertainSuggestion(JLjava/util/List;)Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion; @@ -42005,7 +42967,6 @@ PLcom/android/server/timezonedetector/TimeZoneCanonicalizer;->apply(Ljava/lang/S PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;)V PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl$$ExternalSyntheticLambda0;->run()V PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;->$r8$lambda$uqq-jppYwnWn4XrwzoG5g4NUNE8(Lcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;)V -HSPLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;->generateMetricsState()Lcom/android/server/timezonedetector/MetricsTimeZoneDetectorState; PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;->lambda$suggestGeolocationTimeZone$0(Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;)V PLcom/android/server/timezonedetector/TimeZoneDetectorInternalImpl;->suggestGeolocationTimeZone(Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;)V @@ -42022,10 +42983,8 @@ HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;-><ini HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;->onStart()V PLcom/android/server/timezonedetector/TimeZoneDetectorService;->$r8$lambda$6HSmh0sViD5oL_WtwpXO4c2ADmg(Lcom/android/server/timezonedetector/TimeZoneDetectorService;)V PLcom/android/server/timezonedetector/TimeZoneDetectorService;->$r8$lambda$hk2Ps258ErGOgqxVeHtTaAQ1l-w(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V -HSPLcom/android/server/timezonedetector/TimeZoneDetectorService;->-$$Nest$smcreate(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/ServiceConfigAccessor;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)Lcom/android/server/timezonedetector/TimeZoneDetectorService; HSPLcom/android/server/timezonedetector/TimeZoneDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/CallerIdentityInjector;Lcom/android/server/timezonedetector/ServiceConfigAccessor;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V HSPLcom/android/server/timezonedetector/TimeZoneDetectorService;->addDumpable(Lcom/android/server/timezonedetector/Dumpable;)V -HSPLcom/android/server/timezonedetector/TimeZoneDetectorService;->create(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/ServiceConfigAccessor;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)Lcom/android/server/timezonedetector/TimeZoneDetectorService; PLcom/android/server/timezonedetector/TimeZoneDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceManageTimeZoneDetectorPermission()V PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceSuggestTelephonyTimeZonePermission()V @@ -42054,7 +43013,7 @@ PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->generateMet PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->getLatestGeolocationSuggestion()Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion; PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->getLatestManualSuggestion()Landroid/app/timezonedetector/ManualTimeZoneSuggestion; PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->handleConfigurationInternalChanged()V -PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->logTimeZoneDetectorChange(Ljava/lang/String;)V +PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->logTimeZoneDebugInfo(Ljava/lang/String;)V PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->scoreTelephonySuggestion(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)I PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->setDeviceTimeZoneIfRequired(Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->suggestGeolocationTimeZone(Lcom/android/server/timezonedetector/GeolocationTimeZoneSuggestion;)V @@ -42466,7 +43425,7 @@ HPLcom/android/server/trust/TrustManagerService;->dispatchOnTrustChanged(ZIILjav HPLcom/android/server/trust/TrustManagerService;->dispatchOnTrustManagedChanged(ZI)V HPLcom/android/server/trust/TrustManagerService;->dispatchTrustableDowngrade()V PLcom/android/server/trust/TrustManagerService;->dispatchUnlockAttempt(ZI)V -PLcom/android/server/trust/TrustManagerService;->dispatchUserMayRequestUnlock(I)V +HPLcom/android/server/trust/TrustManagerService;->dispatchUserMayRequestUnlock(I)V HPLcom/android/server/trust/TrustManagerService;->dispatchUserRequestedUnlock(IZ)V HPLcom/android/server/trust/TrustManagerService;->getBiometricSids(I)[J HSPLcom/android/server/trust/TrustManagerService;->getComponentName(Landroid/content/pm/ResolveInfo;)Landroid/content/ComponentName; @@ -42536,6 +43495,30 @@ PLcom/android/server/twilight/TwilightState;->sunriseTimeMillis()J PLcom/android/server/twilight/TwilightState;->sunset()Ljava/time/LocalDateTime; PLcom/android/server/twilight/TwilightState;->sunsetTimeMillis()J PLcom/android/server/twilight/TwilightState;->toString()Ljava/lang/String; +PLcom/android/server/updates/ConfigUpdateInstallReceiver$1;-><init>(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;Landroid/content/Context;)V +PLcom/android/server/updates/ConfigUpdateInstallReceiver$1;->run()V +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->-$$Nest$mgetAltContent(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Context;Landroid/content/Intent;)Ljava/io/BufferedInputStream; +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->-$$Nest$mgetCurrentContent(Lcom/android/server/updates/ConfigUpdateInstallReceiver;)[B +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->-$$Nest$mgetCurrentVersion(Lcom/android/server/updates/ConfigUpdateInstallReceiver;)I +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->-$$Nest$mgetRequiredHashFromIntent(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;)Ljava/lang/String; +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->-$$Nest$mgetVersionFromIntent(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;)I +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->-$$Nest$mverifyPreviousHash(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Ljava/lang/String;Ljava/lang/String;)Z +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->-$$Nest$smgetCurrentHash([B)Ljava/lang/String; +PLcom/android/server/updates/ConfigUpdateInstallReceiver;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getAltContent(Landroid/content/Context;Landroid/content/Intent;)Ljava/io/BufferedInputStream; +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getContentFromIntent(Landroid/content/Intent;)Landroid/net/Uri; +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getCurrentContent()[B +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getCurrentHash([B)Ljava/lang/String; +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getCurrentVersion()I +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getRequiredHashFromIntent(Landroid/content/Intent;)Ljava/lang/String; +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getVersionFromIntent(Landroid/content/Intent;)I +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->install(Ljava/io/InputStream;I)V +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->verifyPreviousHash(Ljava/lang/String;Ljava/lang/String;)Z +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->verifyVersion(II)Z +PLcom/android/server/updates/ConfigUpdateInstallReceiver;->writeUpdate(Ljava/io/File;Ljava/io/File;Ljava/io/InputStream;)V +PLcom/android/server/updates/EmergencyNumberDbInstallReceiver;-><init>()V +PLcom/android/server/updates/EmergencyNumberDbInstallReceiver;->postInstall(Landroid/content/Context;Landroid/content/Intent;)V HPLcom/android/server/uri/GrantUri;-><init>(ILandroid/net/Uri;I)V HPLcom/android/server/uri/GrantUri;->equals(Ljava/lang/Object;)Z HPLcom/android/server/uri/GrantUri;->hashCode()I @@ -42654,7 +43637,7 @@ HSPLcom/android/server/usage/AppIdleHistory$AppUsageHistory;-><init>()V HSPLcom/android/server/usage/AppIdleHistory;-><init>(Ljava/io/File;J)V PLcom/android/server/usage/AppIdleHistory;->clearUsage(Ljava/lang/String;I)V HPLcom/android/server/usage/AppIdleHistory;->dumpBucketExpiryTimes(Landroid/util/IndentingPrintWriter;Lcom/android/server/usage/AppIdleHistory$AppUsageHistory;J)V -HPLcom/android/server/usage/AppIdleHistory;->dumpUser(Landroid/util/IndentingPrintWriter;ILjava/util/List;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/IndentingPrintWriter;Lcom/android/internal/util/IndentingPrintWriter;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/server/usage/AppIdleHistory;Lcom/android/server/usage/AppIdleHistory;]Ljava/io/PrintWriter;Lcom/android/internal/util/IndentingPrintWriter;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HPLcom/android/server/usage/AppIdleHistory;->dumpUser(Landroid/util/IndentingPrintWriter;ILjava/util/List;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/IndentingPrintWriter;Lcom/android/internal/util/IndentingPrintWriter;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/usage/AppIdleHistory;Lcom/android/server/usage/AppIdleHistory;]Ljava/io/PrintWriter;Lcom/android/internal/util/IndentingPrintWriter; PLcom/android/server/usage/AppIdleHistory;->dumpUsers(Landroid/util/IndentingPrintWriter;[ILjava/util/List;)V HSPLcom/android/server/usage/AppIdleHistory;->getAppStandbyBucket(Ljava/lang/String;IJ)I+]Lcom/android/server/usage/AppIdleHistory;Lcom/android/server/usage/AppIdleHistory; HSPLcom/android/server/usage/AppIdleHistory;->getAppStandbyBuckets(IZ)Ljava/util/ArrayList;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/usage/AppIdleHistory;Lcom/android/server/usage/AppIdleHistory;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -42733,7 +43716,7 @@ HSPLcom/android/server/usage/AppStandbyController$Injector;->getDeviceConfigProp HSPLcom/android/server/usage/AppStandbyController$Injector;->getLooper()Landroid/os/Looper; HSPLcom/android/server/usage/AppStandbyController$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal; HSPLcom/android/server/usage/AppStandbyController$Injector;->getRunningUserIds()[I -HPLcom/android/server/usage/AppStandbyController$Injector;->getValidCrossProfileTargets(Ljava/lang/String;I)Ljava/util/List;+]Landroid/content/pm/CrossProfileAppsInternal;Lcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl; +HPLcom/android/server/usage/AppStandbyController$Injector;->getValidCrossProfileTargets(Ljava/lang/String;I)Ljava/util/List;+]Landroid/content/pm/CrossProfileAppsInternal;Lcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;]Lcom/android/server/pm/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/PackageImpl;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; HSPLcom/android/server/usage/AppStandbyController$Injector;->hasExactAlarmPermission(Ljava/lang/String;I)Z HSPLcom/android/server/usage/AppStandbyController$Injector;->isAppIdleEnabled()Z HSPLcom/android/server/usage/AppStandbyController$Injector;->isBoundWidgetPackage(Landroid/appwidget/AppWidgetManager;Ljava/lang/String;I)Z @@ -42826,7 +43809,7 @@ HSPLcom/android/server/usage/AppStandbyController;->isAppIdleEnabled()Z HSPLcom/android/server/usage/AppStandbyController;->isAppIdleFiltered(Ljava/lang/String;IIJ)Z+]Lcom/android/server/usage/AppStandbyController;Lcom/android/server/usage/AppStandbyController; HPLcom/android/server/usage/AppStandbyController;->isAppIdleFiltered(Ljava/lang/String;IJZ)Z HSPLcom/android/server/usage/AppStandbyController;->isAppIdleUnfiltered(Ljava/lang/String;IJ)Z+]Lcom/android/server/usage/AppIdleHistory;Lcom/android/server/usage/AppIdleHistory; -HSPLcom/android/server/usage/AppStandbyController;->isCarrierApp(Ljava/lang/String;)Z+]Lcom/android/server/usage/AppStandbyController;Lcom/android/server/usage/AppStandbyController;]Ljava/util/List;Ljava/util/ArrayList; +HSPLcom/android/server/usage/AppStandbyController;->isCarrierApp(Ljava/lang/String;)Z+]Lcom/android/server/usage/AppStandbyController;Lcom/android/server/usage/AppStandbyController;]Ljava/util/List;Ljava/util/ArrayList;,Ljava/util/Collections$EmptyList; HSPLcom/android/server/usage/AppStandbyController;->isDeviceProvisioningPackage(Ljava/lang/String;)Z HSPLcom/android/server/usage/AppStandbyController;->isDisplayOn()Z HSPLcom/android/server/usage/AppStandbyController;->isHeadlessSystemApp(Ljava/lang/String;)Z+]Landroid/util/ArraySet;Landroid/util/ArraySet; @@ -42964,7 +43947,7 @@ PLcom/android/server/usage/BroadcastResponseStatsLogger;->-$$Nest$smgetBroadcast PLcom/android/server/usage/BroadcastResponseStatsLogger;->-$$Nest$smgetNotificationEventLog(ILjava/lang/String;IJ)Ljava/lang/String; HSPLcom/android/server/usage/BroadcastResponseStatsLogger;-><clinit>()V HSPLcom/android/server/usage/BroadcastResponseStatsLogger;-><init>()V -PLcom/android/server/usage/BroadcastResponseStatsLogger;->dumpLogs(Lcom/android/internal/util/IndentingPrintWriter;)V +HPLcom/android/server/usage/BroadcastResponseStatsLogger;->dumpLogs(Lcom/android/internal/util/IndentingPrintWriter;)V HPLcom/android/server/usage/BroadcastResponseStatsLogger;->getBroadcastDispatchEventLog(ILjava/lang/String;IJJI)Ljava/lang/String; PLcom/android/server/usage/BroadcastResponseStatsLogger;->getNotificationEventLog(ILjava/lang/String;IJ)Ljava/lang/String; HPLcom/android/server/usage/BroadcastResponseStatsLogger;->logBroadcastDispatchEvent(ILjava/lang/String;Landroid/os/UserHandle;JJI)V @@ -42977,7 +43960,7 @@ HSPLcom/android/server/usage/BroadcastResponseStatsTracker;-><init>(Lcom/android PLcom/android/server/usage/BroadcastResponseStatsTracker;->clearBroadcastResponseStats(ILjava/lang/String;JI)V PLcom/android/server/usage/BroadcastResponseStatsTracker;->doesPackageHoldExemptedPermission(Ljava/lang/String;Landroid/os/UserHandle;)Z HPLcom/android/server/usage/BroadcastResponseStatsTracker;->doesPackageHoldExemptedRole(Ljava/lang/String;Landroid/os/UserHandle;)Z -PLcom/android/server/usage/BroadcastResponseStatsTracker;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V +HPLcom/android/server/usage/BroadcastResponseStatsTracker;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V HPLcom/android/server/usage/BroadcastResponseStatsTracker;->dumpBroadcastEventsLocked(Lcom/android/internal/util/IndentingPrintWriter;)V HPLcom/android/server/usage/BroadcastResponseStatsTracker;->dumpResponseStatsLocked(Lcom/android/internal/util/IndentingPrintWriter;)V PLcom/android/server/usage/BroadcastResponseStatsTracker;->dumpRoleHoldersLocked(Lcom/android/internal/util/IndentingPrintWriter;)V @@ -43004,14 +43987,14 @@ HPLcom/android/server/usage/IntervalStats;->addEvent(Landroid/app/usage/UsageEve PLcom/android/server/usage/IntervalStats;->commitTime(J)V PLcom/android/server/usage/IntervalStats;->deobfuscateData(Lcom/android/server/usage/PackagesTokenData;)Z HPLcom/android/server/usage/IntervalStats;->deobfuscateEvents(Lcom/android/server/usage/PackagesTokenData;)Z+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Lcom/android/server/usage/PackagesTokenData;Lcom/android/server/usage/PackagesTokenData; -HPLcom/android/server/usage/IntervalStats;->deobfuscateUsageStats(Lcom/android/server/usage/PackagesTokenData;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/usage/PackagesTokenData;Lcom/android/server/usage/PackagesTokenData;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; +HPLcom/android/server/usage/IntervalStats;->deobfuscateUsageStats(Lcom/android/server/usage/PackagesTokenData;)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/usage/PackagesTokenData;Lcom/android/server/usage/PackagesTokenData; HPLcom/android/server/usage/IntervalStats;->getCachedStringRef(Ljava/lang/String;)Ljava/lang/String; HPLcom/android/server/usage/IntervalStats;->getOrCreateConfigurationStats(Landroid/content/res/Configuration;)Landroid/app/usage/ConfigurationStats; HPLcom/android/server/usage/IntervalStats;->getOrCreateUsageStats(Ljava/lang/String;)Landroid/app/usage/UsageStats;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/usage/IntervalStats;Lcom/android/server/usage/IntervalStats; PLcom/android/server/usage/IntervalStats;->incrementAppLaunchCount(Ljava/lang/String;)V HPLcom/android/server/usage/IntervalStats;->obfuscateData(Lcom/android/server/usage/PackagesTokenData;)V HPLcom/android/server/usage/IntervalStats;->obfuscateEventsData(Lcom/android/server/usage/PackagesTokenData;)V+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Lcom/android/server/usage/PackagesTokenData;Lcom/android/server/usage/PackagesTokenData; -HPLcom/android/server/usage/IntervalStats;->obfuscateUsageStatsData(Lcom/android/server/usage/PackagesTokenData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/usage/PackagesTokenData;Lcom/android/server/usage/PackagesTokenData;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/lang/Integer;Ljava/lang/Integer; +HPLcom/android/server/usage/IntervalStats;->obfuscateUsageStatsData(Lcom/android/server/usage/PackagesTokenData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/usage/PackagesTokenData;Lcom/android/server/usage/PackagesTokenData; HPLcom/android/server/usage/IntervalStats;->update(Ljava/lang/String;Ljava/lang/String;JII)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/usage/UsageStats;Landroid/app/usage/UsageStats;]Lcom/android/server/usage/IntervalStats;Lcom/android/server/usage/IntervalStats; PLcom/android/server/usage/IntervalStats;->updateChooserCounts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V PLcom/android/server/usage/IntervalStats;->updateConfigurationStats(Landroid/content/res/Configuration;J)V @@ -43021,14 +44004,14 @@ PLcom/android/server/usage/IntervalStats;->updateScreenInteractive(J)V PLcom/android/server/usage/IntervalStats;->updateScreenNonInteractive(J)V PLcom/android/server/usage/PackagesTokenData;-><init>()V HPLcom/android/server/usage/PackagesTokenData;->getPackageString(I)Ljava/lang/String;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HPLcom/android/server/usage/PackagesTokenData;->getPackageTokenOrAdd(Ljava/lang/String;J)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Map;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Long;Ljava/lang/Long; +HPLcom/android/server/usage/PackagesTokenData;->getPackageTokenOrAdd(Ljava/lang/String;J)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/Map;Landroid/util/ArrayMap;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Long;Ljava/lang/Long; HPLcom/android/server/usage/PackagesTokenData;->getString(II)Ljava/lang/String;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/usage/PackagesTokenData;->getTokenOrAdd(ILjava/lang/String;Ljava/lang/String;)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/Map;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; PLcom/android/server/usage/PackagesTokenData;->removePackage(Ljava/lang/String;J)I PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda0;-><init>(Landroid/content/pm/PackageStats;Ljava/lang/String;Landroid/os/UserHandle;Z)V HPLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda1;-><init>(Landroid/content/pm/PackageStats;Landroid/os/UserHandle;)V -PLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V +HPLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V HPLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda2;-><init>(Landroid/content/pm/PackageStats;IZ)V HPLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLcom/android/server/usage/StorageStatsService$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/usage/StorageStatsService;)V @@ -43064,11 +44047,11 @@ HPLcom/android/server/usage/StorageStatsService;->checkStatsPermission(ILjava/la HPLcom/android/server/usage/StorageStatsService;->enforceStatsPermission(ILjava/lang/String;)V HPLcom/android/server/usage/StorageStatsService;->forEachStorageStatsAugmenter(Ljava/util/function/Consumer;Ljava/lang/String;)V HPLcom/android/server/usage/StorageStatsService;->getAppIds(I)[I+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; -PLcom/android/server/usage/StorageStatsService;->getCacheBytes(Ljava/lang/String;Ljava/lang/String;)J +HPLcom/android/server/usage/StorageStatsService;->getCacheBytes(Ljava/lang/String;Ljava/lang/String;)J PLcom/android/server/usage/StorageStatsService;->getCacheQuotaBytes(Ljava/lang/String;ILjava/lang/String;)J -PLcom/android/server/usage/StorageStatsService;->getDefaultFlags()I -PLcom/android/server/usage/StorageStatsService;->getFreeBytes(Ljava/lang/String;Ljava/lang/String;)J -PLcom/android/server/usage/StorageStatsService;->getTotalBytes(Ljava/lang/String;Ljava/lang/String;)J +HPLcom/android/server/usage/StorageStatsService;->getDefaultFlags()I +HPLcom/android/server/usage/StorageStatsService;->getFreeBytes(Ljava/lang/String;Ljava/lang/String;)J +HPLcom/android/server/usage/StorageStatsService;->getTotalBytes(Ljava/lang/String;Ljava/lang/String;)J HSPLcom/android/server/usage/StorageStatsService;->invalidateMounts()V HSPLcom/android/server/usage/StorageStatsService;->isCacheQuotaCalculationsEnabled(Landroid/content/ContentResolver;)Z PLcom/android/server/usage/StorageStatsService;->isQuotaSupported(Ljava/lang/String;Ljava/lang/String;)Z @@ -43080,7 +44063,7 @@ PLcom/android/server/usage/StorageStatsService;->notifySignificantDelta()V PLcom/android/server/usage/StorageStatsService;->queryExternalStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/ExternalStorageStats; HPLcom/android/server/usage/StorageStatsService;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats; HPLcom/android/server/usage/StorageStatsService;->queryStatsForUid(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats; -PLcom/android/server/usage/StorageStatsService;->queryStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats; +HPLcom/android/server/usage/StorageStatsService;->queryStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats; HPLcom/android/server/usage/StorageStatsService;->translate(Landroid/content/pm/PackageStats;)Landroid/app/usage/StorageStats; HSPLcom/android/server/usage/StorageStatsService;->updateConfig()V PLcom/android/server/usage/UnixCalendar;-><init>(J)V @@ -43099,7 +44082,7 @@ PLcom/android/server/usage/UsageStatsDatabase;->checkVersionAndBuildLocked()V PLcom/android/server/usage/UsageStatsDatabase;->checkinDailyFiles(Lcom/android/server/usage/UsageStatsDatabase$CheckinAction;)Z PLcom/android/server/usage/UsageStatsDatabase;->dump(Lcom/android/internal/util/IndentingPrintWriter;Z)V HPLcom/android/server/usage/UsageStatsDatabase;->dumpMappings(Lcom/android/internal/util/IndentingPrintWriter;)V -HPLcom/android/server/usage/UsageStatsDatabase;->filterStats(Lcom/android/server/usage/IntervalStats;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Ljava/lang/Long;Ljava/lang/Long; +HPLcom/android/server/usage/UsageStatsDatabase;->filterStats(Lcom/android/server/usage/IntervalStats;)V+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Long;Ljava/lang/Long; PLcom/android/server/usage/UsageStatsDatabase;->findBestFitBucket(JJ)I PLcom/android/server/usage/UsageStatsDatabase;->getBackupPayload(Ljava/lang/String;)[B PLcom/android/server/usage/UsageStatsDatabase;->getBackupPayload(Ljava/lang/String;I)[B @@ -43112,7 +44095,7 @@ PLcom/android/server/usage/UsageStatsDatabase;->obfuscateCurrentStats([Lcom/andr PLcom/android/server/usage/UsageStatsDatabase;->onPackageRemoved(Ljava/lang/String;J)I PLcom/android/server/usage/UsageStatsDatabase;->onTimeChanged(J)V PLcom/android/server/usage/UsageStatsDatabase;->parseBeginTime(Landroid/util/AtomicFile;)J -HPLcom/android/server/usage/UsageStatsDatabase;->parseBeginTime(Ljava/io/File;)J +HPLcom/android/server/usage/UsageStatsDatabase;->parseBeginTime(Ljava/io/File;)J+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/File;Ljava/io/File; PLcom/android/server/usage/UsageStatsDatabase;->prune(J)V HPLcom/android/server/usage/UsageStatsDatabase;->pruneChooserCountsOlderThan(Ljava/io/File;J)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/io/File;Ljava/io/File;]Lcom/android/server/usage/UsageStatsDatabase;Lcom/android/server/usage/UsageStatsDatabase; PLcom/android/server/usage/UsageStatsDatabase;->pruneFilesOlderThan(Ljava/io/File;J)V @@ -43161,7 +44144,7 @@ HPLcom/android/server/usage/UsageStatsProtoV2;->read(Ljava/io/InputStream;Lcom/a PLcom/android/server/usage/UsageStatsProtoV2;->readObfuscatedData(Ljava/io/InputStream;Lcom/android/server/usage/PackagesTokenData;)V PLcom/android/server/usage/UsageStatsProtoV2;->readPendingEvents(Ljava/io/InputStream;Ljava/util/LinkedList;)V HPLcom/android/server/usage/UsageStatsProtoV2;->write(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;)V+]Landroid/app/usage/EventList;Landroid/app/usage/EventList;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/res/Configuration;Landroid/content/res/Configuration; -HPLcom/android/server/usage/UsageStatsProtoV2;->writeChooserCounts(Landroid/util/proto/ProtoOutputStream;Landroid/app/usage/UsageStats;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream; +HPLcom/android/server/usage/UsageStatsProtoV2;->writeChooserCounts(Landroid/util/proto/ProtoOutputStream;Landroid/app/usage/UsageStats;)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/proto/ProtoOutputStream;Landroid/util/proto/ProtoOutputStream;]Landroid/util/SparseArray;Landroid/util/SparseArray; HPLcom/android/server/usage/UsageStatsProtoV2;->writeConfigStats(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/ConfigurationStats;Z)V PLcom/android/server/usage/UsageStatsProtoV2;->writeCountAndTime(Landroid/util/proto/ProtoOutputStream;JIJ)V HPLcom/android/server/usage/UsageStatsProtoV2;->writeCountsForAction(Landroid/util/proto/ProtoOutputStream;Landroid/util/SparseIntArray;)V @@ -43297,12 +44280,12 @@ HSPLcom/android/server/usage/UsageStatsService;-><init>(Landroid/content/Context HSPLcom/android/server/usage/UsageStatsService;-><init>(Landroid/content/Context;Lcom/android/server/usage/UsageStatsService$Injector;)V PLcom/android/server/usage/UsageStatsService;->calculateEstimatedPackageLaunchTime(ILjava/lang/String;)J PLcom/android/server/usage/UsageStatsService;->calculateNextLaunchTime(ZJ)J -HPLcom/android/server/usage/UsageStatsService;->convertToSystemTimeLocked(Landroid/app/usage/UsageEvents$Event;)V +HPLcom/android/server/usage/UsageStatsService;->convertToSystemTimeLocked(Landroid/app/usage/UsageEvents$Event;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; PLcom/android/server/usage/UsageStatsService;->deleteLegacyUserDir(I)V PLcom/android/server/usage/UsageStatsService;->deleteRecursively(Ljava/io/File;)V HPLcom/android/server/usage/UsageStatsService;->dump([Ljava/lang/String;Ljava/io/PrintWriter;)V PLcom/android/server/usage/UsageStatsService;->flushToDisk()V -PLcom/android/server/usage/UsageStatsService;->flushToDiskLocked()V +HPLcom/android/server/usage/UsageStatsService;->flushToDiskLocked()V HSPLcom/android/server/usage/UsageStatsService;->getDpmInternal()Landroid/app/admin/DevicePolicyManagerInternal; PLcom/android/server/usage/UsageStatsService;->getEstimatedPackageLaunchTime(ILjava/lang/String;)J PLcom/android/server/usage/UsageStatsService;->getInstalledPackages(I)Ljava/util/HashMap; @@ -43339,7 +44322,7 @@ PLcom/android/server/usage/UsageStatsService;->registerAppUsageObserver(II[Ljava HSPLcom/android/server/usage/UsageStatsService;->registerLaunchTimeChangedListener(Landroid/app/usage/UsageStatsManagerInternal$EstimatedLaunchTimeChangedListener;)V HSPLcom/android/server/usage/UsageStatsService;->registerListener(Landroid/app/usage/UsageStatsManagerInternal$UsageEventListener;)V PLcom/android/server/usage/UsageStatsService;->registerUsageSessionObserver(II[Ljava/lang/String;JJLandroid/app/PendingIntent;Landroid/app/PendingIntent;I)V -HPLcom/android/server/usage/UsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;I)V+]Landroid/app/usage/UsageStatsManagerInternal$UsageEventListener;Lcom/android/server/usage/AppStandbyController;,Lcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda5;,Lcom/android/server/tare/InternalResourceService$3;,Lcom/android/server/job/controllers/QuotaController$UsageEventTracker;,Lcom/android/server/tare/InternalResourceService$2;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService;]Ljava/util/Map;Landroid/util/ArrayMap;]Lcom/android/server/usage/UserUsageStatsService;Lcom/android/server/usage/UserUsageStatsService;]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/usage/AppTimeLimitController;Lcom/android/server/usage/AppTimeLimitController;]Landroid/os/Handler;Lcom/android/server/usage/UsageStatsService$H; +HPLcom/android/server/usage/UsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;I)V+]Landroid/app/usage/UsageStatsManagerInternal$UsageEventListener;Lcom/android/server/usage/AppStandbyController;,Lcom/android/server/apphibernation/AppHibernationService$$ExternalSyntheticLambda5;,Lcom/android/server/tare/InternalResourceService$3;,Lcom/android/server/job/controllers/QuotaController$UsageEventTracker;,Lcom/android/server/tare/InternalResourceService$2;]Landroid/os/Handler;Lcom/android/server/usage/UsageStatsService$H;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/server/usage/AppStandbyInternal;Lcom/android/server/usage/AppStandbyController;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService;]Ljava/util/Map;Landroid/util/ArrayMap;]Lcom/android/server/usage/UserUsageStatsService;Lcom/android/server/usage/UserUsageStatsService;]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet;]Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;]Lcom/android/server/usage/AppTimeLimitController;Lcom/android/server/usage/AppTimeLimitController; HSPLcom/android/server/usage/UsageStatsService;->reportEventOrAddToQueue(ILandroid/app/usage/UsageEvents$Event;)V+]Landroid/os/Handler;Lcom/android/server/usage/UsageStatsService$H;]Landroid/os/Message;Landroid/os/Message;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Ljava/util/concurrent/CopyOnWriteArraySet;Ljava/util/concurrent/CopyOnWriteArraySet; PLcom/android/server/usage/UsageStatsService;->reportEventToAllUserId(Landroid/app/usage/UsageEvents$Event;)V HPLcom/android/server/usage/UsageStatsService;->sameApp(IILjava/lang/String;)Z @@ -43409,7 +44392,7 @@ HPLcom/android/server/usage/UserUsageStatsService;->notifyStatsChanged()V PLcom/android/server/usage/UserUsageStatsService;->onPackageRemoved(Ljava/lang/String;J)I PLcom/android/server/usage/UserUsageStatsService;->onTimeChanged(JJ)V HPLcom/android/server/usage/UserUsageStatsService;->persistActiveStats()V -HPLcom/android/server/usage/UserUsageStatsService;->printEvent(Lcom/android/internal/util/IndentingPrintWriter;Landroid/app/usage/UsageEvents$Event;Z)V+]Ljava/io/PrintWriter;Lcom/android/internal/util/IndentingPrintWriter;]Landroid/app/usage/UsageEvents$Event;Landroid/app/usage/UsageEvents$Event;]Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/internal/util/IndentingPrintWriter; +HPLcom/android/server/usage/UserUsageStatsService;->printEvent(Lcom/android/internal/util/IndentingPrintWriter;Landroid/app/usage/UsageEvents$Event;Z)V+]Landroid/app/usage/UsageEvents$Event;Landroid/app/usage/UsageEvents$Event;]Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/internal/util/IndentingPrintWriter;]Ljava/io/PrintWriter;Lcom/android/internal/util/IndentingPrintWriter; PLcom/android/server/usage/UserUsageStatsService;->printEventAggregation(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Lcom/android/server/usage/IntervalStats$EventTracker;Z)V HPLcom/android/server/usage/UserUsageStatsService;->printIntervalStats(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usage/IntervalStats;ZZLjava/util/List;)V PLcom/android/server/usage/UserUsageStatsService;->printLast24HrEvents(Lcom/android/internal/util/IndentingPrintWriter;ZLjava/util/List;)V @@ -43908,7 +44891,7 @@ HSPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->$r8$lambda$d9iiClPv HSPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;-><clinit>()V HSPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;-><init>()V HSPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->lambda$static$0(Landroid/util/Pair;Landroid/util/Pair;)I+]Ljava/lang/Long;Ljava/lang/Long; -HSPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->removeKey(Ljava/lang/Object;)Z+]Ljava/util/AbstractCollection;Lcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;]Ljava/lang/Object;Ljava/lang/String;,Lcom/android/server/job/controllers/JobStatus;,Lcom/android/server/tare/Agent$Package; +HSPLcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;->removeKey(Ljava/lang/Object;)Z+]Ljava/util/AbstractCollection;Lcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;]Ljava/lang/Object;Lcom/android/server/job/controllers/JobStatus;,Lcom/android/server/tare/Agent$Package;,Ljava/lang/String; HSPLcom/android/server/utils/AlarmQueue$Injector;-><init>()V HSPLcom/android/server/utils/AlarmQueue$Injector;->getElapsedRealtime()J PLcom/android/server/utils/AlarmQueue;->$r8$lambda$NyKargXRbTFquP-qpLWZaXHgX5Q(Lcom/android/server/utils/AlarmQueue;)V @@ -43926,7 +44909,7 @@ HSPLcom/android/server/utils/AlarmQueue;->addAlarm(Ljava/lang/Object;J)V+]Ljava/ PLcom/android/server/utils/AlarmQueue;->dump(Landroid/util/IndentingPrintWriter;)V HPLcom/android/server/utils/AlarmQueue;->lambda$setNextAlarmLocked$0()V HPLcom/android/server/utils/AlarmQueue;->onAlarm()V -HSPLcom/android/server/utils/AlarmQueue;->removeAlarmForKey(Ljava/lang/Object;)V+]Lcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;Lcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;]Lcom/android/server/utils/AlarmQueue;Lcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue;,Lcom/android/server/job/controllers/PrefetchController$ThresholdAlarmListener;,Lcom/android/server/tare/Agent$BalanceThresholdAlarmQueue;,Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue;,Lcom/android/server/usage/UsageStatsService$LaunchTimeAlarmQueue; +HSPLcom/android/server/utils/AlarmQueue;->removeAlarmForKey(Ljava/lang/Object;)V+]Lcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;Lcom/android/server/utils/AlarmQueue$AlarmPriorityQueue;]Lcom/android/server/utils/AlarmQueue;Lcom/android/server/job/controllers/FlexibilityController$FlexibilityAlarmQueue;,Lcom/android/server/job/controllers/QuotaController$InQuotaAlarmQueue;,Lcom/android/server/tare/Agent$BalanceThresholdAlarmQueue;,Lcom/android/server/usage/UsageStatsService$LaunchTimeAlarmQueue;,Lcom/android/server/job/controllers/PrefetchController$ThresholdAlarmListener; PLcom/android/server/utils/AlarmQueue;->removeAlarmsIf(Ljava/util/function/Predicate;)V PLcom/android/server/utils/AlarmQueue;->removeAllAlarms()V HSPLcom/android/server/utils/AlarmQueue;->setNextAlarmLocked()V @@ -44012,7 +44995,7 @@ HSPLcom/android/server/utils/WatchedArrayMap;->entrySet()Ljava/util/Set; HSPLcom/android/server/utils/WatchedArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; HPLcom/android/server/utils/WatchedArrayMap;->isEmpty()Z HSPLcom/android/server/utils/WatchedArrayMap;->keyAt(I)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; -PLcom/android/server/utils/WatchedArrayMap;->keySet()Ljava/util/Set; +HSPLcom/android/server/utils/WatchedArrayMap;->keySet()Ljava/util/Set; HSPLcom/android/server/utils/WatchedArrayMap;->onChanged()V HSPLcom/android/server/utils/WatchedArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLcom/android/server/utils/WatchedArrayMap;->putAll(Ljava/util/Map;)V @@ -44158,7 +45141,7 @@ HSPLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda2;- PLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLcom/android/server/utils/quota/CountQuotaTracker$$ExternalSyntheticLambda3;-><init>(J)V HSPLcom/android/server/utils/quota/CountQuotaTracker$CqtHandler;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;Landroid/os/Looper;)V -PLcom/android/server/utils/quota/CountQuotaTracker$CqtHandler;->handleMessage(Landroid/os/Message;)V +HPLcom/android/server/utils/quota/CountQuotaTracker$CqtHandler;->handleMessage(Landroid/os/Message;)V HSPLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;->-$$Nest$fgetmMaxPeriodMs(Lcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;)J HSPLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;->-$$Nest$mupdateMaxPeriod(Lcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;)V HSPLcom/android/server/utils/quota/CountQuotaTracker$DeleteEventTimesFunctor;-><init>(Lcom/android/server/utils/quota/CountQuotaTracker;)V @@ -44213,7 +45196,7 @@ PLcom/android/server/utils/quota/MultiRateLimiter;->isWithinQuotaLocked(ILjava/l PLcom/android/server/utils/quota/MultiRateLimiter;->noteEvent(ILjava/lang/String;Ljava/lang/String;)V PLcom/android/server/utils/quota/MultiRateLimiter;->noteEventLocked(ILjava/lang/String;Ljava/lang/String;)V HPLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda0;->run()V -PLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/utils/quota/QuotaTracker;IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;)V +HPLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/utils/quota/QuotaTracker;IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;)V HSPLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda1;->run()V HSPLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/utils/quota/QuotaTracker;)V HSPLcom/android/server/utils/quota/QuotaTracker$$ExternalSyntheticLambda2;->run()V @@ -44559,7 +45542,7 @@ PLcom/android/server/vcn/VcnNetworkProvider;->registerListener(Lcom/android/serv PLcom/android/server/vcn/VcnNetworkProvider;->resendAllRequests(Lcom/android/server/vcn/VcnNetworkProvider$NetworkRequestListener;)V PLcom/android/server/vcn/VcnNetworkProvider;->unregisterListener(Lcom/android/server/vcn/VcnNetworkProvider$NetworkRequestListener;)V PLcom/android/server/vcn/routeselection/NetworkPriorityClassifier;-><clinit>()V -PLcom/android/server/vcn/routeselection/NetworkPriorityClassifier;->calculatePriorityClass(Lcom/android/server/vcn/VcnContext;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Ljava/util/List;Landroid/os/ParcelUuid;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Lcom/android/server/vcn/util/PersistableBundleUtils$PersistableBundleWrapper;)I +HPLcom/android/server/vcn/routeselection/NetworkPriorityClassifier;->calculatePriorityClass(Lcom/android/server/vcn/VcnContext;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Ljava/util/List;Landroid/os/ParcelUuid;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Lcom/android/server/vcn/util/PersistableBundleUtils$PersistableBundleWrapper;)I HPLcom/android/server/vcn/routeselection/NetworkPriorityClassifier;->checkMatchesCellPriorityRule(Lcom/android/server/vcn/VcnContext;Landroid/net/vcn/VcnCellUnderlyingNetworkTemplate;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Landroid/os/ParcelUuid;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;)Z HPLcom/android/server/vcn/routeselection/NetworkPriorityClassifier;->checkMatchesPriorityRule(Lcom/android/server/vcn/VcnContext;Landroid/net/vcn/VcnUnderlyingNetworkTemplate;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Landroid/os/ParcelUuid;Lcom/android/server/vcn/TelephonySubscriptionTracker$TelephonySubscriptionSnapshot;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Lcom/android/server/vcn/util/PersistableBundleUtils$PersistableBundleWrapper;)Z PLcom/android/server/vcn/routeselection/NetworkPriorityClassifier;->checkMatchesWifiPriorityRule(Landroid/net/vcn/VcnWifiUnderlyingNetworkTemplate;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Lcom/android/server/vcn/routeselection/UnderlyingNetworkRecord;Lcom/android/server/vcn/util/PersistableBundleUtils$PersistableBundleWrapper;)Z @@ -44712,7 +45695,7 @@ HPLcom/android/server/vibrator/StartSequentialEffectStep;-><init>(Lcom/android/s HPLcom/android/server/vibrator/StartSequentialEffectStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;Landroid/os/CombinedVibration$Sequential;)V PLcom/android/server/vibrator/StartSequentialEffectStep;->cancel()Ljava/util/List; HPLcom/android/server/vibrator/StartSequentialEffectStep;->createEffectToVibratorMapping(Landroid/os/CombinedVibration;)Lcom/android/server/vibrator/StartSequentialEffectStep$DeviceEffectMap; -PLcom/android/server/vibrator/StartSequentialEffectStep;->getVibratorOnDuration()J +HPLcom/android/server/vibrator/StartSequentialEffectStep;->getVibratorOnDuration()J HPLcom/android/server/vibrator/StartSequentialEffectStep;->nextStep()Lcom/android/server/vibrator/Step; HPLcom/android/server/vibrator/StartSequentialEffectStep;->play()Ljava/util/List; HPLcom/android/server/vibrator/StartSequentialEffectStep;->startVibrating(Lcom/android/server/vibrator/AbstractVibratorStep;Ljava/util/List;)J @@ -44728,9 +45711,9 @@ PLcom/android/server/vibrator/Step;->isCleanUp()Z HSPLcom/android/server/vibrator/StepToRampAdapter;-><init>()V PLcom/android/server/vibrator/StepToRampAdapter;->apply(Ljava/util/List;ILandroid/os/VibratorInfo;)I HPLcom/android/server/vibrator/StepToRampAdapter;->apply(Ljava/util/List;ILjava/lang/Object;)I -PLcom/android/server/vibrator/StepToRampAdapter;->convertStepsToRamps(Landroid/os/VibratorInfo;Ljava/util/List;)V +HPLcom/android/server/vibrator/StepToRampAdapter;->convertStepsToRamps(Landroid/os/VibratorInfo;Ljava/util/List;)V PLcom/android/server/vibrator/StepToRampAdapter;->isStep(Landroid/os/vibrator/VibrationEffectSegment;)Z -PLcom/android/server/vibrator/StepToRampAdapter;->splitLongRampSegments(Landroid/os/VibratorInfo;Ljava/util/List;I)I +HPLcom/android/server/vibrator/StepToRampAdapter;->splitLongRampSegments(Landroid/os/VibratorInfo;Ljava/util/List;I)I HPLcom/android/server/vibrator/TurnOffVibratorStep;-><init>(Lcom/android/server/vibrator/VibrationStepConductor;JLcom/android/server/vibrator/VibratorController;)V PLcom/android/server/vibrator/TurnOffVibratorStep;->cancel()Ljava/util/List; PLcom/android/server/vibrator/TurnOffVibratorStep;->isCleanUp()Z @@ -44759,9 +45742,10 @@ HPLcom/android/server/vibrator/Vibration;->stats()Lcom/android/server/vibrator/V HPLcom/android/server/vibrator/Vibration;->transformCombinedEffect(Landroid/os/CombinedVibration;Ljava/util/function/Function;)Landroid/os/CombinedVibration; HPLcom/android/server/vibrator/Vibration;->updateEffects(Ljava/util/function/Function;)V PLcom/android/server/vibrator/Vibration;->waitForEnd()V -HPLcom/android/server/vibrator/VibrationEffectAdapters;->apply(Landroid/os/VibrationEffect;Ljava/util/List;Ljava/lang/Object;)Landroid/os/VibrationEffect;+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Lcom/android/server/vibrator/VibrationEffectAdapters$SegmentsAdapter;Lcom/android/server/vibrator/StepToRampAdapter;,Lcom/android/server/vibrator/RampDownAdapter;,Lcom/android/server/vibrator/RampToStepAdapter;,Lcom/android/server/vibrator/ClippingAmplitudeAndFrequencyAdapter;]Landroid/os/VibrationEffect$Composed;Landroid/os/VibrationEffect$Composed; +HPLcom/android/server/vibrator/VibrationEffectAdapters;->apply(Landroid/os/VibrationEffect;Ljava/util/List;Ljava/lang/Object;)Landroid/os/VibrationEffect;+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Lcom/android/server/vibrator/VibrationEffectAdapters$SegmentsAdapter;Lcom/android/server/vibrator/RampDownAdapter;,Lcom/android/server/vibrator/StepToRampAdapter;,Lcom/android/server/vibrator/RampToStepAdapter;,Lcom/android/server/vibrator/ClippingAmplitudeAndFrequencyAdapter;]Landroid/os/VibrationEffect$Composed;Landroid/os/VibrationEffect$Composed; HSPLcom/android/server/vibrator/VibrationScaler$ScaleLevel;-><init>(F)V HSPLcom/android/server/vibrator/VibrationScaler;-><init>(Landroid/content/Context;Lcom/android/server/vibrator/VibrationSettings;)V +PLcom/android/server/vibrator/VibrationScaler;->getExternalVibrationScale(I)I PLcom/android/server/vibrator/VibrationScaler;->intensityToEffectStrength(I)I HPLcom/android/server/vibrator/VibrationScaler;->scale(Landroid/os/VibrationEffect;I)Landroid/os/VibrationEffect; HSPLcom/android/server/vibrator/VibrationSettings$1;-><init>(Lcom/android/server/vibrator/VibrationSettings;)V @@ -44827,9 +45811,9 @@ HPLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmStartUptimeMillis(L HPLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibrationCompositionTotalSize(Lcom/android/server/vibrator/VibrationStats;)I PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibrationPwleTotalSize(Lcom/android/server/vibrator/VibrationStats;)I PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorComposeCount(Lcom/android/server/vibrator/VibrationStats;)I -PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorComposePwleCount(Lcom/android/server/vibrator/VibrationStats;)I +HPLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorComposePwleCount(Lcom/android/server/vibrator/VibrationStats;)I HPLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorEffectsUsed(Lcom/android/server/vibrator/VibrationStats;)Landroid/util/SparseBooleanArray; -PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorOffCount(Lcom/android/server/vibrator/VibrationStats;)I +HPLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorOffCount(Lcom/android/server/vibrator/VibrationStats;)I PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorOnCount(Lcom/android/server/vibrator/VibrationStats;)I PLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorOnTotalDurationMillis(Lcom/android/server/vibrator/VibrationStats;)I HPLcom/android/server/vibrator/VibrationStats;->-$$Nest$fgetmVibratorPerformCount(Lcom/android/server/vibrator/VibrationStats;)I @@ -44841,7 +45825,9 @@ PLcom/android/server/vibrator/VibrationStats;->getCreateTimeDebug()J PLcom/android/server/vibrator/VibrationStats;->getCreateUptimeMillis()J HPLcom/android/server/vibrator/VibrationStats;->getDurationDebug()J HPLcom/android/server/vibrator/VibrationStats;->getEndTimeDebug()J +PLcom/android/server/vibrator/VibrationStats;->getEndUptimeMillis()J HPLcom/android/server/vibrator/VibrationStats;->getStartTimeDebug()J +PLcom/android/server/vibrator/VibrationStats;->getStartUptimeMillis()J HPLcom/android/server/vibrator/VibrationStats;->hasEnded()Z HPLcom/android/server/vibrator/VibrationStats;->hasStarted()Z PLcom/android/server/vibrator/VibrationStats;->reportComposePrimitives(J[Landroid/os/vibrator/PrimitiveSegment;)V @@ -44850,6 +45836,7 @@ PLcom/android/server/vibrator/VibrationStats;->reportInterruptedAnotherVibration HPLcom/android/server/vibrator/VibrationStats;->reportPerformEffect(JLandroid/os/vibrator/PrebakedSegment;)V PLcom/android/server/vibrator/VibrationStats;->reportRepetition(I)V HPLcom/android/server/vibrator/VibrationStats;->reportSetAmplitude()V +PLcom/android/server/vibrator/VibrationStats;->reportSetExternalControl()V HPLcom/android/server/vibrator/VibrationStats;->reportStarted()V HPLcom/android/server/vibrator/VibrationStats;->reportVibratorOff()V PLcom/android/server/vibrator/VibrationStats;->reportVibratorOn(J)V @@ -44895,6 +45882,7 @@ HSPLcom/android/server/vibrator/VibratorController;-><init>(ILcom/android/server HSPLcom/android/server/vibrator/VibratorController;-><init>(ILcom/android/server/vibrator/VibratorController$OnVibrationCompleteListener;Lcom/android/server/vibrator/VibratorController$NativeWrapper;)V HPLcom/android/server/vibrator/VibratorController;->getCurrentAmplitude()F HSPLcom/android/server/vibrator/VibratorController;->getVibratorInfo()Landroid/os/VibratorInfo; +PLcom/android/server/vibrator/VibratorController;->hasCapability(J)Z HSPLcom/android/server/vibrator/VibratorController;->notifyListenerOnVibrating(Z)V HSPLcom/android/server/vibrator/VibratorController;->off()V PLcom/android/server/vibrator/VibratorController;->on(JJ)J @@ -44931,7 +45919,19 @@ HPLcom/android/server/vibrator/VibratorManagerService$$ExternalSyntheticLambda3; HSPLcom/android/server/vibrator/VibratorManagerService$1;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V HPLcom/android/server/vibrator/VibratorManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V PLcom/android/server/vibrator/VibratorManagerService$2;-><clinit>()V +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;-><init>(Lcom/android/server/vibrator/VibratorManagerService;Landroid/os/ExternalVibration;)V +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;-><init>(Lcom/android/server/vibrator/VibratorManagerService;Landroid/os/ExternalVibration;Lcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder-IA;)V +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;->end(Lcom/android/server/vibrator/Vibration$EndInfo;)V +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;->getDebugInfo()Lcom/android/server/vibrator/Vibration$DebugInfo; +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;->getStatsInfo(J)Lcom/android/server/vibrator/VibrationStats$StatsInfo; +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;->isHoldingSameVibration(Landroid/os/ExternalVibration;)Z +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;->linkToDeath()V +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;->mute()V +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;->unlinkToDeath()V HSPLcom/android/server/vibrator/VibratorManagerService$ExternalVibratorService;-><init>(Lcom/android/server/vibrator/VibratorManagerService;)V +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibratorService;->hasExternalControlCapability()Z +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibratorService;->onExternalVibrationStart(Landroid/os/ExternalVibration;)I +PLcom/android/server/vibrator/VibratorManagerService$ExternalVibratorService;->onExternalVibrationStop(Landroid/os/ExternalVibration;)V HSPLcom/android/server/vibrator/VibratorManagerService$Injector;-><init>()V HSPLcom/android/server/vibrator/VibratorManagerService$Injector;->addService(Ljava/lang/String;Landroid/os/IBinder;)V HSPLcom/android/server/vibrator/VibratorManagerService$Injector;->createHandler(Landroid/os/Looper;)Landroid/os/Handler; @@ -44958,6 +45958,7 @@ HPLcom/android/server/vibrator/VibratorManagerService$VibrationThreadCallbacks;- HSPLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;-><init>(I)V HPLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;->dumpText(Ljava/io/PrintWriter;)V HPLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;->record(Lcom/android/server/vibrator/Vibration;)V +PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;->record(Lcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;)V HPLcom/android/server/vibrator/VibratorManagerService$VibratorManagerRecords;->record(Ljava/util/LinkedList;Lcom/android/server/vibrator/Vibration$DebugInfo;)V PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand$CommonOptions;-><init>(Lcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;)V PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;-><init>(Lcom/android/server/vibrator/VibratorManagerService;Landroid/os/IBinder;)V @@ -44970,15 +45971,23 @@ PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand PLcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand;->runVibrate(Lcom/android/server/vibrator/VibratorManagerService$VibratorManagerShellCommand$CommonOptions;Landroid/os/CombinedVibration;)V HPLcom/android/server/vibrator/VibratorManagerService;->$r8$lambda$wJdO-Sibb0a5uXlg9zKLWGjMyFU(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/Vibration;Landroid/os/VibrationEffect;)Landroid/os/VibrationEffect; HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmBatteryStatsService(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/internal/app/IBatteryStats; +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmCurrentExternalVibration(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder; HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmCurrentVibration(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibrationStepConductor; HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmFrameworkStatsLogger(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibratorFrameworkStatsLogger; HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmLock(Lcom/android/server/vibrator/VibratorManagerService;)Ljava/lang/Object; HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmNextVibration(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibrationStepConductor; +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmVibrationScaler(Lcom/android/server/vibrator/VibratorManagerService;)Lcom/android/server/vibrator/VibrationScaler; +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fgetmVibrators(Lcom/android/server/vibrator/VibratorManagerService;)Landroid/util/SparseArray; +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fputmCurrentExternalVibration(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;)V PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fputmCurrentVibration(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/VibrationStepConductor;)V PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$fputmNextVibration(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/VibrationStepConductor;)V +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mendExternalVibrateLocked(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/Vibration$EndInfo;Z)V +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mfixupVibrationAttributes(Lcom/android/server/vibrator/VibratorManagerService;Landroid/os/VibrationAttributes;Landroid/os/CombinedVibration;)Landroid/os/VibrationAttributes; HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$monVibrationComplete(Lcom/android/server/vibrator/VibratorManagerService;IJ)V HPLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mreportFinishedVibrationLocked(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/Vibration$EndInfo;)V +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$msetExternalControl(Lcom/android/server/vibrator/VibratorManagerService;ZLcom/android/server/vibrator/VibrationStats;)V PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mshouldCancelOnScreenOffLocked(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/VibrationStepConductor;)Z +PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mshouldIgnoreVibrationLocked(Lcom/android/server/vibrator/VibratorManagerService;IILjava/lang/String;Landroid/os/VibrationAttributes;)Lcom/android/server/vibrator/Vibration$Status; PLcom/android/server/vibrator/VibratorManagerService;->-$$Nest$mstartVibrationOnThreadLocked(Lcom/android/server/vibrator/VibratorManagerService;Lcom/android/server/vibrator/VibrationStepConductor;)Lcom/android/server/vibrator/Vibration$Status; HSPLcom/android/server/vibrator/VibratorManagerService;-><clinit>()V HSPLcom/android/server/vibrator/VibratorManagerService;-><init>(Landroid/content/Context;Lcom/android/server/vibrator/VibratorManagerService$Injector;)V @@ -44987,6 +45996,8 @@ HPLcom/android/server/vibrator/VibratorManagerService;->checkAppOpModeLocked(ILj PLcom/android/server/vibrator/VibratorManagerService;->clearNextVibrationLocked(Lcom/android/server/vibrator/Vibration$EndInfo;)V PLcom/android/server/vibrator/VibratorManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V PLcom/android/server/vibrator/VibratorManagerService;->dumpText(Ljava/io/PrintWriter;)V +PLcom/android/server/vibrator/VibratorManagerService;->endExternalVibrateLocked(Lcom/android/server/vibrator/Vibration$EndInfo;Z)V +PLcom/android/server/vibrator/VibratorManagerService;->endVibrationAndWriteStatsLocked(Lcom/android/server/vibrator/VibratorManagerService$ExternalVibrationHolder;Lcom/android/server/vibrator/Vibration$EndInfo;)V HPLcom/android/server/vibrator/VibratorManagerService;->endVibrationLocked(Lcom/android/server/vibrator/Vibration;Lcom/android/server/vibrator/Vibration$EndInfo;Z)V HPLcom/android/server/vibrator/VibratorManagerService;->enforceUpdateAppOpsStatsPermission(I)V HPLcom/android/server/vibrator/VibratorManagerService;->fillVibrationFallbacks(Lcom/android/server/vibrator/Vibration;Landroid/os/CombinedVibration;)V @@ -45004,6 +46015,7 @@ HPLcom/android/server/vibrator/VibratorManagerService;->logVibrationStatus(ILand PLcom/android/server/vibrator/VibratorManagerService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V HPLcom/android/server/vibrator/VibratorManagerService;->onVibrationComplete(IJ)V HPLcom/android/server/vibrator/VibratorManagerService;->reportFinishedVibrationLocked(Lcom/android/server/vibrator/Vibration$EndInfo;)V +PLcom/android/server/vibrator/VibratorManagerService;->setExternalControl(ZLcom/android/server/vibrator/VibrationStats;)V PLcom/android/server/vibrator/VibratorManagerService;->shouldCancelOnScreenOffLocked(Lcom/android/server/vibrator/VibrationStepConductor;)Z PLcom/android/server/vibrator/VibratorManagerService;->shouldCancelVibration(Landroid/os/VibrationAttributes;I)Z PLcom/android/server/vibrator/VibratorManagerService;->shouldCancelVibration(Lcom/android/server/vibrator/Vibration;ILandroid/os/IBinder;)Z @@ -45020,7 +46032,7 @@ HSPLcom/android/server/voiceinteraction/DatabaseHelper;-><init>(Landroid/content PLcom/android/server/voiceinteraction/DatabaseHelper;->dump(Ljava/io/PrintWriter;)V PLcom/android/server/voiceinteraction/DatabaseHelper;->getArrayForCommaSeparatedString(Ljava/lang/String;)[I PLcom/android/server/voiceinteraction/DatabaseHelper;->getCommaSeparatedString([I)Ljava/lang/String; -PLcom/android/server/voiceinteraction/DatabaseHelper;->getKeyphraseSoundModel(IILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel; +HPLcom/android/server/voiceinteraction/DatabaseHelper;->getKeyphraseSoundModel(IILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel; PLcom/android/server/voiceinteraction/DatabaseHelper;->getKeyphraseSoundModel(Ljava/lang/String;ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel; HPLcom/android/server/voiceinteraction/DatabaseHelper;->getValidKeyphraseSoundModelForUser(Ljava/lang/String;I)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel; PLcom/android/server/voiceinteraction/DatabaseHelper;->updateKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)Z @@ -45028,6 +46040,7 @@ PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCal PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;->onError(I)V PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;->onKeyphraseDetected(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;->onRecognitionPaused()V +PLcom/android/server/voiceinteraction/HotwordDetectionConnection$SoundTriggerCallback;->onRecognitionResumed()V PLcom/android/server/voiceinteraction/HotwordMetricsLogger;->getKeyphraseMetricsDetectorType(I)I PLcom/android/server/voiceinteraction/HotwordMetricsLogger;->writeKeyphraseTriggerEvent(II)V HSPLcom/android/server/voiceinteraction/RecognitionServiceInfo;-><init>(Landroid/content/pm/ServiceInfo;ZLjava/lang/String;)V @@ -45041,12 +46054,15 @@ PLcom/android/server/voiceinteraction/SoundTriggerSessionBinderProxy;->stopRecog HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$1;->getPackages(I)[Ljava/lang/String; HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$2;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V -HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$2;->notifyActivityEventChanged()V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$2;->notifyActivityDestroyed(Landroid/os/IBinder;)V +HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->asBinder()Landroid/os/IBinder; +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->onSetUiHints(Landroid/os/Bundle;)V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->onVoiceSessionHidden()V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->onVoiceSessionShown()V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$3;->onVoiceSessionWindowVisibilityChanged(Z)V HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$LocalService;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$LocalService;->getHotwordDetectionServiceIdentity()Landroid/service/voice/VoiceInteractionManagerInternal$HotwordDetectionServiceIdentity; -PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda1;-><init>(Z)V -PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V -HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)V HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$$ExternalSyntheticLambda3;->runOrThrow()V HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z @@ -45059,11 +46075,11 @@ HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInte PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->-$$Nest$munloadKeyphraseModel(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;I)I PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Lcom/android/server/soundtrigger/SoundTriggerInternal$Session;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->getDspModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties; -PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->startRecognition(ILjava/lang/String;Lcom/android/internal/app/IHotwordRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;Z)I +HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->startRecognition(ILjava/lang/String;Lcom/android/internal/app/IHotwordRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;Z)I PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->stopRecognition(ILcom/android/internal/app/IHotwordRecognitionStatusCallback;)I PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SoundTriggerSession;->unloadKeyphraseModel(I)I -HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->$r8$lambda$fpb_fMBpynqG9JJC4fyAcWxxxx4(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)V -PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->$r8$lambda$xcnOavICZYJcKQUjfT2nuerZrSE(ZLcom/android/internal/app/IVoiceInteractionSessionListener;)V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->$r8$lambda$WZiVThVpdEcCS5nV1h_GuciYpRI(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Landroid/os/IBinder;I)V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->$r8$lambda$scUHdkzPFh2l0vlZaeKudybbjTY(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Landroid/os/IBinder;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->-$$Nest$fgetmCurUser(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)I PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->-$$Nest$mcreateSoundTriggerCallbackLocked(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Lcom/android/internal/app/IHotwordRecognitionStatusCallback;)Landroid/hardware/soundtrigger/IRecognitionStatusCallback; PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->-$$Nest$menforceCallingPermission(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Ljava/lang/String;)V @@ -45093,13 +46109,14 @@ HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInte HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initForUserNoTracing(I)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->isCallerCurrentVoiceInteractionService()Z PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->isCallerHoldingPermission(Ljava/lang/String;)Z -HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->lambda$notifyActivityEventChanged$1()V -PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->lambda$setSessionWindowVisible$3(ZLcom/android/internal/app/IVoiceInteractionSessionListener;)V -HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->notifyActivityEventChanged()V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->lambda$notifyActivityDestroyed$1(Landroid/os/IBinder;)V +HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->lambda$notifyActivityEventChanged$3(Landroid/os/IBinder;I)V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->notifyActivityDestroyed(Landroid/os/IBinder;)V +HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->notifyActivityEventChanged(Landroid/os/IBinder;I)V HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onLockscreenShown()V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onSessionHidden()V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onSessionShown()V -PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z +HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->queryInteractorServices(ILjava/lang/String;)Ljava/util/List; PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->registerVoiceInteractionSessionListener(Lcom/android/internal/app/IVoiceInteractionSessionListener;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->requestDirectActions(Landroid/os/IBinder;ILandroid/os/IBinder;Landroid/os/RemoteCallback;Landroid/os/RemoteCallback;)V @@ -45113,6 +46130,7 @@ HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInte PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSession(Landroid/os/Bundle;ILjava/lang/String;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSessionForActiveService(Landroid/os/Bundle;ILjava/lang/String;Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;ILjava/lang/String;)Z +PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->startAssistantActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;)I PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeeded(Z)V HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededLocked(Z)V HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededNoTracingLocked(Z)V @@ -45144,7 +46162,8 @@ PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->dumpL PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->finishLocked(Landroid/os/IBinder;Z)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->grantImplicitAccessLocked(ILandroid/content/Intent;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->hideSessionLocked()Z -PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->notifyActivityEventChangedLocked()V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->notifyActivityDestroyedLocked(Landroid/os/IBinder;)V +HPLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->notifyActivityEventChangedLocked(Landroid/os/IBinder;I)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->notifySoundModelsChangedLocked()V PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->onSessionHidden(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->onSessionShown(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V @@ -45154,6 +46173,7 @@ PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->sessi PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->setDisabledShowContextLocked(II)V PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->showSessionLocked(Landroid/os/Bundle;ILjava/lang/String;Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->shutdownLocked()V +PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->startAssistantActivityLocked(Ljava/lang/String;IILandroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->startLocked()V PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V @@ -45176,7 +46196,8 @@ PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->delive PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->doHandleAssistWithoutData(Ljava/util/List;)V PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->getUserDisabledShowContextLocked()I PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->hideLocked()Z -PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->notifyActivityEventChangedLocked()V +PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->notifyActivityDestroyedLocked(Landroid/os/IBinder;)V +PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->notifyActivityEventChangedLocked(Landroid/os/IBinder;I)V PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->notifyPendingShowCallbacksShownLocked()V PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistDataReceivedLocked(Landroid/os/Bundle;II)V PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistScreenshotReceivedLocked(Landroid/graphics/Bitmap;)V @@ -45204,6 +46225,9 @@ PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda0 PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda11;-><init>(IILandroid/os/Bundle;)V PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;)V +PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V +PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z +PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V HSPLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda16;->run()V @@ -45216,6 +46240,7 @@ PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda3 PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda3;->run()V HSPLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V HSPLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V +PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda5;-><init>()V PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda6;-><init>(F)V PLcom/android/server/wallpaper/WallpaperManagerService$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V @@ -45271,6 +46296,7 @@ PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->-$$ HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->-$$Nest$fgetmDisplayConnector(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Landroid/util/SparseArray; PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->-$$Nest$fgetmResetRunnable(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Ljava/lang/Runnable; PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->-$$Nest$fgetmTryToRebindRunnable(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Ljava/lang/Runnable; +PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->-$$Nest$mappendConnectorWithCondition(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Ljava/util/function/Predicate;)V HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Landroid/app/WallpaperInfo;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->appendConnectorWithCondition(Ljava/util/function/Predicate;)V PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->attachEngine(Landroid/service/wallpaper/IWallpaperEngine;I)V @@ -45288,6 +46314,8 @@ PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onL HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;I)V +PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->scheduleTimeoutLocked()V +PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->tryToRebind()V PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;->-$$Nest$fgetcallbacks(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)Landroid/os/RemoteCallbackList; HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;-><init>(ILjava/io/File;Ljava/lang/String;Ljava/lang/String;)V HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;->cropExists()Z @@ -45306,6 +46334,7 @@ PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$PB8HQYD7nW6P HSPLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$Q9GhwFn81wk9BhO2RUp1b0p59Z4(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$eXseyg29Sx3xx44xwCK_OaQo1Zk(Lcom/android/server/wallpaper/WallpaperManagerService;ILjava/lang/Integer;Ljava/lang/String;)V PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$goLxRCGNDIeR06R7mRH-z2VYVgw(Ljava/io/PrintWriter;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;)V +PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$mA7kKKd1glWr0OhCFHWeDownLZQ(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Landroid/view/Display;)Z PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$njhH9VpAVhlztqpItitCw5e21YE(FLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V PLcom/android/server/wallpaper/WallpaperManagerService;->$r8$lambda$zZr95QrOsk_M7UK7CK6d3vi8AU4(Lcom/android/server/wallpaper/WallpaperManagerService;Ljava/lang/String;)Ljava/lang/Boolean; HSPLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmContext(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/content/Context; @@ -45320,10 +46349,12 @@ HSPLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmWallpape HSPLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fgetmWindowManagerInternal(Lcom/android/server/wallpaper/WallpaperManagerService;)Lcom/android/server/wm/WindowManagerInternal; PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$fputmShuttingDown(Lcom/android/server/wallpaper/WallpaperManagerService;Z)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mattachServiceLocked(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V +PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mclearWallpaperComponentLocked(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mgetDisplayDataOrCreate(Lcom/android/server/wallpaper/WallpaperManagerService;I)Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData; PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mnotifyCallbacksLocked(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mnotifyLockWallpaperChanged(Lcom/android/server/wallpaper/WallpaperManagerService;)V PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mnotifyWallpaperChanged(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V +PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$mnotifyWallpaperColorsChangedOnDisplay(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;II)V PLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$monDisplayReadyInternal(Lcom/android/server/wallpaper/WallpaperManagerService;I)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->-$$Nest$msupportsMultiDisplay(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Z HSPLcom/android/server/wallpaper/WallpaperManagerService;-><clinit>()V @@ -45331,7 +46362,9 @@ HSPLcom/android/server/wallpaper/WallpaperManagerService;-><init>(Landroid/conte PLcom/android/server/wallpaper/WallpaperManagerService;->addOnLocalColorsChangedListener(Landroid/app/ILocalWallpaperColorConsumer;Ljava/util/List;III)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->attachServiceLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->bindWallpaperComponentLocked(Landroid/content/ComponentName;ZZLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Landroid/os/IRemoteCallback;)Z +PLcom/android/server/wallpaper/WallpaperManagerService;->changingToSame(Landroid/content/ComponentName;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)Z PLcom/android/server/wallpaper/WallpaperManagerService;->checkPermission(Ljava/lang/String;)V +PLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaperComponentLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->clearWallpaperLocked(ZIILandroid/os/IRemoteCallback;)V PLcom/android/server/wallpaper/WallpaperManagerService;->detachWallpaperLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V PLcom/android/server/wallpaper/WallpaperManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V @@ -45380,6 +46413,7 @@ PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$onUnlockUser$6(I PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$setWallpaper$11(Ljava/lang/String;)Ljava/lang/Boolean; PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$setWallpaperDimAmountForUid$10(FLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->lambda$switchUser$7(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V +PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$updateFallbackConnection$3(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Landroid/view/Display;)Z HSPLcom/android/server/wallpaper/WallpaperManagerService;->loadSettingsLocked(IZ)V HPLcom/android/server/wallpaper/WallpaperManagerService;->lockScreenWallpaperExists()Z HSPLcom/android/server/wallpaper/WallpaperManagerService;->makeJournaledFile(I)Lcom/android/internal/util/JournaledFile; @@ -45401,6 +46435,7 @@ HSPLcom/android/server/wallpaper/WallpaperManagerService;->parseWallpaperAttribu PLcom/android/server/wallpaper/WallpaperManagerService;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V PLcom/android/server/wallpaper/WallpaperManagerService;->removeOnLocalColorsChangedListener(Landroid/app/ILocalWallpaperColorConsumer;Ljava/util/List;III)V HSPLcom/android/server/wallpaper/WallpaperManagerService;->saveSettingsLocked(I)V +PLcom/android/server/wallpaper/WallpaperManagerService;->setDimensionHints(IILjava/lang/String;I)V HPLcom/android/server/wallpaper/WallpaperManagerService;->setInAmbientMode(ZJ)V PLcom/android/server/wallpaper/WallpaperManagerService;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z PLcom/android/server/wallpaper/WallpaperManagerService;->setWallpaper(Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;ZLandroid/os/Bundle;ILandroid/app/IWallpaperManagerCallback;I)Landroid/os/ParcelFileDescriptor; @@ -45616,7 +46651,6 @@ PLcom/android/server/wm/ActivityClientController;->isTopOfTask(Landroid/os/IBind PLcom/android/server/wm/ActivityClientController;->lambda$finishActivityAffinity$0(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/ActivityClientController;->lambda$finishSubActivity$1(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;ILcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityClientController;->moveActivityTaskToBack(Landroid/os/IBinder;Z)Z -PLcom/android/server/wm/ActivityClientController;->navigateUpTo(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/Intent;)Z PLcom/android/server/wm/ActivityClientController;->onBackPressedOnTaskRoot(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V HSPLcom/android/server/wm/ActivityClientController;->onSystemReady()V HPLcom/android/server/wm/ActivityClientController;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z @@ -45647,14 +46681,14 @@ PLcom/android/server/wm/ActivityMetricsLaunchObserver;->onIntentFailed(J)V HSPLcom/android/server/wm/ActivityMetricsLaunchObserver;->onIntentStarted(Landroid/content/Intent;J)V PLcom/android/server/wm/ActivityMetricsLaunchObserver;->onReportFullyDrawn(JJ)V PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda0;-><init>()V -PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda1;->run()V PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda2;->run()V HPLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;JJILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;ZII)V HPLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda3;->run()V -PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V +HPLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda4;->run()V PLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda5;-><init>(JLcom/android/server/wm/ActivityRecord;Ljava/lang/Object;Lcom/android/server/wm/WindowManagerService;I)V HPLcom/android/server/wm/ActivityMetricsLogger$$ExternalSyntheticLambda5;->run()V @@ -45763,6 +46797,7 @@ PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda12;->test(Ljava/l PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda15;-><init>()V PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda15;->test(Ljava/lang/Object;)Z HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda16;->run()V HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda18;-><init>()V HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda19;-><init>()V @@ -45774,23 +46809,15 @@ HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda20;->accept(Ljav PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda21;-><init>()V PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda21;->apply(Ljava/lang/Object;)Z PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda22;-><init>()V -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda22;->apply(Ljava/lang/Object;)Z -HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda22;->apply(Ljava/lang/Object;)Z +PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda23;-><init>()V HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda23;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda24;-><init>()V PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda24;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda25;-><init>()V -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda25;->accept(Ljava/lang/Object;)V -HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/wm/ActivityRecord;)V -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda26;->applyAppSaturation([F[F)V -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda27;-><init>()V -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda27;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/wm/ActivityRecord;[F[F)V -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda29;->run()V +PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda27;->applyAppSaturation([F[F)V PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda2;-><init>()V PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Z -HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda30;-><init>(Landroid/content/Context;)V -HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda30;->get()Ljava/lang/Object; HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda3;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda4;-><init>()V @@ -45798,7 +46825,7 @@ HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda4;->accept(Ljava PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda7;-><init>()V HSPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda9;-><init>()V -PLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/ActivityRecord$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/ActivityRecord$1;-><init>(Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityRecord$1;->run()V HSPLcom/android/server/wm/ActivityRecord$2;-><init>(Lcom/android/server/wm/ActivityRecord;)V @@ -45883,12 +46910,13 @@ HSPLcom/android/server/wm/ActivityRecord;->applyOptionsAnimation(Landroid/app/Ac HPLcom/android/server/wm/ActivityRecord;->areBoundsLetterboxed()Z HSPLcom/android/server/wm/ActivityRecord;->asActivityRecord()Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/ActivityRecord;->attachCrossProfileAppsThumbnailAnimation()V -PLcom/android/server/wm/ActivityRecord;->attachStartingWindow(Lcom/android/server/wm/WindowState;)V +HPLcom/android/server/wm/ActivityRecord;->attachStartingWindow(Lcom/android/server/wm/WindowState;)V HSPLcom/android/server/wm/ActivityRecord;->attachedToProcess()Z HSPLcom/android/server/wm/ActivityRecord;->canBeLaunchedOnDisplay(I)Z HSPLcom/android/server/wm/ActivityRecord;->canBeTopRunning()Z+]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/ActivityRecord;->canCustomizeAppTransition()Z HPLcom/android/server/wm/ActivityRecord;->canForceResizeNonResizable(I)Z +PLcom/android/server/wm/ActivityRecord;->canLaunchAssistActivity(Ljava/lang/String;)Z PLcom/android/server/wm/ActivityRecord;->canLaunchHomeActivity(ILcom/android/server/wm/ActivityRecord;)Z HSPLcom/android/server/wm/ActivityRecord;->canReceiveKeys()Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/ActivityRecord;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; HSPLcom/android/server/wm/ActivityRecord;->canResumeByCompat()Z @@ -45990,7 +47018,7 @@ PLcom/android/server/wm/ActivityRecord;->getPid()I HSPLcom/android/server/wm/ActivityRecord;->getProcessGlobalConfiguration()Landroid/content/res/Configuration; PLcom/android/server/wm/ActivityRecord;->getProcessName()Ljava/lang/String; PLcom/android/server/wm/ActivityRecord;->getProtoFieldId()J -PLcom/android/server/wm/ActivityRecord;->getRemoteAnimationDefinition()Landroid/view/RemoteAnimationDefinition; +HPLcom/android/server/wm/ActivityRecord;->getRemoteAnimationDefinition()Landroid/view/RemoteAnimationDefinition; HPLcom/android/server/wm/ActivityRecord;->getRequestedOrientation()I HSPLcom/android/server/wm/ActivityRecord;->getRootTask()Lcom/android/server/wm/Task;+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task; PLcom/android/server/wm/ActivityRecord;->getRootTask(Landroid/os/IBinder;)Lcom/android/server/wm/Task; @@ -46080,7 +47108,7 @@ HSPLcom/android/server/wm/ActivityRecord;->isUid(I)Z HSPLcom/android/server/wm/ActivityRecord;->isVisible()Z HSPLcom/android/server/wm/ActivityRecord;->isVisibleRequested()Z HSPLcom/android/server/wm/ActivityRecord;->isWaitingForTransitionStart()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/wm/AppTransition;Lcom/android/server/wm/AppTransition; -PLcom/android/server/wm/ActivityRecord;->lambda$hasNonDefaultColorWindow$11(Lcom/android/server/wm/WindowState;)Z +HPLcom/android/server/wm/ActivityRecord;->lambda$hasNonDefaultColorWindow$11(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/ActivityRecord;->lambda$makeFinishingLocked$9(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/ActivityRecord;->lambda$moveFocusableActivityToTop$7(Lcom/android/server/wm/Task;)Z PLcom/android/server/wm/ActivityRecord;->lambda$new$1([F[F)V @@ -46088,8 +47116,8 @@ PLcom/android/server/wm/ActivityRecord;->lambda$new$2([F[F)V PLcom/android/server/wm/ActivityRecord;->lambda$onAnimationFinished$19(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/ActivityRecord;->lambda$onWindowsVisible$16(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/ActivityRecord;->lambda$postApplyAnimation$13(Lcom/android/server/wm/WindowState;)V -PLcom/android/server/wm/ActivityRecord;->lambda$setVisibility$12(Lcom/android/server/wm/WindowState;)V -PLcom/android/server/wm/ActivityRecord;->lambda$showAllWindowsLocked$17(Lcom/android/server/wm/WindowState;)V +HPLcom/android/server/wm/ActivityRecord;->lambda$setVisibility$12(Lcom/android/server/wm/WindowState;)V +HPLcom/android/server/wm/ActivityRecord;->lambda$showAllWindowsLocked$17(Lcom/android/server/wm/WindowState;)V HSPLcom/android/server/wm/ActivityRecord;->lambda$showStartingWindow$18(Lcom/android/server/wm/ActivityRecord;)Z HSPLcom/android/server/wm/ActivityRecord;->lambda$transferStartingWindowFromHiddenAboveTokenIfNeeded$10(Lcom/android/server/wm/ActivityRecord;)Z HSPLcom/android/server/wm/ActivityRecord;->lambda$updateEnterpriseThumbnailDrawable$0(Landroid/content/Context;)Landroid/graphics/drawable/Drawable; @@ -46139,7 +47167,7 @@ HSPLcom/android/server/wm/ActivityRecord;->providesMaxBounds()Z HPLcom/android/server/wm/ActivityRecord;->providesOrientation()Z PLcom/android/server/wm/ActivityRecord;->registerRemoteAnimations(Landroid/view/RemoteAnimationDefinition;)V HPLcom/android/server/wm/ActivityRecord;->relaunchActivityLocked(Z)V -PLcom/android/server/wm/ActivityRecord;->removeChild(Lcom/android/server/wm/WindowContainer;)V +HPLcom/android/server/wm/ActivityRecord;->removeChild(Lcom/android/server/wm/WindowContainer;)V HPLcom/android/server/wm/ActivityRecord;->removeChild(Lcom/android/server/wm/WindowState;)V HPLcom/android/server/wm/ActivityRecord;->removeDeadWindows()V HPLcom/android/server/wm/ActivityRecord;->removeDestroyTimeout()V @@ -46215,7 +47243,7 @@ HPLcom/android/server/wm/ActivityRecord;->shouldApplyAnimation(Z)Z HSPLcom/android/server/wm/ActivityRecord;->shouldBeResumed(Lcom/android/server/wm/ActivityRecord;)Z HPLcom/android/server/wm/ActivityRecord;->shouldBeVisible()Z HPLcom/android/server/wm/ActivityRecord;->shouldBeVisible(ZZ)Z -HSPLcom/android/server/wm/ActivityRecord;->shouldBeVisibleUnchecked()Z+]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityTaskSupervisor;]Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/KeyguardController;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +HSPLcom/android/server/wm/ActivityRecord;->shouldBeVisibleUnchecked()Z+]Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityTaskSupervisor;]Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/KeyguardController;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task; HSPLcom/android/server/wm/ActivityRecord;->shouldCreateCompatDisplayInsets()Z PLcom/android/server/wm/ActivityRecord;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z HSPLcom/android/server/wm/ActivityRecord;->shouldMakeActive(Lcom/android/server/wm/ActivityRecord;)Z @@ -46411,40 +47439,17 @@ PLcom/android/server/wm/ActivityTaskManagerInternal$ActivityTokens;->getApplicat PLcom/android/server/wm/ActivityTaskManagerInternal$ActivityTokens;->getAssistToken()Landroid/os/IBinder; PLcom/android/server/wm/ActivityTaskManagerInternal$ActivityTokens;->getUid()I HSPLcom/android/server/wm/ActivityTaskManagerInternal;-><init>()V -HSPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda0;-><init>()V -HSPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda10;-><init>(Landroid/app/ActivityManagerInternal;)V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda10;->run()V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZLcom/android/server/wm/ActivityRecord;)V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda11;->run()V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda12;->run()V +HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda10;->run()V HSPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda13;-><init>()V HSPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda14;-><init>()V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda15;-><init>()V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda17;->run()V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda18;->run()V PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda19;->run()V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/app/PictureInPictureParams;Lcom/android/server/wm/Transition;)V PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda1;->run()V -HSPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda3;-><init>()V PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda4;-><init>()V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;I)V -PLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda6;->run()V HSPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda7;-><init>()V -HSPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;)V HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda8;->run()V -HPLcom/android/server/wm/ActivityTaskManagerService$$ExternalSyntheticLambda9;-><init>()V HSPLcom/android/server/wm/ActivityTaskManagerService$1;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V PLcom/android/server/wm/ActivityTaskManagerService$1;->run()V HSPLcom/android/server/wm/ActivityTaskManagerService$H;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/Looper;)V @@ -46544,6 +47549,7 @@ PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->writeProcesses PLcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/os/Bundle;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;I)V PLcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;->run()V HSPLcom/android/server/wm/ActivityTaskManagerService$SettingObserver;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V +PLcom/android/server/wm/ActivityTaskManagerService$SettingObserver;->onChange(ZLjava/util/Collection;II)V HSPLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirerImpl;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;)V HPLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirerImpl;->acquire(I)V HSPLcom/android/server/wm/ActivityTaskManagerService$SleepTokenAcquirerImpl;->release(I)V @@ -46557,6 +47563,7 @@ PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$Wo7cwHpAhxbLZvIb PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$hKrVQsydb0Q0-eBb5nrvE1ED2Kg(Lcom/android/server/wm/ActivityTaskManagerService;Z)V PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$jUyRSTTbV7R48fMYbKlQDGoimpo(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$rKCL1ast5ZX_TVmBC_uUARa5EsQ(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/app/PictureInPictureParams;Lcom/android/server/wm/Transition;)V +PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$uDPnzqVuuoVSFA7RJcXFWsrCwrY(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/res/Configuration;)V PLcom/android/server/wm/ActivityTaskManagerService;->$r8$lambda$w5QxaM0ZgajVFVEi-3ehuP27yBw(Lcom/android/server/wm/ActivityTaskManagerService;)V HSPLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fgetmActivityInterceptorCallbacks(Lcom/android/server/wm/ActivityTaskManagerService;)Landroid/util/SparseArray; PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$fgetmAppSwitchesState(Lcom/android/server/wm/ActivityTaskManagerService;)I @@ -46576,6 +47583,7 @@ PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mpendingAssistExtra HSPLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mstart(Lcom/android/server/wm/ActivityTaskManagerService;)V PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mstartActivityAsUser(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mupdateEventDispatchingLocked(Lcom/android/server/wm/ActivityTaskManagerService;Z)V +PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mupdateFontScaleIfNeeded(Lcom/android/server/wm/ActivityTaskManagerService;I)V PLcom/android/server/wm/ActivityTaskManagerService;->-$$Nest$mwriteSleepStateToProto(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/util/proto/ProtoOutputStream;IZ)V HSPLcom/android/server/wm/ActivityTaskManagerService;-><init>(Landroid/content/Context;)V HSPLcom/android/server/wm/ActivityTaskManagerService;->addWindowLayoutReasons(I)V @@ -46592,7 +47600,6 @@ HSPLcom/android/server/wm/ActivityTaskManagerService;->checkPermission(Ljava/lan HSPLcom/android/server/wm/ActivityTaskManagerService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V PLcom/android/server/wm/ActivityTaskManagerService;->collectGrants(Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/uri/NeededUriGrants; HSPLcom/android/server/wm/ActivityTaskManagerService;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo; -HPLcom/android/server/wm/ActivityTaskManagerService;->constructResumedTraceName(Ljava/lang/String;)Ljava/lang/String; HSPLcom/android/server/wm/ActivityTaskManagerService;->continueWindowLayout()V HSPLcom/android/server/wm/ActivityTaskManagerService;->createAppWarnings(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;Ljava/io/File;)Lcom/android/server/wm/AppWarnings; HSPLcom/android/server/wm/ActivityTaskManagerService;->createTaskSupervisor()Lcom/android/server/wm/ActivityTaskSupervisor; @@ -46656,6 +47663,7 @@ HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskBounds(I)Landroid/g HSPLcom/android/server/wm/ActivityTaskManagerService;->getTaskChangeNotificationController()Lcom/android/server/wm/TaskChangeNotificationController; PLcom/android/server/wm/ActivityTaskManagerService;->getTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap; HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskSnapshot(IZZ)Landroid/window/TaskSnapshot; +PLcom/android/server/wm/ActivityTaskManagerService;->getTasks(I)Ljava/util/List; HPLcom/android/server/wm/ActivityTaskManagerService;->getTasks(IZZI)Ljava/util/List;+]Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskManagerService;]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer; HPLcom/android/server/wm/ActivityTaskManagerService;->getTopDisplayFocusedRootTask()Lcom/android/server/wm/Task; HSPLcom/android/server/wm/ActivityTaskManagerService;->getTransitionController()Lcom/android/server/wm/TransitionController; @@ -46695,7 +47703,7 @@ PLcom/android/server/wm/ActivityTaskManagerService;->lambda$enterPictureInPictur PLcom/android/server/wm/ActivityTaskManagerService;->lambda$keyguardGoingAway$4(ILcom/android/server/wm/DisplayContent;)V HPLcom/android/server/wm/ActivityTaskManagerService;->lambda$onScreenAwakeChanged$3(Z)V PLcom/android/server/wm/ActivityTaskManagerService;->lambda$postFinishBooting$8(ZZ)V -PLcom/android/server/wm/ActivityTaskManagerService;->lambda$scheduleAppGcsLocked$9()V +HPLcom/android/server/wm/ActivityTaskManagerService;->lambda$scheduleAppGcsLocked$9()V HPLcom/android/server/wm/ActivityTaskManagerService;->lambda$setLockScreenShown$1(ZZLcom/android/server/wm/DisplayContent;)V HPLcom/android/server/wm/ActivityTaskManagerService;->lambda$setLockScreenShown$2(Z)V PLcom/android/server/wm/ActivityTaskManagerService;->logAndRethrowRuntimeExceptionOnTransact(Ljava/lang/String;Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException; @@ -46728,6 +47736,7 @@ HSPLcom/android/server/wm/ActivityTaskManagerService;->resumeAppSwitches()V HSPLcom/android/server/wm/ActivityTaskManagerService;->retrieveSettings(Landroid/content/ContentResolver;)V PLcom/android/server/wm/ActivityTaskManagerService;->saveANRState(Ljava/lang/String;)V HPLcom/android/server/wm/ActivityTaskManagerService;->scheduleAppGcsLocked()V +PLcom/android/server/wm/ActivityTaskManagerService;->sendPutConfigurationForUserMsg(ILandroid/content/res/Configuration;)V PLcom/android/server/wm/ActivityTaskManagerService;->setBooted(Z)V PLcom/android/server/wm/ActivityTaskManagerService;->setBooting(Z)V HSPLcom/android/server/wm/ActivityTaskManagerService;->setDeviceOwnerUid(I)V @@ -46748,7 +47757,8 @@ PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroi HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I PLcom/android/server/wm/ActivityTaskManagerService;->startActivityFromRecents(ILandroid/os/Bundle;)I PLcom/android/server/wm/ActivityTaskManagerService;->startActivityIntentSender(Landroid/app/IApplicationThread;Landroid/content/IIntentSender;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I -HPLcom/android/server/wm/ActivityTaskManagerService;->startBackNavigation(ZLandroid/view/IWindowFocusObserver;)Landroid/window/BackNavigationInfo; +PLcom/android/server/wm/ActivityTaskManagerService;->startAssistantActivity(Ljava/lang/String;Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;I)I +PLcom/android/server/wm/ActivityTaskManagerService;->startBackNavigation(Landroid/view/IWindowFocusObserver;Landroid/window/BackAnimationAdapter;)Landroid/window/BackNavigationInfo; HSPLcom/android/server/wm/ActivityTaskManagerService;->startLaunchPowerMode(I)V HSPLcom/android/server/wm/ActivityTaskManagerService;->startProcessAsync(Lcom/android/server/wm/ActivityRecord;ZZLjava/lang/String;)V HPLcom/android/server/wm/ActivityTaskManagerService;->startRecentsActivity(Landroid/content/Intent;JLandroid/view/IRecentsAnimationRunner;)V @@ -46766,31 +47776,40 @@ HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z HPLcom/android/server/wm/ActivityTaskManagerService;->updateCpuStats()V PLcom/android/server/wm/ActivityTaskManagerService;->updateEventDispatchingLocked(Z)V +PLcom/android/server/wm/ActivityTaskManagerService;->updateFontScaleIfNeeded(I)V HSPLcom/android/server/wm/ActivityTaskManagerService;->updateGlobalConfigurationLocked(Landroid/content/res/Configuration;ZZI)I HSPLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskFeatures(II)V HSPLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskPackages(I[Ljava/lang/String;)V HPLcom/android/server/wm/ActivityTaskManagerService;->updateOomAdj()V +PLcom/android/server/wm/ActivityTaskManagerService;->updatePersistentConfiguration(Landroid/content/res/Configuration;I)V HPLcom/android/server/wm/ActivityTaskManagerService;->updatePreviousProcess(Lcom/android/server/wm/ActivityRecord;)V HPLcom/android/server/wm/ActivityTaskManagerService;->updateResumedAppTrace(Lcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/ActivityTaskManagerService;->updateShouldShowDialogsLocked(Landroid/content/res/Configuration;)V HSPLcom/android/server/wm/ActivityTaskManagerService;->updateSleepIfNeededLocked()V HPLcom/android/server/wm/ActivityTaskManagerService;->updateTopApp(Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityTaskManagerService;->writeSleepStateToProto(Landroid/util/proto/ProtoOutputStream;IZ)V +PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;)V +PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;)V PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda3;-><init>()V PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda4;-><init>()V PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda5;->run()V HPLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;)V -PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda6;->run()V +HPLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda6;->run()V +PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/ActivityTaskSupervisor$$ExternalSyntheticLambda7;->run()V HSPLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;-><init>(Lcom/android/server/wm/ActivityTaskSupervisor;Landroid/os/Looper;)V HPLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->activityIdleFromMessage(Lcom/android/server/wm/ActivityRecord;Z)V HSPLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->handleMessage(Landroid/os/Message;)V HSPLcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler;->handleMessageInner(Landroid/os/Message;)Z HSPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;-><init>()V -HSPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->accept(Lcom/android/server/wm/ActivityRecord;)V+]Landroid/app/TaskInfo;Landroid/app/ActivityManager$RecentTaskInfo;,Landroid/app/ActivityManager$RunningTaskInfo;,Landroid/app/ActivityTaskManager$RootTaskInfo; +HSPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->accept(Lcom/android/server/wm/ActivityRecord;)V+]Landroid/app/TaskInfo;Landroid/app/ActivityManager$RecentTaskInfo;,Landroid/app/ActivityTaskManager$RootTaskInfo;,Landroid/app/ActivityManager$RunningTaskInfo; HSPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->accept(Ljava/lang/Object;)V+]Lcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;Lcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper; HSPLcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;->fillAndReturnTop(Lcom/android/server/wm/Task;Landroid/app/TaskInfo;)Lcom/android/server/wm/ActivityRecord; +PLcom/android/server/wm/ActivityTaskSupervisor;->$r8$lambda$054QjcddAIz3hnkW4SO2T4RCN_g(Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/ActivityTaskSupervisor;->$r8$lambda$b3-9XepaxlLk1QZVzp3HuoyG09k(Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityTaskSupervisor;->$r8$lambda$lf2JOJBuJyLjbUPOQ4HN_8t2COs(Lcom/android/server/wm/ActivityTaskSupervisor;)V PLcom/android/server/wm/ActivityTaskSupervisor;->$r8$lambda$uwEunbsbpw4F3snu5W9yjMcNAvU(Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityTaskSupervisor;->-$$Nest$fgetmHandler(Lcom/android/server/wm/ActivityTaskSupervisor;)Lcom/android/server/wm/ActivityTaskSupervisor$ActivityTaskSupervisorHandler; @@ -46847,6 +47866,8 @@ HSPLcom/android/server/wm/ActivityTaskSupervisor;->isCallerAllowedToLaunchOnTask HSPLcom/android/server/wm/ActivityTaskSupervisor;->isRootVisibilityUpdateDeferred()Z HPLcom/android/server/wm/ActivityTaskSupervisor;->lambda$activityIdleInternal$2()V PLcom/android/server/wm/ActivityTaskSupervisor;->lambda$canPlaceEntityOnDisplay$0(Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/ActivityTaskSupervisor;->lambda$removeRootTask$4(Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/ActivityTaskSupervisor;->lambda$scheduleUpdatePictureInPictureModeIfNeeded$6(Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/ActivityTaskSupervisor;->logIfTransactionTooLarge(Landroid/content/Intent;Landroid/os/Bundle;)V PLcom/android/server/wm/ActivityTaskSupervisor;->moveHomeRootTaskToFrontIfNeeded(ILcom/android/server/wm/TaskDisplayArea;Ljava/lang/String;)V HSPLcom/android/server/wm/ActivityTaskSupervisor;->nextTaskIdForUser(II)I @@ -47192,24 +48213,24 @@ PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda1;-><in PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda1;->onResult(Landroid/os/Bundle;)V PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/Task;)V PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/WindowContainer;)V -PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowContainer;ILcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Z)V -PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda4;->onResult(Landroid/os/Bundle;)V +PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/WindowState;I)V +PLcom/android/server/wm/BackNavigationController$$ExternalSyntheticLambda3;->onResult(Landroid/os/Bundle;)V PLcom/android/server/wm/BackNavigationController;->$r8$lambda$73AhJykSm_dn368P6OZlEuWSnWI(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/BackNavigationController;->$r8$lambda$EXIXVUOzaBZ7guTHhwiWJbLdv0c(Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/WindowState;Landroid/os/Bundle;)V -PLcom/android/server/wm/BackNavigationController;->$r8$lambda$RJn89yY9UaZ8_15uRXtAYM29GBg(Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowContainer;ILcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;ZLandroid/os/Bundle;)V +PLcom/android/server/wm/BackNavigationController;->$r8$lambda$_BEk9TUOpvT_ajwFzoyL00U9VJA(Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/WindowState;ILandroid/os/Bundle;)V +HSPLcom/android/server/wm/BackNavigationController;-><clinit>()V HSPLcom/android/server/wm/BackNavigationController;-><init>()V -PLcom/android/server/wm/BackNavigationController;->createRemoteAnimationTargetLocked(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;Landroid/view/SurfaceControl;)Landroid/view/RemoteAnimationTarget; +HSPLcom/android/server/wm/BackNavigationController;->checkAnimationReady(Lcom/android/server/wm/WallpaperController;)V HSPLcom/android/server/wm/BackNavigationController;->isEnabled()Z PLcom/android/server/wm/BackNavigationController;->isScreenshotEnabled()Z +HPLcom/android/server/wm/BackNavigationController;->isWallpaperVisible(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/BackNavigationController;->lambda$startBackNavigation$0(Lcom/android/server/wm/WindowState;Landroid/os/Bundle;)V PLcom/android/server/wm/BackNavigationController;->lambda$startBackNavigation$1(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)Z -PLcom/android/server/wm/BackNavigationController;->lambda$startBackNavigation$3(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowContainer;ILcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;ZLandroid/os/Bundle;)V +PLcom/android/server/wm/BackNavigationController;->lambda$startBackNavigation$2(Lcom/android/server/wm/WindowState;ILandroid/os/Bundle;)V PLcom/android/server/wm/BackNavigationController;->needsScreenshot(I)Z -HPLcom/android/server/wm/BackNavigationController;->onBackNavigationDone(Landroid/os/Bundle;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowContainer;ILcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Z)V -HPLcom/android/server/wm/BackNavigationController;->resetSurfaces(Lcom/android/server/wm/WindowContainer;)V +HPLcom/android/server/wm/BackNavigationController;->onBackNavigationDone(Landroid/os/Bundle;Lcom/android/server/wm/WindowState;I)V HSPLcom/android/server/wm/BackNavigationController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V -HPLcom/android/server/wm/BackNavigationController;->startBackNavigation(ZLandroid/view/IWindowFocusObserver;)Landroid/window/BackNavigationInfo; +HPLcom/android/server/wm/BackNavigationController;->startBackNavigation(Landroid/view/IWindowFocusObserver;Landroid/window/BackAnimationAdapter;)Landroid/window/BackNavigationInfo; HSPLcom/android/server/wm/BackgroundActivityStartController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;)V HPLcom/android/server/wm/BackgroundActivityStartController;->isHomeApp(ILjava/lang/String;)Z HSPLcom/android/server/wm/BackgroundActivityStartController;->shouldAbortBackgroundActivityStart(IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;ZLandroid/content/Intent;Landroid/app/ActivityOptions;)Z @@ -47419,14 +48440,14 @@ HSPLcom/android/server/wm/DisplayArea;->findMinPositionForChildDisplayArea(Lcom/ HSPLcom/android/server/wm/DisplayArea;->findPositionForChildDisplayArea(ILcom/android/server/wm/DisplayArea;)I HSPLcom/android/server/wm/DisplayArea;->forAllDisplayAreas(Ljava/util/function/Consumer;)V HPLcom/android/server/wm/DisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Consumer;Z)V -HPLcom/android/server/wm/DisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Predicate;Z)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/DisplayArea$Dimmable; +HPLcom/android/server/wm/DisplayArea;->forAllTaskDisplayAreas(Ljava/util/function/Predicate;Z)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/DisplayArea$Dimmable; HSPLcom/android/server/wm/DisplayArea;->getDisplayArea()Lcom/android/server/wm/DisplayArea; HSPLcom/android/server/wm/DisplayArea;->getDisplayAreaInfo()Landroid/window/DisplayAreaInfo; HSPLcom/android/server/wm/DisplayArea;->getDisplayContent()Lcom/android/server/wm/DisplayContent; HSPLcom/android/server/wm/DisplayArea;->getIgnoreOrientationRequest()Z -HSPLcom/android/server/wm/DisplayArea;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;Z)Ljava/lang/Object;+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/DisplayArea$Dimmable; +HSPLcom/android/server/wm/DisplayArea;->getItemFromTaskDisplayAreas(Ljava/util/function/Function;Z)Ljava/lang/Object;+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea$Tokens;,Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/DisplayArea$Dimmable; HSPLcom/android/server/wm/DisplayArea;->getName()Ljava/lang/String; -HSPLcom/android/server/wm/DisplayArea;->getOrientation(I)I+]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/DisplayContent;,Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/DisplayArea$Dimmable; +HSPLcom/android/server/wm/DisplayArea;->getOrientation(I)I+]Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent;,Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/DisplayArea;,Lcom/android/server/wm/DisplayArea$Dimmable; HSPLcom/android/server/wm/DisplayArea;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction; PLcom/android/server/wm/DisplayArea;->getProtoFieldId()J HSPLcom/android/server/wm/DisplayArea;->getSurfaceControl()Landroid/view/SurfaceControl; @@ -47562,71 +48583,53 @@ HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda11;->accept(Lja HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/DisplayContent;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda13;-><init>(Lcom/android/server/wm/DisplayContent;)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda13;->compute(Ljava/lang/Object;I)Ljava/lang/Object; HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wm/DisplayContent;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda14;->compute(Ljava/lang/Object;I)Ljava/lang/Object; HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/wm/DisplayContent;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda15;->binderDied()V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/DisplayContent;)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/wm/DisplayContent;)V HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda18;-><init>(Lcom/android/server/wm/DisplayContent;)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda18;->apply(Ljava/lang/Object;)Z +HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda18;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/wm/DisplayContent;)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda20;-><init>(Lcom/android/server/wm/DisplayContent;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda21;-><init>(Lcom/android/server/wm/DisplayContent;)V -HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda21;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda22;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda23;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;Z)V HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;)V -HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda24;-><init>(Lcom/android/server/wm/RecentsAnimationController;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda24;->accept(Ljava/lang/Object;)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda25;-><init>()V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda25;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda27;-><init>([I)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda27;->accept(Ljava/lang/Object;)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda28;-><init>(Lcom/android/server/wm/RecentsAnimationController;Ljava/util/Set;Ljava/util/Set;Landroid/graphics/Matrix;[F)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Z -HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda29;-><init>()V +HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda28;->accept(Ljava/lang/Object;)V HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda2;-><init>(Landroid/os/IBinder;)V HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda2;->run()V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/wm/ActivityRecord;IZZ)V +HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda30;-><init>()V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda33;-><init>(I)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda33;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda32;->run()V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda34;-><init>(I)V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda34;->test(Ljava/lang/Object;)Z -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda35;-><init>(II)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda35;->apply(Ljava/lang/Object;)Ljava/lang/Object; -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda36;-><init>()V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda36;->test(Ljava/lang/Object;)Z -HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda38;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/util/SparseBooleanArray;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda38;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda39;-><init>()V +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda35;->test(Ljava/lang/Object;)Z +HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda37;-><init>()V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda3;-><init>()V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda3;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda40;->test(Ljava/lang/Object;)Z HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda41;-><init>()V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda41;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda43;-><init>(Z)V -HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda43;->apply(Ljava/lang/Object;)Ljava/lang/Object; -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda45;-><init>()V +HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda42;->apply(Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda46;-><init>()V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda46;->test(Ljava/lang/Object;Ljava/lang/Object;)Z -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda47;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda46;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda47;-><init>()V +HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda47;->test(Ljava/lang/Object;Ljava/lang/Object;)Z +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda48;-><init>(Landroid/view/SurfaceControl$Transaction;IIZ)V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda48;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda49;-><init>(Z)V +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda49;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/DisplayContent;)V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda50;-><init>(Lcom/android/server/wm/DisplayContent;III)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda50;->apply(Ljava/lang/Object;)Ljava/lang/Object; +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda50;-><init>(Lcom/android/server/wm/DisplayContent;II)V +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda51;-><init>(Lcom/android/server/wm/DisplayContent;III)V +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda51;->apply(Ljava/lang/Object;)Ljava/lang/Object; +PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda52;-><init>(Ljava/util/Set;)V HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda52;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda53;-><init>(Lcom/android/server/wm/DisplayContent;)V PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda53;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda55;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;[I)V -PLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda55;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda6;-><init>()V HSPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda6;->run()V HPLcom/android/server/wm/DisplayContent$$ExternalSyntheticLambda7;-><init>(I)V @@ -47677,27 +48680,18 @@ PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;->process( PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;->test(Lcom/android/server/wm/Task;)Z PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;->test(Ljava/lang/Object;)Z HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$5UiFMr-8hb8Tmgx5zvS7yA3YjlU(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)Z -PLcom/android/server/wm/DisplayContent;->$r8$lambda$7Q53mdryHEt99svKI4ffiPTuIgI(Lcom/android/server/wm/DisplayContent;)V -PLcom/android/server/wm/DisplayContent;->$r8$lambda$8Kvptcs8fzO-s8-eF-F_TKCnPHE(Landroid/view/SurfaceControl$Transaction;IIZLcom/android/server/wm/WindowState;)V -PLcom/android/server/wm/DisplayContent;->$r8$lambda$D0W4vmn_3wIxPUYyWuRYvWtMDwc(ILcom/android/server/wm/WindowState;)Z -HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$Emz9Ai_TS1bdu14l1ggDw5gI44M(IILcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/Task; -PLcom/android/server/wm/DisplayContent;->$r8$lambda$GMLaOHhNFqLwDUkF0weWXNQED58(Lcom/android/server/wm/Task;)Z -HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$GsqNsIDsYtnLfVvQ200RTMksCBc([ILcom/android/server/wm/Task;)V +PLcom/android/server/wm/DisplayContent;->$r8$lambda$EZPk6zC-r0NbtWQsXbFoav7vnZU(ILcom/android/server/wm/WindowState;)Z HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$Kk8EpGJGDafGLHbI1jJcpzVaiiQ(Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayCutout;I)Lcom/android/server/wm/utils/WmDisplayCutout; HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$OtLCIQFjCt9o-SYztyeDUcWUwGs(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V HPLcom/android/server/wm/DisplayContent;->$r8$lambda$QzFsokI_6PDJm4hVl5PqxqECsow(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)Z -HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$TMFCGaYNAEAsz1EWoG1lCIkC0Hk(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea;)V HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$X903lxiDNqeyc_JWryogdrh50Ms(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/DisplayContent;->$r8$lambda$XAnIdNYnP_NB8VXP6KO__2YM4XI(Lcom/android/server/wm/DisplayContent;)V HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$Zo2ftLMujZma5SLI7YLzy3fA25o(Lcom/android/server/wm/DisplayContent;Landroid/view/RoundedCorners;I)Landroid/view/RoundedCorners; HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$_i6dzXhmU95-y986kUMOJ-5ZiX0(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V -PLcom/android/server/wm/DisplayContent;->$r8$lambda$bO4HozOjFs5re1hOgqjPQUR0L5Y(Lcom/android/server/wm/DisplayContent;IIILcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/Task; HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$f4tTlChocR4giHzOfORjysIyw_g(Lcom/android/server/wm/DisplayContent;Landroid/view/PrivacyIndicatorBounds;I)Landroid/view/PrivacyIndicatorBounds; HPLcom/android/server/wm/DisplayContent;->$r8$lambda$hTCAdenqu6Gbm55-A8Gun4NZO3g(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$lidSdXJvZsl2IpwL0wu0aAbmXHE(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V -HPLcom/android/server/wm/DisplayContent;->$r8$lambda$vlT_w0NHIF8hzx2vXKTTcXKI41Y(ILcom/android/server/wm/Task;)Z HSPLcom/android/server/wm/DisplayContent;->$r8$lambda$z8mvbriy2mEdPKF5dYvL617CyWc(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowState;)V -PLcom/android/server/wm/DisplayContent;->$r8$lambda$zS-f-KHu0ewTTvUMbaHHAoPg16w(ZLcom/android/server/wm/WindowState;)V HSPLcom/android/server/wm/DisplayContent;->-$$Nest$fgetmFixedRotationLaunchingApp(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/DisplayContent;->-$$Nest$fgetmImeLayeringTarget(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/DisplayContent;-><init>(Landroid/view/Display;Lcom/android/server/wm/RootWindowContainer;)V @@ -47711,7 +48705,7 @@ HSPLcom/android/server/wm/DisplayContent;->amendWindowTapExcludeRegion(Landroid/ PLcom/android/server/wm/DisplayContent;->applyMagnificationSpec(Landroid/view/MagnificationSpec;)V PLcom/android/server/wm/DisplayContent;->applyRotation(II)V PLcom/android/server/wm/DisplayContent;->applyRotationAndFinishFixedRotation(II)V -HSPLcom/android/server/wm/DisplayContent;->applySurfaceChangesTransaction()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WallpaperController;]Ljava/util/AbstractCollection;Ljava/util/LinkedList;]Lcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;Lcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;]Lcom/android/server/wm/ImeInsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/WallpaperVisibilityListeners;Lcom/android/server/wm/WallpaperVisibilityListeners;]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +HSPLcom/android/server/wm/DisplayContent;->applySurfaceChangesTransaction()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WallpaperController;]Ljava/util/AbstractCollection;Ljava/util/LinkedList;]Lcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;Lcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;]Lcom/android/server/wm/ImeInsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Lcom/android/server/wm/WallpaperVisibilityListeners;Lcom/android/server/wm/WallpaperVisibilityListeners;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Landroid/hardware/display/DisplayManagerInternal;Lcom/android/server/display/DisplayManagerService$LocalService;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/DisplayContent;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V HSPLcom/android/server/wm/DisplayContent;->assignRelativeLayerForIme(Landroid/view/SurfaceControl$Transaction;Z)V PLcom/android/server/wm/DisplayContent;->assignRelativeLayerForImeTargetChild(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;)V @@ -47757,6 +48751,7 @@ HSPLcom/android/server/wm/DisplayContent;->findAreaForToken(Lcom/android/server/ HSPLcom/android/server/wm/DisplayContent;->findAreaForWindowType(ILandroid/os/Bundle;ZZ)Lcom/android/server/wm/DisplayArea; HSPLcom/android/server/wm/DisplayContent;->findFocusedWindow()Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/DisplayContent;->findFocusedWindowIfNeeded(I)Lcom/android/server/wm/WindowState; +PLcom/android/server/wm/DisplayContent;->findRoundedCornerOverlays()[Landroid/view/SurfaceControl; PLcom/android/server/wm/DisplayContent;->findScrollCaptureTargetWindow(Lcom/android/server/wm/WindowState;I)Lcom/android/server/wm/WindowState; PLcom/android/server/wm/DisplayContent;->findTaskForResizePoint(II)Lcom/android/server/wm/Task; PLcom/android/server/wm/DisplayContent;->finishAsyncRotation(Lcom/android/server/wm/WindowToken;)V @@ -47802,6 +48797,7 @@ PLcom/android/server/wm/DisplayContent;->getOverlayLayer()Landroid/view/SurfaceC HSPLcom/android/server/wm/DisplayContent;->getPinnedTaskController()Lcom/android/server/wm/PinnedTaskController; PLcom/android/server/wm/DisplayContent;->getPresentUIDs()Landroid/util/IntArray; PLcom/android/server/wm/DisplayContent;->getProtoFieldId()J +HSPLcom/android/server/wm/DisplayContent;->getRelativeDisplayRotation()I HPLcom/android/server/wm/DisplayContent;->getRootTask(I)Lcom/android/server/wm/Task; HSPLcom/android/server/wm/DisplayContent;->getRootTask(II)Lcom/android/server/wm/Task; HSPLcom/android/server/wm/DisplayContent;->getRootTaskCount()I @@ -47820,6 +48816,7 @@ HPLcom/android/server/wm/DisplayContent;->handleTopActivityLaunchingInDifferentO PLcom/android/server/wm/DisplayContent;->handleTopActivityLaunchingInDifferentOrientation(Lcom/android/server/wm/ActivityRecord;Z)Z HSPLcom/android/server/wm/DisplayContent;->handlesOrientationChangeFromDescendant()Z HSPLcom/android/server/wm/DisplayContent;->hasAccess(I)Z +PLcom/android/server/wm/DisplayContent;->hasAlertWindowSurfaces()Z PLcom/android/server/wm/DisplayContent;->hasSecureWindowOnScreen()Z PLcom/android/server/wm/DisplayContent;->hasTopFixedRotationLaunchingApp()Z HSPLcom/android/server/wm/DisplayContent;->inTransition()Z @@ -47828,8 +48825,9 @@ HPLcom/android/server/wm/DisplayContent;->isAodShowing()Z PLcom/android/server/wm/DisplayContent;->isFixedRotationLaunchingApp(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/DisplayContent;->isImeAttachedToApp()Z HSPLcom/android/server/wm/DisplayContent;->isImeControlledByApp()Z+]Lcom/android/server/wm/InputTarget;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow; +PLcom/android/server/wm/DisplayContent;->isInTouchMode()Z HPLcom/android/server/wm/DisplayContent;->isInputMethodClientFocus(II)Z -PLcom/android/server/wm/DisplayContent;->isKeyguardAlwaysUnlocked()Z +HPLcom/android/server/wm/DisplayContent;->isKeyguardAlwaysUnlocked()Z HSPLcom/android/server/wm/DisplayContent;->isKeyguardGoingAway()Z+]Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/KeyguardController;]Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityTaskSupervisor; HSPLcom/android/server/wm/DisplayContent;->isKeyguardLocked()Z PLcom/android/server/wm/DisplayContent;->isKeyguardOccluded()Z @@ -47844,14 +48842,7 @@ HSPLcom/android/server/wm/DisplayContent;->isSleeping()Z HSPLcom/android/server/wm/DisplayContent;->isTrusted()Z HPLcom/android/server/wm/DisplayContent;->isUidPresent(I)Z PLcom/android/server/wm/DisplayContent;->isVisible()Z -PLcom/android/server/wm/DisplayContent;->lambda$applyRotation$11(Landroid/view/SurfaceControl$Transaction;IIZLcom/android/server/wm/WindowState;)V -PLcom/android/server/wm/DisplayContent;->lambda$applyRotation$12(ZLcom/android/server/wm/WindowState;)V -PLcom/android/server/wm/DisplayContent;->lambda$canAddToastWindowForUid$24(ILcom/android/server/wm/WindowState;)Z -PLcom/android/server/wm/DisplayContent;->lambda$findTaskForResizePoint$19(IIILcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/Task; -HSPLcom/android/server/wm/DisplayContent;->lambda$getRootTask$13(IILcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/Task; -HPLcom/android/server/wm/DisplayContent;->lambda$getRootTask$14(ILcom/android/server/wm/Task;)Z -HSPLcom/android/server/wm/DisplayContent;->lambda$getRootTaskCount$15([ILcom/android/server/wm/Task;)V -PLcom/android/server/wm/DisplayContent;->lambda$getTopRootTask$16(Lcom/android/server/wm/Task;)Z +PLcom/android/server/wm/DisplayContent;->lambda$canAddToastWindowForUid$25(ILcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/DisplayContent;->lambda$new$0()V HSPLcom/android/server/wm/DisplayContent;->lambda$new$1(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; HPLcom/android/server/wm/DisplayContent;->lambda$new$2(Lcom/android/server/wm/WindowState;)V+]Landroid/os/Handler;Lcom/android/server/wm/WindowManagerService$H; @@ -47860,9 +48851,7 @@ HSPLcom/android/server/wm/DisplayContent;->lambda$new$4(Lcom/android/server/wm/W HSPLcom/android/server/wm/DisplayContent;->lambda$new$5(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent; HPLcom/android/server/wm/DisplayContent;->lambda$new$6(Lcom/android/server/wm/WindowState;)Z HSPLcom/android/server/wm/DisplayContent;->lambda$new$7(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent; -HSPLcom/android/server/wm/DisplayContent;->lambda$new$8(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WallpaperController;]Lcom/android/server/wm/WindowStateAnimator;Lcom/android/server/wm/WindowStateAnimator;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/policy/PhoneWindowManager;]Lcom/android/server/wm/RefreshRatePolicy;Lcom/android/server/wm/RefreshRatePolicy;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState; -PLcom/android/server/wm/DisplayContent;->lambda$startAsyncRotation$10()V -HSPLcom/android/server/wm/DisplayContent;->lambda$updateDisplayAreaOrganizers$17(Lcom/android/server/wm/DisplayArea;)V +HSPLcom/android/server/wm/DisplayContent;->lambda$new$8(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WallpaperController;]Lcom/android/server/wm/WindowStateAnimator;Lcom/android/server/wm/WindowStateAnimator;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/policy/PhoneWindowManager;]Lcom/android/server/wm/RefreshRatePolicy;Lcom/android/server/wm/RefreshRatePolicy;]Ljava/util/LinkedList;Ljava/util/LinkedList;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/DisplayContent;->layoutAndAssignWindowLayersIfNeeded()V HPLcom/android/server/wm/DisplayContent;->logsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;)Z HSPLcom/android/server/wm/DisplayContent;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder; @@ -47933,6 +48922,7 @@ PLcom/android/server/wm/DisplayContent;->setFixedRotationLaunchingApp(Lcom/andro PLcom/android/server/wm/DisplayContent;->setFixedRotationLaunchingAppUnchecked(Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/DisplayContent;->setFixedRotationLaunchingAppUnchecked(Lcom/android/server/wm/ActivityRecord;I)V HPLcom/android/server/wm/DisplayContent;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/DisplayContent;->setForcedDensity(II)V HSPLcom/android/server/wm/DisplayContent;->setIgnoreOrientationRequest(Z)Z HPLcom/android/server/wm/DisplayContent;->setImeInputTarget(Lcom/android/server/wm/InputTarget;)V PLcom/android/server/wm/DisplayContent;->setImeLayeringTarget(Lcom/android/server/wm/WindowState;)V @@ -47981,7 +48971,7 @@ HSPLcom/android/server/wm/DisplayContent;->updateRecording()V HSPLcom/android/server/wm/DisplayContent;->updateRotationUnchecked()Z HSPLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusion()Z+]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/view/ISystemGestureExclusionListener;Landroid/view/ISystemGestureExclusionListener$Stub$Proxy;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Landroid/os/RemoteCallbackList;Landroid/os/RemoteCallbackList; HSPLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusionLimit()V -HSPLcom/android/server/wm/DisplayContent;->updateTouchExcludeRegion()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DisplayContent;]Landroid/graphics/Region;Landroid/graphics/Region;]Lcom/android/server/wm/TaskTapPointerEventListener;Lcom/android/server/wm/TaskTapPointerEventListener;]Lcom/android/internal/util/function/pooled/PooledConsumer;Lcom/android/internal/util/function/pooled/PooledLambdaImpl;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Lcom/android/internal/util/function/pooled/PooledLambda;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; +HSPLcom/android/server/wm/DisplayContent;->updateTouchExcludeRegion()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DisplayContent;]Landroid/graphics/Region;Landroid/graphics/Region;]Lcom/android/server/wm/TaskTapPointerEventListener;Lcom/android/server/wm/TaskTapPointerEventListener;]Lcom/android/internal/util/function/pooled/PooledConsumer;Lcom/android/internal/util/function/pooled/PooledLambdaImpl;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Lcom/android/internal/util/function/pooled/PooledLambda;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; HSPLcom/android/server/wm/DisplayContent;->updateWindowsForAnimator()V HSPLcom/android/server/wm/DisplayFrames;-><init>()V HSPLcom/android/server/wm/DisplayFrames;-><init>(Landroid/view/InsetsState;Landroid/view/DisplayInfo;Landroid/view/DisplayCutout;Landroid/view/RoundedCorners;Landroid/view/PrivacyIndicatorBounds;)V @@ -48025,43 +49015,32 @@ PLcom/android/server/wm/DisplayHashController;->getSupportedHashAlgorithms()[Lja PLcom/android/server/wm/DisplayHashController;->lambda$getDisplayHashAlgorithms$2(Landroid/service/displayhash/IDisplayHashingService;Landroid/os/RemoteCallback;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda0;-><init>(IILjava/lang/String;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/wm/DisplayPolicy;)V -HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda12;-><init>(Lcom/android/internal/policy/GestureNavigationSettingsObserver;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda12;->run()V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda13;-><init>(Lcom/android/internal/policy/ForceShowNavBarSettingsObserver;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda13;->run()V -HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wm/DisplayPolicy;Ljava/util/function/Consumer;)V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda14;->run()V -HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/wm/DisplayPolicy;)V +HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wm/DisplayPolicy;)V +HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda14;->run()V +HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda15;-><init>(Lcom/android/internal/policy/GestureNavigationSettingsObserver;)V HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda15;->run()V -HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda16;-><init>(Lcom/android/internal/policy/GestureNavigationSettingsObserver;)V +HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/DisplayPolicy;)V HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda16;->run()V -HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda17;-><init>(Lcom/android/server/wm/DisplayPolicy;)V +HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda17;-><init>(Lcom/android/internal/policy/ForceShowNavBarSettingsObserver;)V HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda17;->run()V -HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda18;-><init>(Lcom/android/internal/policy/ForceShowNavBarSettingsObserver;)V -HSPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda18;->run()V -HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda19;-><init>()V -HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;)Z HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda1;-><init>(II[Lcom/android/internal/view/AppearanceRegion;ZILandroid/view/InsetsVisibilities;Ljava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/DisplayPolicy;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda2;->run()V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/DisplayPolicy;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/WindowState;)V +PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/DisplayPolicy;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/DisplayPolicy;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wm/DisplayPolicy;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wm/DisplayPolicy;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -PLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda8;-><init>(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/WindowState;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V HPLcom/android/server/wm/DisplayPolicy$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayPolicy$1;-><init>(Lcom/android/server/wm/DisplayPolicy;)V -PLcom/android/server/wm/DisplayPolicy$1;->getOrientationListener()Lcom/android/server/wm/WindowOrientationListener; +HPLcom/android/server/wm/DisplayPolicy$1;->getOrientationListener()Lcom/android/server/wm/WindowOrientationListener; PLcom/android/server/wm/DisplayPolicy$1;->onDebug()V PLcom/android/server/wm/DisplayPolicy$1;->onDown()V HPLcom/android/server/wm/DisplayPolicy$1;->onFling(I)V @@ -48111,18 +49090,8 @@ HSPLcom/android/server/wm/DisplayPolicy$DecorInsets;->calculateDecorInsetsWithIn HSPLcom/android/server/wm/DisplayPolicy$DecorInsets;->get(III)Lcom/android/server/wm/DisplayPolicy$DecorInsets$Info; PLcom/android/server/wm/DisplayPolicy$DecorInsets;->invalidate()V HSPLcom/android/server/wm/DisplayPolicy$PolicyHandler;-><init>(Lcom/android/server/wm/DisplayPolicy;Landroid/os/Looper;)V -HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$0mi-MaJhuEaVsp_f4d1f-AHu5kY(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V -HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$AiLwiyHP6wERcJeILTjk9RgkAEI(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$AjWd0eBfyzd1CHt9MC61bDlXS2w(Lcom/android/server/wm/DisplayPolicy;)V -HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$EZYRNxNLlxC0PNFNpnf17LOiDfs(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V -HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$E_lr-EOeijFv_XXxZRrD8Ekrkdo(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V -HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$IWPcW2WuSurGkWdPiGkdub9MuRU(Lcom/android/server/wm/Task;)Z -HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$RG0NZXtK4BGsccgw8oiFK6iUy9I(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$UfdOVokg-SsamnmTuLU_K62qdyI(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V -PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$XdhXD6WHBQF758j6f2EAGGG3Znw(Lcom/android/server/wm/DisplayPolicy;Ljava/util/function/Consumer;)V -PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$_Ho0rf1-Cpa5E3yJ1UgTW_WjJQU(IILjava/lang/String;Lcom/android/server/statusbar/StatusBarManagerInternal;)V -PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$tuv7-thYB4uVCoiSe4VLHX3UQxI(Lcom/android/server/wm/DisplayPolicy;)V -PLcom/android/server/wm/DisplayPolicy;->$r8$lambda$wE4Uy1gag83GmlPqNRKtaj4hcFU(II[Lcom/android/internal/view/AppearanceRegion;ZILandroid/view/InsetsVisibilities;Ljava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;Lcom/android/server/statusbar/StatusBarManagerInternal;)V HPLcom/android/server/wm/DisplayPolicy;->$r8$lambda$xiFb5vjGkhT3W175VTxZyGIwCOM(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V PLcom/android/server/wm/DisplayPolicy;->-$$Nest$fgetmContext(Lcom/android/server/wm/DisplayPolicy;)Landroid/content/Context; PLcom/android/server/wm/DisplayPolicy;->-$$Nest$fgetmDisplayContent(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/wm/DisplayContent; @@ -48143,7 +49112,7 @@ HPLcom/android/server/wm/DisplayPolicy;->addStatusBarAppearanceRegionsForDimming HSPLcom/android/server/wm/DisplayPolicy;->addWindowLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V HSPLcom/android/server/wm/DisplayPolicy;->adjustWindowParamsLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V HSPLcom/android/server/wm/DisplayPolicy;->applyKeyguardPolicy(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V -HSPLcom/android/server/wm/DisplayPolicy;->applyPostLayoutPolicyLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/wm/DisplayPolicy;->applyPostLayoutPolicyLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLcom/android/server/wm/DisplayPolicy;->areSystemBarsForcedConsumedLw()Z HPLcom/android/server/wm/DisplayPolicy;->areSystemBarsForcedShownLw()Z HSPLcom/android/server/wm/DisplayPolicy;->beginPostLayoutPolicyLw()V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Ljava/util/ArrayList;Ljava/util/ArrayList; @@ -48178,7 +49147,6 @@ HPLcom/android/server/wm/DisplayPolicy;->getNotificationShade()Lcom/android/serv HSPLcom/android/server/wm/DisplayPolicy;->getRefreshRatePolicy()Lcom/android/server/wm/RefreshRatePolicy; PLcom/android/server/wm/DisplayPolicy;->getScreenOnListener()Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener; HPLcom/android/server/wm/DisplayPolicy;->getStatusBar()Lcom/android/server/wm/WindowState; -HPLcom/android/server/wm/DisplayPolicy;->getStatusBarHeight(Lcom/android/server/wm/DisplayFrames;)I HSPLcom/android/server/wm/DisplayPolicy;->getStatusBarManagerInternal()Lcom/android/server/statusbar/StatusBarManagerInternal; HSPLcom/android/server/wm/DisplayPolicy;->getSystemUiContext()Landroid/content/Context; HPLcom/android/server/wm/DisplayPolicy;->getTopFullscreenOpaqueWindow()Lcom/android/server/wm/WindowState; @@ -48207,19 +49175,9 @@ HSPLcom/android/server/wm/DisplayPolicy;->isShowingDreamLw()Z PLcom/android/server/wm/DisplayPolicy;->isTopLayoutFullscreen()Z HSPLcom/android/server/wm/DisplayPolicy;->isWindowExcludedFromContent(Lcom/android/server/wm/WindowState;)Z HSPLcom/android/server/wm/DisplayPolicy;->isWindowManagerDrawComplete()Z -HPLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$1(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy; -HPLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$2(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Rect;Landroid/graphics/Rect; HPLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$3(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V HPLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$4(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V -HPLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$5(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V -HPLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$6(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V -HPLcom/android/server/wm/DisplayPolicy;->lambda$callStatusBarSafely$13(Ljava/util/function/Consumer;)V -HPLcom/android/server/wm/DisplayPolicy;->lambda$getImeSourceFrameProvider$9(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Rect;)V PLcom/android/server/wm/DisplayPolicy;->lambda$new$0()V -PLcom/android/server/wm/DisplayPolicy;->lambda$notifyDisplayReady$10()V -PLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemBarAttributes$11(IILjava/lang/String;Lcom/android/server/statusbar/StatusBarManagerInternal;)V -HPLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemBarAttributes$12(II[Lcom/android/internal/view/AppearanceRegion;ZILandroid/view/InsetsVisibilities;Ljava/lang/String;[Lcom/android/internal/statusbar/LetterboxDetails;Lcom/android/server/statusbar/StatusBarManagerInternal;)V -HPLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemBarsLw$14(Lcom/android/server/wm/Task;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task; HSPLcom/android/server/wm/DisplayPolicy;->layoutWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/WindowLayout;Landroid/view/WindowLayout;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState; PLcom/android/server/wm/DisplayPolicy;->navigationBarCanMove()Z HSPLcom/android/server/wm/DisplayPolicy;->navigationBarPosition(I)I+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams; @@ -48241,7 +49199,7 @@ HPLcom/android/server/wm/DisplayPolicy;->setAwake(Z)V HSPLcom/android/server/wm/DisplayPolicy;->setDropInputModePolicy(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V HSPLcom/android/server/wm/DisplayPolicy;->setHdmiPlugged(ZZ)V HSPLcom/android/server/wm/DisplayPolicy;->setLidState(I)V -PLcom/android/server/wm/DisplayPolicy;->shouldAttachNavBarToAppDuringTransition()Z +HPLcom/android/server/wm/DisplayPolicy;->shouldAttachNavBarToAppDuringTransition()Z HSPLcom/android/server/wm/DisplayPolicy;->shouldBeHiddenByKeyguard(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent; HSPLcom/android/server/wm/DisplayPolicy;->simulateLayoutDisplay(Lcom/android/server/wm/DisplayFrames;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/WindowContainerInsetsSourceProvider;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/WindowLayout;Landroid/view/WindowLayout;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent; HSPLcom/android/server/wm/DisplayPolicy;->systemReady()V @@ -48249,12 +49207,15 @@ PLcom/android/server/wm/DisplayPolicy;->takeScreenshot(II)V HPLcom/android/server/wm/DisplayPolicy;->topAppHidesStatusBar()Z+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/DisplayPolicy;->updateConfigurationAndScreenSizeDependentBehaviors()V HSPLcom/android/server/wm/DisplayPolicy;->updateCurrentUserResources()V +PLcom/android/server/wm/DisplayPolicy;->updateDecorInsetsInfo()Z HPLcom/android/server/wm/DisplayPolicy;->updateLightNavigationBarLw(ILcom/android/server/wm/WindowState;)I HSPLcom/android/server/wm/DisplayPolicy;->updateSystemBarAttributes()V+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/view/InsetsVisibilities;Landroid/view/InsetsVisibilities;]Lcom/android/server/input/InputManagerService;Lcom/android/server/input/InputManagerService;]Lcom/android/server/wm/ImmersiveModeConfirmation;Lcom/android/server/wm/ImmersiveModeConfirmation;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HPLcom/android/server/wm/DisplayPolicy;->updateSystemBarsLw(Lcom/android/server/wm/WindowState;I)I+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/statusbar/StatusBarManagerInternal;Lcom/android/server/statusbar/StatusBarManagerService$1;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/policy/PhoneWindowManager;]Lcom/android/server/wm/ImmersiveModeConfirmation;Lcom/android/server/wm/ImmersiveModeConfirmation;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/InsetsPolicy;Lcom/android/server/wm/InsetsPolicy;]Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent; +HPLcom/android/server/wm/DisplayPolicy;->updateSystemBarsLw(Lcom/android/server/wm/WindowState;I)I+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/statusbar/StatusBarManagerInternal;Lcom/android/server/statusbar/StatusBarManagerService$1;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/policy/PhoneWindowManager;]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/ImmersiveModeConfirmation;Lcom/android/server/wm/ImmersiveModeConfirmation;]Lcom/android/server/wm/InsetsPolicy;Lcom/android/server/wm/InsetsPolicy;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent; HSPLcom/android/server/wm/DisplayPolicy;->validateAddingWindowLw(Landroid/view/WindowManager$LayoutParams;II)I PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/DisplayRotation;I)V PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda0;->onContinueRemoteDisplayChange(Landroid/window/WindowContainerTransaction;)V +PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda1;-><init>()V +PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda2;-><init>()V PLcom/android/server/wm/DisplayRotation$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/DisplayRotation$OrientationListener;-><init>(Lcom/android/server/wm/DisplayRotation;Landroid/content/Context;Landroid/os/Handler;)V @@ -48275,6 +49236,7 @@ HSPLcom/android/server/wm/DisplayRotation$SettingsObserver;-><init>(Lcom/android HSPLcom/android/server/wm/DisplayRotation$SettingsObserver;->observe()V PLcom/android/server/wm/DisplayRotation$SettingsObserver;->onChange(Z)V PLcom/android/server/wm/DisplayRotation;->$r8$lambda$mNGhF1pFD2fe9xft5HVNqA4lG-U(Lcom/android/server/wm/DisplayRotation;ILandroid/window/WindowContainerTransaction;)V +PLcom/android/server/wm/DisplayRotation;->$r8$lambda$wFTGOohq4GsLXoHqspr04t3o7vQ(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/DisplayRotation;->$r8$lambda$xm0K83qh82lt4aECDOO9Z0X2scw(Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/DisplayRotation;->-$$Nest$fgetmCameraRotationMode(Lcom/android/server/wm/DisplayRotation;)I HSPLcom/android/server/wm/DisplayRotation;->-$$Nest$fgetmContext(Lcom/android/server/wm/DisplayRotation;)Landroid/content/Context; @@ -48292,6 +49254,7 @@ HSPLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/Window HSPLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayWindowSettings;Landroid/content/Context;Ljava/lang/Object;)V PLcom/android/server/wm/DisplayRotation;->allowAllRotationsToString(I)Ljava/lang/String; PLcom/android/server/wm/DisplayRotation;->applyCurrentRotation(I)V +PLcom/android/server/wm/DisplayRotation;->canRotateSeamlessly(II)Z PLcom/android/server/wm/DisplayRotation;->cancelSeamlessRotation()V HSPLcom/android/server/wm/DisplayRotation;->configure(II)V PLcom/android/server/wm/DisplayRotation;->continueRotation(ILandroid/window/WindowContainerTransaction;)V @@ -48316,6 +49279,7 @@ HPLcom/android/server/wm/DisplayRotation;->isRotationChoicePossible(I)Z PLcom/android/server/wm/DisplayRotation;->isRotationFrozen()Z PLcom/android/server/wm/DisplayRotation;->isValidRotationChoice(I)Z PLcom/android/server/wm/DisplayRotation;->lambda$cancelSeamlessRotation$1(Lcom/android/server/wm/WindowState;)V +PLcom/android/server/wm/DisplayRotation;->lambda$shouldRotateSeamlessly$2(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/DisplayRotation;->lambda$startRemoteRotation$0(ILandroid/window/WindowContainerTransaction;)V PLcom/android/server/wm/DisplayRotation;->markForSeamlessRotation(Lcom/android/server/wm/WindowState;Z)V HPLcom/android/server/wm/DisplayRotation;->needSensorRunning()Z @@ -48369,6 +49333,7 @@ PLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->lambda$onRunningAc HSPLcom/android/server/wm/DisplayWindowPolicyControllerHelper;->onRunningActivityChanged()V HSPLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;-><init>()V HSPLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;-><init>(Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;)V +PLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;->isEmpty()Z HSPLcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;->setTo(Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;)Z HSPLcom/android/server/wm/DisplayWindowSettings;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider;)V HSPLcom/android/server/wm/DisplayWindowSettings;->applyRotationSettingsToDisplayLocked(Lcom/android/server/wm/DisplayContent;)V @@ -48377,30 +49342,39 @@ HSPLcom/android/server/wm/DisplayWindowSettings;->applySettingsToDisplayLocked(L HSPLcom/android/server/wm/DisplayWindowSettings;->getImePolicyLocked(Lcom/android/server/wm/DisplayContent;)I HSPLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayContent;)I HSPLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;Lcom/android/server/wm/DisplayContent;)I +PLcom/android/server/wm/DisplayWindowSettings;->setForcedDensity(Lcom/android/server/wm/DisplayContent;II)V HSPLcom/android/server/wm/DisplayWindowSettings;->shouldShowSystemDecorsLocked(Lcom/android/server/wm/DisplayContent;)Z HSPLcom/android/server/wm/DisplayWindowSettings;->updateSettingsForDisplay(Lcom/android/server/wm/DisplayContent;)Z HSPLcom/android/server/wm/DisplayWindowSettingsProvider$AtomicFileStorage;-><init>(Landroid/util/AtomicFile;)V +PLcom/android/server/wm/DisplayWindowSettingsProvider$AtomicFileStorage;->finishWrite(Ljava/io/OutputStream;Z)V HSPLcom/android/server/wm/DisplayWindowSettingsProvider$AtomicFileStorage;->openRead()Ljava/io/InputStream; -PLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;-><init>()V -PLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData-IA;)V +PLcom/android/server/wm/DisplayWindowSettingsProvider$AtomicFileStorage;->startWrite()Ljava/io/OutputStream; +HSPLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;-><init>()V +HSPLcom/android/server/wm/DisplayWindowSettingsProvider$FileData;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData-IA;)V HSPLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)V HSPLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;->getIdentifier(Landroid/view/DisplayInfo;)Ljava/lang/String; HSPLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;->getSettingsEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry; HSPLcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings;->loadSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)V HSPLcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettings;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettingsStorage;)V HSPLcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettings;->getOrCreateSettingsEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry; +PLcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettings;->updateSettingsEntry(Landroid/view/DisplayInfo;Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;)V +PLcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettings;->writeSettings()V HSPLcom/android/server/wm/DisplayWindowSettingsProvider;->-$$Nest$smreadSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData; +PLcom/android/server/wm/DisplayWindowSettingsProvider;->-$$Nest$smwriteSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettingsStorage;Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;)V HSPLcom/android/server/wm/DisplayWindowSettingsProvider;-><init>()V HSPLcom/android/server/wm/DisplayWindowSettingsProvider;-><init>(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;Lcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettingsStorage;)V PLcom/android/server/wm/DisplayWindowSettingsProvider;->getBooleanAttribute(Landroid/util/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean; -PLcom/android/server/wm/DisplayWindowSettingsProvider;->getIntAttribute(Landroid/util/TypedXmlPullParser;Ljava/lang/String;I)I +HSPLcom/android/server/wm/DisplayWindowSettingsProvider;->getIntAttribute(Landroid/util/TypedXmlPullParser;Ljava/lang/String;I)I PLcom/android/server/wm/DisplayWindowSettingsProvider;->getIntegerAttribute(Landroid/util/TypedXmlPullParser;Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer; +PLcom/android/server/wm/DisplayWindowSettingsProvider;->getOverrideSettings(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry; HSPLcom/android/server/wm/DisplayWindowSettingsProvider;->getOverrideSettingsFile()Landroid/util/AtomicFile; HSPLcom/android/server/wm/DisplayWindowSettingsProvider;->getSettings(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry; HSPLcom/android/server/wm/DisplayWindowSettingsProvider;->getVendorSettingsFile()Landroid/util/AtomicFile; -PLcom/android/server/wm/DisplayWindowSettingsProvider;->readConfig(Landroid/util/TypedXmlPullParser;Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;)V +HSPLcom/android/server/wm/DisplayWindowSettingsProvider;->readConfig(Landroid/util/TypedXmlPullParser;Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;)V PLcom/android/server/wm/DisplayWindowSettingsProvider;->readDisplay(Landroid/util/TypedXmlPullParser;Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;)V HSPLcom/android/server/wm/DisplayWindowSettingsProvider;->readSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage;)Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData; +PLcom/android/server/wm/DisplayWindowSettingsProvider;->updateOverrideSettings(Landroid/view/DisplayInfo;Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry;)V +PLcom/android/server/wm/DisplayWindowSettingsProvider;->writeSettings(Lcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettingsStorage;Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData;)V HSPLcom/android/server/wm/DockedTaskDividerController;-><init>(Lcom/android/server/wm/DisplayContent;)V HSPLcom/android/server/wm/DockedTaskDividerController;->isResizing()Z PLcom/android/server/wm/DragAndDropPermissionsHandler;-><init>(Lcom/android/server/wm/WindowManagerGlobalLock;Landroid/content/ClipData;ILjava/lang/String;III)V @@ -48484,11 +49458,13 @@ PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getInputChanne PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getWindowState()Lcom/android/server/wm/WindowState; PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getWindowToken()Landroid/os/IBinder; PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->handleTap(Z)V +PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->handleTapOutsideFocusInsideSelf()V PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->handleTapOutsideFocusOutsideSelf()V PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->isInputMethodClientFocus(II)Z PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->onRemoved()V PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->openInputChannel()Landroid/view/InputChannel; PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->receiveFocusFromTapOutside()Z +PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->setIsOverlay()V PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->shouldControlIme()Z PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->toString()Ljava/lang/String; PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->unfreezeInsetsAfterStartInput()V @@ -48502,6 +49478,7 @@ PLcom/android/server/wm/EmbeddedWindowController;->lambda$add$0(Landroid/os/IBin PLcom/android/server/wm/EmbeddedWindowController;->onActivityRemoved(Lcom/android/server/wm/ActivityRecord;)V HPLcom/android/server/wm/EmbeddedWindowController;->onWindowRemoved(Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/EmbeddedWindowController;->remove(Landroid/view/IWindow;)V +PLcom/android/server/wm/EmbeddedWindowController;->setIsOverlay(Landroid/os/IBinder;)V PLcom/android/server/wm/EmbeddedWindowController;->updateProcessController(Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;)V HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;-><init>(Lcom/android/server/wm/TaskFragment;)V HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->makeVisibleAndRestartIfNeeded(Lcom/android/server/wm/ActivityRecord;IZZLcom/android/server/wm/ActivityRecord;)V @@ -48574,11 +49551,13 @@ PLcom/android/server/wm/ImeInsetsSourceProvider;->updateControlForTarget(Lcom/an PLcom/android/server/wm/ImeInsetsSourceProvider;->updateSourceFrame(Landroid/graphics/Rect;)V HPLcom/android/server/wm/ImeInsetsSourceProvider;->updateVisibility()V HSPLcom/android/server/wm/ImmersiveModeConfirmation$1;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;)V +PLcom/android/server/wm/ImmersiveModeConfirmation$1;->run()V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$1;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$2;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$2;->onComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$3;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$4;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)V +PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$4;->onClick(Landroid/view/View;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$5$1;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$5;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$5$1;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$5;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;Landroid/view/View;)V @@ -48586,6 +49565,7 @@ PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$5;->run()V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->-$$Nest$fgetmClingLayout(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)Landroid/view/ViewGroup; PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->-$$Nest$fgetmColor(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)Landroid/graphics/drawable/ColorDrawable; PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->-$$Nest$fgetmColorAnim(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)Landroid/animation/ValueAnimator; +PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->-$$Nest$fgetmConfirm(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)Ljava/lang/Runnable; PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->-$$Nest$fgetmInterpolator(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)Landroid/view/animation/Interpolator; PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->-$$Nest$fputmColorAnim(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;Landroid/animation/ValueAnimator;)V PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;Landroid/content/Context;Ljava/lang/Runnable;)V @@ -48594,9 +49574,13 @@ PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->onAttachedTo PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->onDetachedFromWindow()V HSPLcom/android/server/wm/ImmersiveModeConfirmation$H;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;Landroid/os/Looper;)V PLcom/android/server/wm/ImmersiveModeConfirmation$H;->handleMessage(Landroid/os/Message;)V +PLcom/android/server/wm/ImmersiveModeConfirmation;->-$$Nest$fgetmContext(Lcom/android/server/wm/ImmersiveModeConfirmation;)Landroid/content/Context; PLcom/android/server/wm/ImmersiveModeConfirmation;->-$$Nest$mgetBubbleLayoutParams(Lcom/android/server/wm/ImmersiveModeConfirmation;)Landroid/widget/FrameLayout$LayoutParams; PLcom/android/server/wm/ImmersiveModeConfirmation;->-$$Nest$mhandleHide(Lcom/android/server/wm/ImmersiveModeConfirmation;)V PLcom/android/server/wm/ImmersiveModeConfirmation;->-$$Nest$mhandleShow(Lcom/android/server/wm/ImmersiveModeConfirmation;I)V +PLcom/android/server/wm/ImmersiveModeConfirmation;->-$$Nest$sfgetsConfirmed()Z +PLcom/android/server/wm/ImmersiveModeConfirmation;->-$$Nest$sfputsConfirmed(Z)V +PLcom/android/server/wm/ImmersiveModeConfirmation;->-$$Nest$smsaveSetting(Landroid/content/Context;)V HSPLcom/android/server/wm/ImmersiveModeConfirmation;-><init>(Landroid/content/Context;Landroid/os/Looper;ZZ)V PLcom/android/server/wm/ImmersiveModeConfirmation;->confirmCurrentPrompt()V PLcom/android/server/wm/ImmersiveModeConfirmation;->getBubbleLayoutParams()Landroid/widget/FrameLayout$LayoutParams; @@ -48612,6 +49596,7 @@ HSPLcom/android/server/wm/ImmersiveModeConfirmation;->loadSetting(ILandroid/cont PLcom/android/server/wm/ImmersiveModeConfirmation;->onPowerKeyDown(ZJZZ)Z PLcom/android/server/wm/ImmersiveModeConfirmation;->onSettingChanged(I)Z PLcom/android/server/wm/ImmersiveModeConfirmation;->release()V +PLcom/android/server/wm/ImmersiveModeConfirmation;->saveSetting(Landroid/content/Context;)V PLcom/android/server/wm/InputConfigAdapter$FlagMapping;-><init>(IIZ)V PLcom/android/server/wm/InputConfigAdapter;-><clinit>()V HPLcom/android/server/wm/InputConfigAdapter;->applyMapping(ILjava/util/List;)I+]Ljava/util/List;Ljava/util/ImmutableCollections$ListN;]Ljava/util/Iterator;Ljava/util/ImmutableCollections$ListItr; @@ -48636,7 +49621,7 @@ PLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda1;->accept( HSPLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda2;-><init>()V HSPLcom/android/server/wm/InputManagerCallback$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/InputManagerCallback;-><init>(Lcom/android/server/wm/WindowManagerService;)V -PLcom/android/server/wm/InputManagerCallback;->createSurfaceForGestureMonitor(Ljava/lang/String;I)Landroid/view/SurfaceControl; +HPLcom/android/server/wm/InputManagerCallback;->createSurfaceForGestureMonitor(Ljava/lang/String;I)Landroid/view/SurfaceControl; PLcom/android/server/wm/InputManagerCallback;->dispatchUnhandledKey(Landroid/os/IBinder;Landroid/view/KeyEvent;I)Landroid/view/KeyEvent; PLcom/android/server/wm/InputManagerCallback;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V PLcom/android/server/wm/InputManagerCallback;->freezeInputDispatchingLw()V @@ -48645,7 +49630,7 @@ HSPLcom/android/server/wm/InputManagerCallback;->getPointerDisplayId()I PLcom/android/server/wm/InputManagerCallback;->getPointerLayer()I PLcom/android/server/wm/InputManagerCallback;->interceptKeyBeforeDispatching(Landroid/os/IBinder;Landroid/view/KeyEvent;I)J PLcom/android/server/wm/InputManagerCallback;->interceptKeyBeforeQueueing(Landroid/view/KeyEvent;I)I -PLcom/android/server/wm/InputManagerCallback;->interceptMotionBeforeQueueingNonInteractive(IJI)I +HPLcom/android/server/wm/InputManagerCallback;->interceptMotionBeforeQueueingNonInteractive(IJI)I HSPLcom/android/server/wm/InputManagerCallback;->notifyConfigurationChanged()V PLcom/android/server/wm/InputManagerCallback;->notifyDropWindow(Landroid/os/IBinder;FF)V PLcom/android/server/wm/InputManagerCallback;->notifyFocusChanged(Landroid/os/IBinder;Landroid/os/IBinder;)V @@ -48812,7 +49797,7 @@ HPLcom/android/server/wm/InsetsPolicy;->onInsetsModified(Lcom/android/server/wm/ HPLcom/android/server/wm/InsetsPolicy;->remoteInsetsControllerControlsSystemBars(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/InsetsPolicy;->showTransient([IZ)V PLcom/android/server/wm/InsetsPolicy;->startAnimation(ZLjava/lang/Runnable;)V -HPLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/InsetsPolicy;Lcom/android/server/wm/InsetsPolicy;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController; +HPLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/InsetsPolicy;Lcom/android/server/wm/InsetsPolicy;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController; HSPLcom/android/server/wm/InsetsSourceProvider$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/InsetsSourceProvider;)V PLcom/android/server/wm/InsetsSourceProvider$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V HPLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->-$$Nest$fgetmCapturedLeash(Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;)Landroid/view/SurfaceControl; @@ -48845,7 +49830,7 @@ HPLcom/android/server/wm/InsetsSourceProvider;->isClientVisible()Z PLcom/android/server/wm/InsetsSourceProvider;->isControllable()Z HPLcom/android/server/wm/InsetsSourceProvider;->isMirroredSource()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState; PLcom/android/server/wm/InsetsSourceProvider;->lambda$new$0(Landroid/view/SurfaceControl$Transaction;)V -HSPLcom/android/server/wm/InsetsSourceProvider;->onPostLayout()V+]Lcom/android/server/wm/WindowFrames;Lcom/android/server/wm/WindowFrames;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;,Lcom/android/server/wm/WindowContainerInsetsSourceProvider;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Insets;Landroid/graphics/Insets;]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState;]Ljava/util/function/Consumer;Lcom/android/server/wm/InsetsSourceProvider$$ExternalSyntheticLambda0;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/AsyncRotationController;Lcom/android/server/wm/AsyncRotationController;]Lcom/android/server/wm/WindowStateAnimator;Lcom/android/server/wm/WindowStateAnimator; +HSPLcom/android/server/wm/InsetsSourceProvider;->onPostLayout()V+]Lcom/android/server/wm/WindowFrames;Lcom/android/server/wm/WindowFrames;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;,Lcom/android/server/wm/WindowContainerInsetsSourceProvider;]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Insets;Landroid/graphics/Insets;]Landroid/view/InsetsSourceControl;Landroid/view/InsetsSourceControl;]Ljava/util/function/Consumer;Lcom/android/server/wm/InsetsSourceProvider$$ExternalSyntheticLambda0;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController;]Lcom/android/server/wm/WindowStateAnimator;Lcom/android/server/wm/WindowStateAnimator;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/AsyncRotationController;Lcom/android/server/wm/AsyncRotationController; HPLcom/android/server/wm/InsetsSourceProvider;->onSurfaceTransactionApplied()V HSPLcom/android/server/wm/InsetsSourceProvider;->overridesFrame(I)Z HPLcom/android/server/wm/InsetsSourceProvider;->setClientVisible(Z)V @@ -48892,7 +49877,7 @@ PLcom/android/server/wm/InsetsStateController;->isFakeTarget(ILcom/android/serve HPLcom/android/server/wm/InsetsStateController;->lambda$addToControlMaps$3(Lcom/android/server/wm/InsetsControlTarget;)Ljava/util/ArrayList; HPLcom/android/server/wm/InsetsStateController;->lambda$new$0(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/InsetsStateController;->lambda$new$1(Ljava/lang/Integer;)Lcom/android/server/wm/WindowContainerInsetsSourceProvider; -HPLcom/android/server/wm/InsetsStateController;->lambda$notifyPendingInsetsControlChanged$4()V+]Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;,Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/InsetsPolicy$1;,Lcom/android/server/wm/InsetsStateController$1;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;,Lcom/android/server/wm/WindowContainerInsetsSourceProvider;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController; +HPLcom/android/server/wm/InsetsStateController;->lambda$notifyPendingInsetsControlChanged$4()V+]Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/InsetsPolicy$1;,Lcom/android/server/wm/InsetsStateController$1;,Lcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/ImeInsetsSourceProvider;,Lcom/android/server/wm/WindowContainerInsetsSourceProvider;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/InsetsStateController; PLcom/android/server/wm/InsetsStateController;->lambda$onDisplayFramesUpdated$2(Ljava/util/ArrayList;Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/InsetsStateController;->notifyControlChanged(Lcom/android/server/wm/InsetsControlTarget;)V PLcom/android/server/wm/InsetsStateController;->notifyControlRevoked(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsSourceProvider;)V @@ -48930,10 +49915,11 @@ PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->dumpStatus(Lja HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->getRootTaskForControllingOccluding(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/Task; HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->lambda$getRootTaskForControllingOccluding$0(Lcom/android/server/wm/Task;)Z+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task; PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->onRemoved()V -HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->updateVisibility(Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/DisplayContent;)V+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityTaskSupervisor;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Landroid/os/PowerManager;Landroid/os/PowerManager;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/KeyguardController; +HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->updateVisibility(Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/DisplayContent;)V+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayPolicy;]Landroid/os/PowerManager;Landroid/os/PowerManager;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/ActivityTaskSupervisor;Lcom/android/server/wm/ActivityTaskSupervisor;]Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/KeyguardController; PLcom/android/server/wm/KeyguardController;->-$$Nest$fgetmTaskSupervisor(Lcom/android/server/wm/KeyguardController;)Lcom/android/server/wm/ActivityTaskSupervisor; PLcom/android/server/wm/KeyguardController;->-$$Nest$mhandleOccludedChanged(Lcom/android/server/wm/KeyguardController;ILcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/KeyguardController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskSupervisor;)V +PLcom/android/server/wm/KeyguardController;->canDismissKeyguard()Z PLcom/android/server/wm/KeyguardController;->canShowActivityWhileKeyguardShowing(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/KeyguardController;->canShowWhileOccluded(ZZ)Z HSPLcom/android/server/wm/KeyguardController;->checkKeyguardVisibility(Lcom/android/server/wm/ActivityRecord;)Z @@ -48967,7 +49953,7 @@ PLcom/android/server/wm/KeyguardController;->writeDisplayStatesToProto(Landroid/ HSPLcom/android/server/wm/KeyguardDisableHandler$1;-><init>(Lcom/android/server/wm/KeyguardDisableHandler;)V HSPLcom/android/server/wm/KeyguardDisableHandler$2;-><init>(Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/pm/UserManagerInternal;)V PLcom/android/server/wm/KeyguardDisableHandler$2;->dpmRequiresPassword(I)Z -PLcom/android/server/wm/KeyguardDisableHandler$2;->enableKeyguard(Z)V +HPLcom/android/server/wm/KeyguardDisableHandler$2;->enableKeyguard(Z)V PLcom/android/server/wm/KeyguardDisableHandler$2;->isKeyguardSecure(I)Z HSPLcom/android/server/wm/KeyguardDisableHandler;-><init>(Lcom/android/server/wm/KeyguardDisableHandler$Injector;Landroid/os/Handler;)V HSPLcom/android/server/wm/KeyguardDisableHandler;->create(Landroid/content/Context;Lcom/android/server/policy/WindowManagerPolicy;Landroid/os/Handler;)Lcom/android/server/wm/KeyguardDisableHandler; @@ -49021,6 +50007,8 @@ HSPLcom/android/server/wm/LaunchParamsController;->layoutTask(Lcom/android/serve HSPLcom/android/server/wm/LaunchParamsController;->registerDefaultModifiers(Lcom/android/server/wm/ActivityTaskSupervisor;)V HSPLcom/android/server/wm/LaunchParamsController;->registerModifier(Lcom/android/server/wm/LaunchParamsController$LaunchParamsModifier;)V PLcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda1;-><init>(Ljava/lang/String;)V +HSPLcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda3;-><init>()V +PLcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda3;->apply(I)Ljava/lang/Object; PLcom/android/server/wm/LaunchParamsPersister$CleanUpComponentQueueItem;-><init>(Lcom/android/server/wm/LaunchParamsPersister;Ljava/util/List;)V PLcom/android/server/wm/LaunchParamsPersister$CleanUpComponentQueueItem;-><init>(Lcom/android/server/wm/LaunchParamsPersister;Ljava/util/List;Lcom/android/server/wm/LaunchParamsPersister$CleanUpComponentQueueItem-IA;)V PLcom/android/server/wm/LaunchParamsPersister$CleanUpComponentQueueItem;->process()V @@ -49115,7 +50103,7 @@ HPLcom/android/server/wm/LetterboxUiController;->dump(Ljava/io/PrintWriter;Ljava PLcom/android/server/wm/LetterboxUiController;->getFixedOrientationLetterboxAspectRatio()F PLcom/android/server/wm/LetterboxUiController;->getHorizontalPositionMultiplier(Landroid/content/res/Configuration;)F PLcom/android/server/wm/LetterboxUiController;->getLetterboxBackgroundColor()Landroid/graphics/Color; -HPLcom/android/server/wm/LetterboxUiController;->getLetterboxDetails()Lcom/android/internal/statusbar/LetterboxDetails;+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController; +HPLcom/android/server/wm/LetterboxUiController;->getLetterboxDetails()Lcom/android/internal/statusbar/LetterboxDetails;+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; HPLcom/android/server/wm/LetterboxUiController;->getLetterboxInnerBounds(Landroid/graphics/Rect;)V HPLcom/android/server/wm/LetterboxUiController;->getLetterboxInsets()Landroid/graphics/Rect; HPLcom/android/server/wm/LetterboxUiController;->getLetterboxOuterBounds(Landroid/graphics/Rect;)V @@ -49135,13 +50123,13 @@ HPLcom/android/server/wm/LetterboxUiController;->isSurfaceReadyAndVisible(Lcom/a PLcom/android/server/wm/LetterboxUiController;->isVerticalReachabilityEnabled()Z PLcom/android/server/wm/LetterboxUiController;->isVerticalReachabilityEnabled(Landroid/content/res/Configuration;)Z PLcom/android/server/wm/LetterboxUiController;->lambda$layoutLetterbox$0()Landroid/view/SurfaceControl$Builder; -HPLcom/android/server/wm/LetterboxUiController;->layoutLetterbox(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController;]Lcom/android/server/wm/Letterbox;Lcom/android/server/wm/Letterbox;]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +HPLcom/android/server/wm/LetterboxUiController;->layoutLetterbox(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/TaskDisplayArea;,Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/Task;]Lcom/android/server/wm/Letterbox;Lcom/android/server/wm/Letterbox;]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; HPLcom/android/server/wm/LetterboxUiController;->requiresRoundedCorners(Lcom/android/server/wm/WindowState;)Z HPLcom/android/server/wm/LetterboxUiController;->shouldLetterboxHaveRoundedCorners()Z HPLcom/android/server/wm/LetterboxUiController;->shouldShowLetterboxUi(Lcom/android/server/wm/WindowState;)Z+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController; HPLcom/android/server/wm/LetterboxUiController;->updateLetterboxSurface(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController;]Lcom/android/server/wm/Letterbox;Lcom/android/server/wm/Letterbox;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; HPLcom/android/server/wm/LetterboxUiController;->updateLetterboxSurface(Lcom/android/server/wm/WindowState;Landroid/view/SurfaceControl$Transaction;)V -HPLcom/android/server/wm/LetterboxUiController;->updateRoundedCorners(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WindowState;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController; +HPLcom/android/server/wm/LetterboxUiController;->updateRoundedCorners(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Lcom/android/server/wm/LetterboxUiController;Lcom/android/server/wm/LetterboxUiController;]Landroid/view/InsetsState;Landroid/view/InsetsState; HPLcom/android/server/wm/LetterboxUiController;->updateWallpaperForLetterbox(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/LetterboxConfiguration;Lcom/android/server/wm/LetterboxConfiguration; HPLcom/android/server/wm/LocalAnimationAdapter$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/LocalAnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V HPLcom/android/server/wm/LocalAnimationAdapter$$ExternalSyntheticLambda0;->run()V @@ -49221,7 +50209,7 @@ PLcom/android/server/wm/NonAppWindowAnimationAdapter;->getLeash()Landroid/view/S PLcom/android/server/wm/NonAppWindowAnimationAdapter;->getLeashFinishedCallback()Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback; PLcom/android/server/wm/NonAppWindowAnimationAdapter;->lambda$startNonAppWindowAnimationsForKeyguardExit$0(Lcom/android/server/wm/WindowManagerService;JJLjava/util/ArrayList;Ljava/util/ArrayList;Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/NonAppWindowAnimationAdapter;->onAnimationCancelled(Landroid/view/SurfaceControl;)V -PLcom/android/server/wm/NonAppWindowAnimationAdapter;->shouldAttachNavBarToApp(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;I)Z +HPLcom/android/server/wm/NonAppWindowAnimationAdapter;->shouldAttachNavBarToApp(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;I)Z PLcom/android/server/wm/NonAppWindowAnimationAdapter;->shouldStartNonAppWindowAnimationsForKeyguardExit(I)Z PLcom/android/server/wm/NonAppWindowAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V HPLcom/android/server/wm/NonAppWindowAnimationAdapter;->startNavigationBarWindowAnimation(Lcom/android/server/wm/DisplayContent;JJLjava/util/ArrayList;Ljava/util/ArrayList;)V @@ -49289,14 +50277,7 @@ PLcom/android/server/wm/PersisterQueue;->removeItems(Ljava/util/function/Predica PLcom/android/server/wm/PersisterQueue;->startPersisting()V HPLcom/android/server/wm/PersisterQueue;->updateLastOrAddItem(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;Z)V HPLcom/android/server/wm/PersisterQueue;->yieldIfQueueTooDeep()V -HSPLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher$DeviceStateListener$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;)V -HSPLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher$DeviceStateListener$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -HSPLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher$DeviceStateListener;->$r8$lambda$DFucA-HWYWe48-c4OjwI5dmEgUM(Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;Ljava/lang/Boolean;)V -HSPLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher$DeviceStateListener;-><init>(Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;Landroid/content/Context;)V -HSPLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher$DeviceStateListener;->lambda$new$0(Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;Ljava/lang/Boolean;)V -HSPLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;->-$$Nest$fputmIsFolded(Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;Z)V HSPLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/TransitionController;)V -PLcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher;->destroy()V HSPLcom/android/server/wm/PinnedTaskController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/PinnedTaskController;)V PLcom/android/server/wm/PinnedTaskController$$ExternalSyntheticLambda0;->run()V PLcom/android/server/wm/PinnedTaskController$$ExternalSyntheticLambda1;-><init>()V @@ -49358,7 +50339,7 @@ HSPLcom/android/server/wm/RecentTasks;->add(Lcom/android/server/wm/Task;)V PLcom/android/server/wm/RecentTasks;->cleanupDisabledPackageTasksLocked(Ljava/lang/String;Ljava/util/Set;I)V PLcom/android/server/wm/RecentTasks;->cleanupLocked(I)V HSPLcom/android/server/wm/RecentTasks;->containsTaskId(II)Z -HPLcom/android/server/wm/RecentTasks;->createRecentTaskInfo(Lcom/android/server/wm/Task;Z)Landroid/app/ActivityManager$RecentTaskInfo; +HPLcom/android/server/wm/RecentTasks;->createRecentTaskInfo(Lcom/android/server/wm/Task;ZZ)Landroid/app/ActivityManager$RecentTaskInfo; PLcom/android/server/wm/RecentTasks;->dump(Ljava/io/PrintWriter;ZLjava/lang/String;)V HSPLcom/android/server/wm/RecentTasks;->findRemoveIndexForAddTask(Lcom/android/server/wm/Task;)I HPLcom/android/server/wm/RecentTasks;->getAppTasksList(ILjava/lang/String;)Ljava/util/ArrayList; @@ -49408,7 +50389,7 @@ PLcom/android/server/wm/RecentTasks;->resetFreezeTaskListReorderingOnTimeout()V PLcom/android/server/wm/RecentTasks;->saveImage(Landroid/graphics/Bitmap;Ljava/lang/String;)V PLcom/android/server/wm/RecentTasks;->setFreezeTaskListReordering()V HPLcom/android/server/wm/RecentTasks;->shouldPersistTaskLocked(Lcom/android/server/wm/Task;)Z -HPLcom/android/server/wm/RecentTasks;->syncPersistentTaskIdsLocked()V+]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HPLcom/android/server/wm/RecentTasks;->syncPersistentTaskIdsLocked()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseBooleanArray;Landroid/util/SparseBooleanArray;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/wm/RecentTasks;->trimInactiveRecentTasks()V PLcom/android/server/wm/RecentTasks;->unloadUserDataFromMemoryLocked(I)V HPLcom/android/server/wm/RecentTasks;->usersWithRecentsLoadedLocked()[I @@ -49441,6 +50422,8 @@ PLcom/android/server/wm/RecentsAnimation;->preloadRecentsActivity()V HPLcom/android/server/wm/RecentsAnimation;->setProcessAnimating(Z)V HPLcom/android/server/wm/RecentsAnimation;->startRecentsActivity(Landroid/view/IRecentsAnimationRunner;J)V PLcom/android/server/wm/RecentsAnimationController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/RecentsAnimationController;)V +PLcom/android/server/wm/RecentsAnimationController$$ExternalSyntheticLambda1;-><init>(Ljava/util/ArrayList;)V +PLcom/android/server/wm/RecentsAnimationController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/RecentsAnimationController$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/Task;)V PLcom/android/server/wm/RecentsAnimationController$$ExternalSyntheticLambda2;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V PLcom/android/server/wm/RecentsAnimationController$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/RecentsAnimationController;Landroid/util/SparseBooleanArray;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;I)V @@ -49476,6 +50459,7 @@ PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->onAnim HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->onCleanup()V HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->onRemove()V HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V +PLcom/android/server/wm/RecentsAnimationController;->$r8$lambda$JcdbAlurTKELtf00FTNRcAhVGdk(Ljava/util/ArrayList;Lcom/android/server/wm/Task;)V PLcom/android/server/wm/RecentsAnimationController;->$r8$lambda$f7wlzX-2wJWRo4nvgusgrbDgdsM(ILcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/RecentsAnimationController;->$r8$lambda$lHMlITmvmPHNCXv5vKMlpPCQDkI(Lcom/android/server/wm/RecentsAnimationController;Landroid/util/SparseBooleanArray;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;ILcom/android/server/wm/Task;)V PLcom/android/server/wm/RecentsAnimationController;->$r8$lambda$oWiB-OiltbcVHsjISTZI_Rb6g_0(Lcom/android/server/wm/Task;ILcom/android/server/wm/AnimationAdapter;)V @@ -49514,12 +50498,14 @@ PLcom/android/server/wm/RecentsAnimationController;->getTargetAppMainWindow()Lco HPLcom/android/server/wm/RecentsAnimationController;->initialize(ILandroid/util/SparseBooleanArray;Lcom/android/server/wm/ActivityRecord;)V HPLcom/android/server/wm/RecentsAnimationController;->isAnimatingApp(Lcom/android/server/wm/ActivityRecord;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Ljava/util/ArrayList;Ljava/util/ArrayList; HPLcom/android/server/wm/RecentsAnimationController;->isAnimatingTask(Lcom/android/server/wm/Task;)Z +HPLcom/android/server/wm/RecentsAnimationController;->isInterestingForAllDrawn(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/RecentsAnimationController;->isNavigationBarAttachedToApp()Z PLcom/android/server/wm/RecentsAnimationController;->isTargetApp(Lcom/android/server/wm/ActivityRecord;)Z HPLcom/android/server/wm/RecentsAnimationController;->isTargetOverWallpaper()Z HPLcom/android/server/wm/RecentsAnimationController;->isWallpaperVisible(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/RecentsAnimationController;->lambda$collectTaskRemoteAnimations$4(Landroid/util/SparseBooleanArray;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;ILcom/android/server/wm/Task;)V PLcom/android/server/wm/RecentsAnimationController;->lambda$createWallpaperAnimations$5(Lcom/android/server/wm/WallpaperAnimationAdapter;)V +PLcom/android/server/wm/RecentsAnimationController;->lambda$initialize$0(Ljava/util/ArrayList;Lcom/android/server/wm/Task;)V PLcom/android/server/wm/RecentsAnimationController;->lambda$initialize$1(ILcom/android/server/wm/AnimationAdapter;Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/RecentsAnimationController;->lambda$initialize$2(Lcom/android/server/wm/Task;ILcom/android/server/wm/AnimationAdapter;)V PLcom/android/server/wm/RecentsAnimationController;->linkFixedRotationTransformIfNeeded(Lcom/android/server/wm/WindowToken;)V @@ -49575,7 +50561,7 @@ HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Z)V HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget; PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->getMode()I -PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->hasAnimatingParent()Z +HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->hasAnimatingParent()Z PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->setMode(I)V PLcom/android/server/wm/RemoteAnimationController;->$r8$lambda$6pKxWk67O4hi7MGkhw4l4d6M1OY(Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/RemoteAnimationController;->$r8$lambda$KttAYupsa9WmMV5ls2QHPGUG25M(Lcom/android/server/wm/RemoteAnimationController;)V @@ -49635,36 +50621,63 @@ PLcom/android/server/wm/RootDisplayArea;->isOrientationDifferentFromDisplay()Z HSPLcom/android/server/wm/RootDisplayArea;->onHierarchyBuilt(Ljava/util/ArrayList;[Lcom/android/server/wm/DisplayArea$Tokens;Ljava/util/Map;)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda0;-><init>(I[Z)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Z +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda10;-><init>(Landroid/os/IBinder;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda11;-><init>(Lcom/android/server/wm/RootWindowContainer;ZLcom/android/server/wm/DisplayContent;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/Task;[ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda13;-><init>([Z[ZLcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda13;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda14;-><init>(Lcom/android/server/wm/RootWindowContainer;)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda14;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/Task;[Z[I)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda16;->test(Ljava/lang/Object;)Z +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda17;-><init>()V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda17;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;-><init>([Z)V HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda19;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda19;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda1;-><init>(Landroid/util/ArrayMap;)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;)V HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda22;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda24;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda28;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda26;->test(Ljava/lang/Object;)Z +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda27;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda28;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda2;-><init>()V HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda30;->accept(Ljava/lang/Object;)V -HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda31;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda33;-><init>(Landroid/util/ArraySet;Z)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda33;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;)V +HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda34;-><init>()V +HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;)V HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda35;-><init>(Lcom/android/server/policy/PermissionPolicyInternal;)V HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda35;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda36;-><init>([ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;[Z)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda36;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda37;-><init>([ZLjava/io/PrintWriter;Ljava/lang/String;[Z)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda38;-><init>(Ljava/io/PrintWriter;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda39;-><init>(Ljava/io/PrintWriter;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda3;-><init>()V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda40;-><init>(IZLjava/util/ArrayList;Ljava/lang/String;I)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda40;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda41;-><init>(Ljava/util/ArrayList;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda42;-><init>(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;)V +HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda43;-><init>(Lcom/android/server/wm/RootWindowContainer;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda43;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda44;-><init>(I)V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda44;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda46;-><init>(Ljava/io/PrintWriter;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda46;->run()V +PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda47;-><init>(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZ)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda47;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda48;-><init>()V PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda48;->accept(Ljava/lang/Object;)V @@ -49676,7 +50689,7 @@ HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda6;->accept( HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda7;-><init>(Lcom/android/server/wm/RootWindowContainer;ILjava/lang/String;ZZ)V HSPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda8;-><init>()V -PLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object; +HPLcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object; HSPLcom/android/server/wm/RootWindowContainer$1;-><init>(Lcom/android/server/wm/RootWindowContainer;)V HSPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;-><init>(Lcom/android/server/wm/RootWindowContainer;)V HSPLcom/android/server/wm/RootWindowContainer$AttachApplicationHelper;-><init>(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer$AttachApplicationHelper-IA;)V @@ -49709,13 +50722,37 @@ PLcom/android/server/wm/RootWindowContainer$SleepToken;->toString()Ljava/lang/St PLcom/android/server/wm/RootWindowContainer$SleepToken;->writeTagToProto(Landroid/util/proto/ProtoOutputStream;J)V PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$-3irvApYkzPx3a7ofFGo6g21S68(Landroid/util/ArraySet;ZLcom/android/server/wm/WindowState;)V PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$0K5_lOUa9Z-fSiefUa0kyLzyOco(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZLcom/android/server/wm/WindowState;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$0nDrEWNy1rWt9GYB5urPfIMOET8(IZLjava/util/ArrayList;Ljava/lang/String;ILcom/android/server/wm/Task;)Z +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$2Bxei4ijwyN7PNDUoFn4BIjp7i8(Lcom/android/server/wm/TaskFragment;)V PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$2k3zC_nv2SZ_nI8-ixMORvQU-jI(Lcom/android/server/wm/ActivityRecord;IZLandroid/content/Intent;Landroid/content/ComponentName;)Z +HPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$3qAr0mgxnLmuKRIR6PL8tzYPjvs(Lcom/android/server/wm/Task;[ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)V +HPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$46Zco3Mmafn5oLMCqYU9lYpD1FM(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$4WGk-GfUnG3gbiH1UlvsUn5sLmk([ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;[ZLcom/android/server/wm/Task;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$5YHH6rvwizakAO95H0atIDV2DnA([ZLcom/android/server/wm/Task;)Z +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$7pvQiYr75sfRAOG9gj3H86Zco4M(Lcom/android/server/wm/TaskFragment;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$95qC-1ZUnz4HFKq9TM8jsgele88(Lcom/android/server/wm/RootWindowContainer;ZLcom/android/server/wm/DisplayContent;Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$9NSGjVLF1911WDdVCp9gy7WJxxk([Z[ZLcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskDisplayArea;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$9QEVgIZoOr5sN6fXXE1semHFZGU(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$CpSRwoqfEa6O7fvbNCQqMq4Tc3w(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$FLmzhr01j2GERvqrf-mKQKpEFpE(Lcom/android/server/wm/ActivityRecord;Landroid/content/pm/ApplicationInfo;ILjava/lang/String;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$JVOaWwTtGvpy9mIEgVqOCuiNirQ(Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$MC0EJXT4AdtfxNOjrlJVyarOVF0(Lcom/android/server/policy/PermissionPolicyInternal;ILjava/lang/String;[ILcom/android/server/wm/TaskFragment;)Z HSPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$NBiBwCPKbn9eWkBWdVl8xwrBdiQ(Lcom/android/server/wm/RootWindowContainer;ILjava/lang/String;ZZLcom/android/server/wm/TaskDisplayArea;Ljava/lang/Boolean;)Ljava/lang/Boolean; PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$Ri7vdqxDlnsHj-QO4xVX8eT4F9M(Lcom/android/server/wm/WindowState;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$U1JPR8HO_4BOZCATFm3KVD2VRaw(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$Uy13UFAHZKW61mOI97RGyOT47EM(Lcom/android/server/wm/DisplayContent;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$Vr8wTDumqzP5gZxJmDaG9t2PEDU([ZLjava/io/PrintWriter;Ljava/lang/String;[ZLcom/android/server/wm/TaskDisplayArea;)V PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$WCVj2i4iRluPRIROcqjqT7W2Vxg(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/WindowState;)V HPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$YLZAlJ3sCipIy27vYwSdw4Ep3R4(Lcom/android/server/wm/Task;Landroid/app/ActivityTaskManager$RootTaskInfo;[I)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$ZSMc7-i3inE8PKyTR4lUa_6oS24(Ljava/io/PrintWriter;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$ZkXQ9yxHUB6T38H0slloJdKlgMA(I[ZLcom/android/server/wm/WindowState;)Z +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$d_kqzD6SfMPF4eXn_9ZmaVU86y8(Z[ZZLcom/android/server/wm/Task;)V +HSPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$fk1uzU77OpLBm_P4BVaoDGWyO_Y(Landroid/util/ArrayMap;Lcom/android/server/wm/DisplayContent;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$mitRa7613GDhd8Am10JfytbAcFk(Landroid/os/IBinder;Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$oz7Sqho3KXMn0jCbWr13BoYh5Yk([ZLcom/android/server/wm/Task;)Z +HPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$qBUAgwgqW8w6VUadOB2XPQ4odGQ(Lcom/android/server/wm/Task;[Z[ILcom/android/server/wm/Task;)Z +HPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$tQIm92pSCM7PrVtpl0bBsyH-3kQ(Lcom/android/server/policy/PermissionPolicyInternal;Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$tU3uq54E6s47P2cFrn4v86Si-94(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;Lcom/android/server/wm/Task;[Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)V HPLcom/android/server/wm/RootWindowContainer;->$r8$lambda$vlR7JHwDJ2dJBdkmJw8S5HvCnpQ(Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$vopjHVBHe9nzZgTtNm5xV035tQc(ILcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/RootWindowContainer;->$r8$lambda$w2uTYlwL-hJqpslfXKyteZvT-Tc(Lcom/android/server/wm/RootWindowContainer;Ljava/lang/String;Lcom/android/server/wm/TaskDisplayArea;)V @@ -49800,15 +50837,39 @@ HSPLcom/android/server/wm/RootWindowContainer;->invalidateTaskLayers()V HSPLcom/android/server/wm/RootWindowContainer;->isLayoutNeeded()Z+]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent; PLcom/android/server/wm/RootWindowContainer;->isOnTop()Z HSPLcom/android/server/wm/RootWindowContainer;->isTopDisplayFocusedRootTask(Lcom/android/server/wm/Task;)Z +PLcom/android/server/wm/RootWindowContainer;->lambda$addStartingWindowsForVisibleActivities$25(Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/RootWindowContainer;->lambda$allPausedActivitiesComplete$33([ZLcom/android/server/wm/Task;)Z+]Lcom/android/internal/protolog/ProtoLogGroup;Lcom/android/internal/protolog/ProtoLogGroup;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +PLcom/android/server/wm/RootWindowContainer;->lambda$allResumedActivitiesVisible$32([ZLcom/android/server/wm/Task;)Z +PLcom/android/server/wm/RootWindowContainer;->lambda$applySleepTokens$19(Lcom/android/server/wm/TaskFragment;)V +HPLcom/android/server/wm/RootWindowContainer;->lambda$applySleepTokens$20(ZLcom/android/server/wm/DisplayContent;Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/RootWindowContainer;->lambda$closeSystemDialogActivities$29(Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/RootWindowContainer;->lambda$dumpActivities$40([ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;[ZLcom/android/server/wm/Task;)V +PLcom/android/server/wm/RootWindowContainer;->lambda$dumpActivities$41(Ljava/io/PrintWriter;)V +PLcom/android/server/wm/RootWindowContainer;->lambda$dumpActivities$42([ZLjava/io/PrintWriter;Ljava/lang/String;[ZLcom/android/server/wm/TaskDisplayArea;)V HPLcom/android/server/wm/RootWindowContainer;->lambda$dumpWindowsNoHeader$9(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZLcom/android/server/wm/WindowState;)V +PLcom/android/server/wm/RootWindowContainer;->lambda$findTask$16(Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;)Lcom/android/server/wm/ActivityRecord; +PLcom/android/server/wm/RootWindowContainer;->lambda$finishTopCrashedActivities$17(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;Lcom/android/server/wm/Task;[Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/RootWindowContainer;->lambda$finishVoiceTask$31(Landroid/os/IBinder;Lcom/android/server/wm/Task;)V PLcom/android/server/wm/RootWindowContainer;->lambda$getDisplayContextsWithNonToastVisibleWindows$10(ILcom/android/server/wm/WindowState;)Z +PLcom/android/server/wm/RootWindowContainer;->lambda$getDumpActivities$39(IZLjava/util/ArrayList;Ljava/lang/String;ILcom/android/server/wm/Task;)Z +HPLcom/android/server/wm/RootWindowContainer;->lambda$getRootTaskInfo$21(Lcom/android/server/wm/Task;[Z[ILcom/android/server/wm/Task;)Z +HPLcom/android/server/wm/RootWindowContainer;->lambda$getTaskToShowPermissionDialogOn$37(Lcom/android/server/policy/PermissionPolicyInternal;Lcom/android/server/wm/ActivityRecord;)Z +HPLcom/android/server/wm/RootWindowContainer;->lambda$getTaskToShowPermissionDialogOn$38(Lcom/android/server/policy/PermissionPolicyInternal;ILjava/lang/String;[ILcom/android/server/wm/TaskFragment;)Z+]Lcom/android/server/policy/PermissionPolicyInternal;Lcom/android/server/policy/PermissionPolicyService$Internal;]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/RootWindowContainer;->lambda$getTopVisibleActivities$13(Lcom/android/server/wm/Task;Ljava/util/ArrayList;Lcom/android/server/wm/Task;)V +HPLcom/android/server/wm/RootWindowContainer;->lambda$hasVisibleWindowAboveButDoesNotOwnNotificationShade$30(I[ZLcom/android/server/wm/WindowState;)Z +PLcom/android/server/wm/RootWindowContainer;->lambda$moveActivityToPinnedRootTask$15(Lcom/android/server/wm/TaskFragment;)V HPLcom/android/server/wm/RootWindowContainer;->lambda$new$0(Lcom/android/server/wm/WindowState;)V HSPLcom/android/server/wm/RootWindowContainer;->lambda$performSurfacePlacementNoTrace$8(Lcom/android/server/wm/DisplayContent;)V +PLcom/android/server/wm/RootWindowContainer;->lambda$putTasksToSleep$28(Z[ZZLcom/android/server/wm/Task;)V +HPLcom/android/server/wm/RootWindowContainer;->lambda$rankTaskLayers$26(Lcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/RootWindowContainer;->lambda$rankTaskLayers$27(Lcom/android/server/wm/Task;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task; +HPLcom/android/server/wm/RootWindowContainer;->lambda$resumeFocusedTasksTopActivities$18(Lcom/android/server/wm/Task;[ZZLandroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)V+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/RootWindowContainer;->lambda$startHomeOnDisplay$12(ILjava/lang/String;ZZLcom/android/server/wm/TaskDisplayArea;Ljava/lang/Boolean;)Ljava/lang/Boolean; PLcom/android/server/wm/RootWindowContainer;->lambda$startHomeOnEmptyDisplays$11(Ljava/lang/String;Lcom/android/server/wm/TaskDisplayArea;)V +HPLcom/android/server/wm/RootWindowContainer;->lambda$startPowerModeLaunchIfNeeded$36([Z[ZLcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskDisplayArea;)V HPLcom/android/server/wm/RootWindowContainer;->lambda$static$1(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/RootWindowContainer;->lambda$updateAppOpsState$5(Lcom/android/server/wm/WindowState;)V +HSPLcom/android/server/wm/RootWindowContainer;->lambda$updateDisplayImePolicyCache$24(Landroid/util/ArrayMap;Lcom/android/server/wm/DisplayContent;)V PLcom/android/server/wm/RootWindowContainer;->lambda$updateHiddenWhileSuspendedState$4(Landroid/util/ArraySet;ZLcom/android/server/wm/WindowState;)V HPLcom/android/server/wm/RootWindowContainer;->makeSleepTokenKey(Ljava/lang/String;I)I PLcom/android/server/wm/RootWindowContainer;->matchesActivity(Lcom/android/server/wm/ActivityRecord;IZLandroid/content/Intent;Landroid/content/ComponentName;)Z @@ -49820,7 +50881,7 @@ HSPLcom/android/server/wm/RootWindowContainer;->onDisplayChanged(I)V PLcom/android/server/wm/RootWindowContainer;->onDisplayRemoved(I)V HSPLcom/android/server/wm/RootWindowContainer;->onSettingsRetrieved()V HSPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacement()V+]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer; -HSPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacementNoTrace()V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/os/Handler;Lcom/android/server/wm/RootWindowContainer$MyHandler;,Lcom/android/server/wm/WindowManagerService$H;]Lcom/android/server/wm/WindowAnimator;Lcom/android/server/wm/WindowAnimator;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/RecentsAnimationController;]Lcom/android/server/wm/TaskFragmentOrganizerController;Lcom/android/server/wm/TaskFragmentOrganizerController;]Lcom/android/server/wm/TaskOrganizerController;Lcom/android/server/wm/TaskOrganizerController;]Lcom/android/server/wm/BLASTSyncEngine;Lcom/android/server/wm/BLASTSyncEngine;]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer;]Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WallpaperController;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Landroid/os/Message;Landroid/os/Message;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacementNoTrace()V+]Landroid/os/Handler;Lcom/android/server/wm/RootWindowContainer$MyHandler;,Lcom/android/server/wm/WindowManagerService$H;]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/wm/WindowAnimator;Lcom/android/server/wm/WindowAnimator;]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/RecentsAnimationController;]Lcom/android/server/wm/TaskFragmentOrganizerController;Lcom/android/server/wm/TaskFragmentOrganizerController;]Lcom/android/server/wm/TaskOrganizerController;Lcom/android/server/wm/TaskOrganizerController;]Lcom/android/server/wm/BLASTSyncEngine;Lcom/android/server/wm/BLASTSyncEngine;]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Landroid/os/Message;Landroid/os/Message;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WallpaperController;]Lcom/android/server/wm/BackNavigationController;Lcom/android/server/wm/BackNavigationController; HPLcom/android/server/wm/RootWindowContainer;->processTaskForTaskInfo(Lcom/android/server/wm/Task;Landroid/app/ActivityTaskManager$RootTaskInfo;[I)V HPLcom/android/server/wm/RootWindowContainer;->putTasksToSleep(ZZ)Z HPLcom/android/server/wm/RootWindowContainer;->rankTaskLayers()V @@ -49855,12 +50916,15 @@ HSPLcom/android/server/wm/RootWindowContainer;->updateFocusedWindowLocked(IZ)Z+] PLcom/android/server/wm/RootWindowContainer;->updateHiddenWhileSuspendedState(Landroid/util/ArraySet;Z)V HSPLcom/android/server/wm/RootWindowContainer;->updateUIDsPresentOnDisplay()V HSPLcom/android/server/wm/RootWindowContainer;->updateUserRootTask(ILcom/android/server/wm/Task;)V -HPLcom/android/server/wm/RunningTasks$$ExternalSyntheticLambda0;-><init>()V +HSPLcom/android/server/wm/RunningTasks$$ExternalSyntheticLambda0;-><init>()V +HPLcom/android/server/wm/RunningTasks$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I HPLcom/android/server/wm/RunningTasks;->$r8$lambda$wq4k8UkeXfhaTfItYBOyypUdqO8(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)I HSPLcom/android/server/wm/RunningTasks;-><clinit>()V HSPLcom/android/server/wm/RunningTasks;-><init>()V +HPLcom/android/server/wm/RunningTasks;->accept(Lcom/android/server/wm/Task;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/util/TreeSet;Ljava/util/TreeSet;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Lcom/android/server/wm/RecentTasks;Lcom/android/server/wm/RecentTasks; +HPLcom/android/server/wm/RunningTasks;->accept(Ljava/lang/Object;)V+]Lcom/android/server/wm/RunningTasks;Lcom/android/server/wm/RunningTasks; HPLcom/android/server/wm/RunningTasks;->createRunningTaskInfo(Lcom/android/server/wm/Task;)Landroid/app/ActivityManager$RunningTaskInfo; -HPLcom/android/server/wm/RunningTasks;->getTasks(ILjava/util/List;ILcom/android/server/wm/RecentTasks;Lcom/android/server/wm/WindowContainer;ILandroid/util/ArraySet;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/RootWindowContainer;]Lcom/android/internal/util/function/pooled/PooledConsumer;Lcom/android/internal/util/function/pooled/PooledLambdaImpl;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/TreeSet;Ljava/util/TreeSet;]Lcom/android/server/wm/RunningTasks;Lcom/android/server/wm/RunningTasks;]Ljava/util/Iterator;Ljava/util/TreeMap$KeyIterator; +HPLcom/android/server/wm/RunningTasks;->getTasks(ILjava/util/List;ILcom/android/server/wm/RecentTasks;Lcom/android/server/wm/WindowContainer;ILandroid/util/ArraySet;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/RootWindowContainer;]Lcom/android/internal/util/function/pooled/PooledConsumer;Lcom/android/internal/util/function/pooled/PooledLambdaImpl;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/TreeSet;Ljava/util/TreeSet;]Lcom/android/server/wm/RunningTasks;Lcom/android/server/wm/RunningTasks;]Ljava/util/Iterator;Ljava/util/TreeMap$KeyIterator;]Lcom/android/internal/util/function/pooled/PooledLambda;Lcom/android/internal/util/function/pooled/PooledLambdaImpl; HPLcom/android/server/wm/RunningTasks;->lambda$static$0(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)I HSPLcom/android/server/wm/SafeActivityOptions;-><init>(Landroid/app/ActivityOptions;)V PLcom/android/server/wm/SafeActivityOptions;-><init>(Landroid/app/ActivityOptions;II)V @@ -49879,6 +50943,8 @@ HSPLcom/android/server/wm/SafeActivityOptions;->popAppVerificationBundle()Landro PLcom/android/server/wm/SafeActivityOptions;->selectiveCloneDisplayOptions()Lcom/android/server/wm/SafeActivityOptions; PLcom/android/server/wm/SafeActivityOptions;->setCallerOptions(Landroid/app/ActivityOptions;)V HSPLcom/android/server/wm/SafeActivityOptions;->setCallingPidUidForRemoteAnimationAdapter(Landroid/app/ActivityOptions;II)V +PLcom/android/server/wm/ScreenRotationAnimation$$ExternalSyntheticLambda0;-><init>(Landroid/view/SurfaceControl$Transaction;Z)V +PLcom/android/server/wm/ScreenRotationAnimation$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController$$ExternalSyntheticLambda0;-><init>(Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;)V PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController$$ExternalSyntheticLambda0;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController$$ExternalSyntheticLambda1;-><init>(Lcom/android/server/wm/DisplayContent;)V @@ -49903,6 +50969,7 @@ PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationControll PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startDisplayRotation()Lcom/android/server/wm/SurfaceAnimator; PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenRotationAnimation()V PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenshotRotationAnimation()Lcom/android/server/wm/SurfaceAnimator; +PLcom/android/server/wm/ScreenRotationAnimation;->$r8$lambda$km4x46TiJ-mlgYSBydJTKs6UPn8(Landroid/view/SurfaceControl$Transaction;ZLcom/android/server/wm/WindowState;)V PLcom/android/server/wm/ScreenRotationAnimation;->-$$Nest$fgetmBackColorSurface(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/SurfaceControl; PLcom/android/server/wm/ScreenRotationAnimation;->-$$Nest$fgetmContext(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/content/Context; PLcom/android/server/wm/ScreenRotationAnimation;->-$$Nest$fgetmDisplayContent(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/DisplayContent; @@ -49917,8 +50984,10 @@ PLcom/android/server/wm/ScreenRotationAnimation;->dismiss(Landroid/view/SurfaceC PLcom/android/server/wm/ScreenRotationAnimation;->hasScreenshot()Z PLcom/android/server/wm/ScreenRotationAnimation;->isAnimating()Z PLcom/android/server/wm/ScreenRotationAnimation;->kill()V +PLcom/android/server/wm/ScreenRotationAnimation;->lambda$setSkipScreenshotForRoundedCornerOverlays$0(Landroid/view/SurfaceControl$Transaction;ZLcom/android/server/wm/WindowState;)V PLcom/android/server/wm/ScreenRotationAnimation;->setRotation(Landroid/view/SurfaceControl$Transaction;I)V PLcom/android/server/wm/ScreenRotationAnimation;->setRotationTransform(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Matrix;)V +PLcom/android/server/wm/ScreenRotationAnimation;->setSkipScreenshotForRoundedCornerOverlays(ZLandroid/view/SurfaceControl$Transaction;)V PLcom/android/server/wm/ScreenRotationAnimation;->startAnimation(Landroid/view/SurfaceControl$Transaction;JFIIII)Z PLcom/android/server/wm/SeamlessRotator;-><init>(IILandroid/view/DisplayInfo;Z)V PLcom/android/server/wm/SeamlessRotator;->applyTransform(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V @@ -49950,6 +51019,7 @@ HPLcom/android/server/wm/Session;->finishDrawing(Landroid/view/IWindow;Landroid/ PLcom/android/server/wm/Session;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId; PLcom/android/server/wm/Session;->grantEmbeddedWindowFocus(Landroid/view/IWindow;Landroid/os/IBinder;Z)V PLcom/android/server/wm/Session;->grantInputChannel(ILandroid/view/SurfaceControl;Landroid/view/IWindow;Landroid/os/IBinder;IIILandroid/os/IBinder;Ljava/lang/String;Landroid/view/InputChannel;)V +PLcom/android/server/wm/Session;->hasAlertWindowSurfaces(Lcom/android/server/wm/DisplayContent;)Z HPLcom/android/server/wm/Session;->killSessionLocked()V PLcom/android/server/wm/Session;->lambda$setShouldZoomOutWallpaper$2(ZLcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/Session;->lambda$setWallpaperPosition$0(FFFFLcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)V @@ -50071,7 +51141,7 @@ HSPLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda2;-><in HSPLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda2;->run()V HSPLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda3;->makeAnimator()Landroid/animation/ValueAnimator; -PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V +HPLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda4;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda4;->doFrame(J)V PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Landroid/view/SurfaceControl;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V PLcom/android/server/wm/SurfaceAnimationRunner$$ExternalSyntheticLambda5;->onTransactionCommitted()V @@ -50094,7 +51164,7 @@ PLcom/android/server/wm/SurfaceAnimationRunner;->$r8$lambda$u1Jh9N5fY2HKNOPRKT57 PLcom/android/server/wm/SurfaceAnimationRunner;->$r8$lambda$zf6gMVYa4kZcjL0uos_OXS41EEA(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmAnimationHandler(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/animation/AnimationHandler; HPLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmAnimationThreadHandler(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/os/Handler; -PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmCancelLock(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object; +HPLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmCancelLock(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object; HPLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmFrameTransaction(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/view/SurfaceControl$Transaction; PLcom/android/server/wm/SurfaceAnimationRunner;->-$$Nest$fgetmLock(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object; HSPLcom/android/server/wm/SurfaceAnimationRunner;-><init>(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Lcom/android/server/wm/SurfaceAnimationRunner$AnimatorFactory;Landroid/view/SurfaceControl$Transaction;Landroid/os/PowerManagerInternal;)V @@ -50180,65 +51250,80 @@ HPLcom/android/server/wm/SystemGesturesPointerEventListener;->findIndex(I)I HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->lambda$systemReady$0()V HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->onConfigurationChanged()V HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V -HPLcom/android/server/wm/SystemGesturesPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V+]Landroid/view/GestureDetector;Lcom/android/server/wm/SystemGesturesPointerEventListener$1;]Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;Lcom/android/server/wm/DisplayPolicy$1;]Lcom/android/server/wm/SystemGesturesPointerEventListener;Lcom/android/server/wm/SystemGesturesPointerEventListener;]Landroid/view/InputEvent;Landroid/view/MotionEvent;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; +HPLcom/android/server/wm/SystemGesturesPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V+]Landroid/view/GestureDetector;Lcom/android/server/wm/SystemGesturesPointerEventListener$1;]Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;Lcom/android/server/wm/DisplayPolicy$1;]Lcom/android/server/wm/SystemGesturesPointerEventListener;Lcom/android/server/wm/SystemGesturesPointerEventListener;]Landroid/view/MotionEvent;Landroid/view/MotionEvent;]Landroid/view/InputEvent;Landroid/view/MotionEvent; HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->systemReady()V PLcom/android/server/wm/Task$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/wm/Task$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda10;-><init>()V PLcom/android/server/wm/Task$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda13;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda12;-><init>(Lcom/android/server/wm/Task;ZLjava/lang/String;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda12;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z+]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; -PLcom/android/server/wm/Task$$ExternalSyntheticLambda14;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda15;-><init>(Lcom/android/server/wm/ActivityRecord;IZZ)V -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda15;->accept(Ljava/lang/Object;)V +HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda14;-><init>()V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda14;->test(Ljava/lang/Object;)Z+]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +PLcom/android/server/wm/Task$$ExternalSyntheticLambda15;-><init>(ILjava/util/ArrayList;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda15;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda16;-><init>(Lcom/android/server/wm/ActivityRecord;IZZ)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda16;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda17;-><init>()V -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda17;->test(Ljava/lang/Object;)Z HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda18;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;Ljava/lang/Object;)Z +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda18;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda19;-><init>()V -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;)Z+]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +PLcom/android/server/wm/Task$$ExternalSyntheticLambda19;->test(Ljava/lang/Object;Ljava/lang/Object;)Z HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda1;-><init>()V HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda23;-><init>()V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda20;-><init>()V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda20;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda23;-><init>(Lcom/android/server/wm/Task;)V HPLcom/android/server/wm/Task$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;)V -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda26;-><init>(Lcom/android/server/wm/Task;IZ)V -HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda26;->run()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda27;-><init>()V -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda27;->test(Ljava/lang/Object;)Z +HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda24;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda27;-><init>(Lcom/android/server/wm/Task;IZ)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda27;->run()V HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda28;-><init>()V HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda28;->test(Ljava/lang/Object;)Z -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda29;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda29;-><init>()V HPLcom/android/server/wm/Task$$ExternalSyntheticLambda29;->test(Ljava/lang/Object;)Z HPLcom/android/server/wm/Task$$ExternalSyntheticLambda2;-><init>()V HPLcom/android/server/wm/Task$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/wm/Task;Z)V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda30;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/Task$$ExternalSyntheticLambda32;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda33;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda30;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda30;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda31;-><init>(Lcom/android/server/wm/Task;Z)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda31;->test(Ljava/lang/Object;)Z +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda32;-><init>([I)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda32;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda33;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda33;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/Task$$ExternalSyntheticLambda34;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda34;->test(Ljava/lang/Object;Ljava/lang/Object;)Z -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda35;-><init>([Lcom/android/server/wm/ActivityRecord;)V -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda35;->test(Ljava/lang/Object;)Z -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda37;->accept(Ljava/lang/Object;)V -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda38;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda34;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda36;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda36;->test(Ljava/lang/Object;Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda37;-><init>([Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda37;->test(Ljava/lang/Object;)Z +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda39;-><init>(Ljava/util/function/Consumer;Z)V HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda39;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda3;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda40;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda40;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/Task$$ExternalSyntheticLambda41;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda41;->test(Ljava/lang/Object;)Z -PLcom/android/server/wm/Task$$ExternalSyntheticLambda42;-><init>(Landroid/view/SurfaceControl$Transaction;)V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda42;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda40;-><init>(Lcom/android/server/wm/TaskFragment;[ZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Z)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda40;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda41;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda42;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda42;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/Task$$ExternalSyntheticLambda43;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda44;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda43;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda44;-><init>(Landroid/view/SurfaceControl$Transaction;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda44;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/Task$$ExternalSyntheticLambda45;-><init>()V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda45;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda45;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda46;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda46;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda47;-><init>(Ljava/util/ArrayList;)V PLcom/android/server/wm/Task$$ExternalSyntheticLambda47;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda4;-><init>([I)V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;Ljava/lang/Object;)Z -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda6;-><init>(Z[I)V -HPLcom/android/server/wm/Task$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V -PLcom/android/server/wm/Task$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/wm/Task;ZLjava/lang/String;)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda5;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/Task$$ExternalSyntheticLambda6;-><init>([I)V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;Ljava/lang/Object;)Z +HSPLcom/android/server/wm/Task$$ExternalSyntheticLambda7;-><init>()V +PLcom/android/server/wm/Task$$ExternalSyntheticLambda8;-><init>(Z[I)V +HPLcom/android/server/wm/Task$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V HPLcom/android/server/wm/Task$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/Task$ActivityTaskHandler;-><init>(Lcom/android/server/wm/Task;Landroid/os/Looper;)V PLcom/android/server/wm/Task$ActivityTaskHandler;->handleMessage(Landroid/os/Message;)V @@ -50318,15 +51403,31 @@ HSPLcom/android/server/wm/Task$FindRootHelper;-><init>(Lcom/android/server/wm/Ta HSPLcom/android/server/wm/Task$FindRootHelper;->findRoot(ZZ)Lcom/android/server/wm/ActivityRecord;+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task; HSPLcom/android/server/wm/Task$FindRootHelper;->test(Lcom/android/server/wm/ActivityRecord;)Z+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo; HSPLcom/android/server/wm/Task$FindRootHelper;->test(Ljava/lang/Object;)Z+]Lcom/android/server/wm/Task$FindRootHelper;Lcom/android/server/wm/Task$FindRootHelper; +PLcom/android/server/wm/Task;->$r8$lambda$-2BIfvngIV8_9aScV0G8RibT8U8(Z[ILcom/android/server/wm/TaskFragment;)V PLcom/android/server/wm/Task;->$r8$lambda$-nHv3hp3munhu4Gy96iX2y0sRuI(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z +HPLcom/android/server/wm/Task;->$r8$lambda$02qk-9XodTdgz4ZzhgdsM9xBP20(Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/Task;->$r8$lambda$3F4bfO6m4ZeNuptW5UmRFZwqEjs(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;)V +PLcom/android/server/wm/Task;->$r8$lambda$6HJiPlMZ1UEBoMhSASXUfGFg2Z8(ILjava/util/ArrayList;ILcom/android/server/wm/AnimationAdapter;)V +PLcom/android/server/wm/Task;->$r8$lambda$8TKapAyA8rieJ6ORUe-xYTBPD04([Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskFragment;)Z PLcom/android/server/wm/Task;->$r8$lambda$8poV5n-86wJhs6-aL3Pgdx1OEqc(Lcom/android/server/wm/Task;ZLjava/lang/String;Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/Task;->$r8$lambda$9r7Xp-N0Oy2wDE88HOSr4eNmA1Q(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/Task;->$r8$lambda$CjYN3ut3_eNan1AWUCfq2whHyXw(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/util/TypedXmlSerializer;)Z +PLcom/android/server/wm/Task;->$r8$lambda$ECiI_TEpXiE2R22VV69-NgA-Scc(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/Task;->$r8$lambda$LJldyA0gdCRVhx8pH1aJiEkv4kk(Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/Task;->$r8$lambda$NX_WAXOf_Zq7WDh4OZTgC_lv-rs(Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/Task;->$r8$lambda$TL11kFBnd2aDukUd_guxwvUDuRo(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/Task;->$r8$lambda$TwcYFtyP_7sSBwZAOJGxcsSiZJc(Lcom/android/server/wm/ActivityRecord;Landroid/os/IBinder;)Z PLcom/android/server/wm/Task;->$r8$lambda$Wwws5BuMWYB8-loxB0lyXusGKGA(Lcom/android/server/wm/WindowState;)Z +HPLcom/android/server/wm/Task;->$r8$lambda$byfqBWWF9YjHegIZYJRFdpWZ2Mc(Ljava/util/function/Consumer;ZLcom/android/server/wm/Task;)V +HPLcom/android/server/wm/Task;->$r8$lambda$glAS06h6u0gde7lZWW7SuxTbP1w(Lcom/android/server/wm/ActivityRecord;IZZLcom/android/server/wm/Task;)V +PLcom/android/server/wm/Task;->$r8$lambda$jAJofLaL4TUlVmDoQ2Lqw_A5S-I(Lcom/android/server/wm/TaskFragment;[ZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;ZLcom/android/server/wm/TaskFragment;)V PLcom/android/server/wm/Task;->$r8$lambda$kVFV0G5jvPRg87xY3rsx89jykCI([ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/Task;->$r8$lambda$n-oVOS35Nnix9WNaMN7p49xKXc8(Lcom/android/server/wm/ActivityRecord;)Z +HPLcom/android/server/wm/Task;->$r8$lambda$s0DjKqWamfNGEBORO6-BAWHvD-k([ILcom/android/server/wm/Task;)V +PLcom/android/server/wm/Task;->$r8$lambda$sgSUd7ZUO5RQVw7R4XjLZxtHIu4(Lcom/android/server/wm/Task;IZ)V PLcom/android/server/wm/Task;->$r8$lambda$thiCDNG7Q7jAEAHf_yqFewUHl_A(Lcom/android/server/wm/ActivityRecord;Landroid/content/ComponentName;I)Z HSPLcom/android/server/wm/Task;->$r8$lambda$uPzn7AyFC3Orcy8ROEU4TPRxugk(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskDescription;)Z +PLcom/android/server/wm/Task;->$r8$lambda$uwHAnqkzrrONBv-AsDtOoThJunA(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/Task;->$r8$lambda$zx2TtJkMWFWV5l_NJHc2mikmQ4A(Lcom/android/server/wm/Task;ZLjava/lang/Object;)Z HSPLcom/android/server/wm/Task;->-$$Nest$fputmHasBeenVisible(Lcom/android/server/wm/Task;Z)V HSPLcom/android/server/wm/Task;->-$$Nest$maddChild(Lcom/android/server/wm/Task;Lcom/android/server/wm/WindowContainer;IZ)V @@ -50371,17 +51472,18 @@ HSPLcom/android/server/wm/Task;->ensureActivitiesVisible(Lcom/android/server/wm/ HPLcom/android/server/wm/Task;->executeAppTransition(Landroid/app/ActivityOptions;)V HSPLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;)V+]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task; HSPLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;Z)V+]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task; -HSPLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;ZLcom/android/server/wm/TaskDisplayArea;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;Lcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;]Landroid/app/TaskInfo;Landroid/app/ActivityManager$RecentTaskInfo;,Landroid/app/ActivityManager$RunningTaskInfo;,Landroid/app/ActivityTaskManager$RootTaskInfo;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Landroid/app/PictureInPictureParams;Landroid/app/PictureInPictureParams;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Lcom/android/server/wm/WindowContainer$RemoteToken;Lcom/android/server/wm/WindowContainer$RemoteToken;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +HSPLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;ZLcom/android/server/wm/TaskDisplayArea;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;Lcom/android/server/wm/ActivityTaskSupervisor$TaskInfoHelper;]Landroid/app/TaskInfo;Landroid/app/ActivityManager$RecentTaskInfo;,Landroid/app/ActivityTaskManager$RootTaskInfo;,Landroid/app/ActivityManager$RunningTaskInfo;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Landroid/app/PictureInPictureParams;Landroid/app/PictureInPictureParams;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Lcom/android/server/wm/WindowContainer$RemoteToken;Lcom/android/server/wm/WindowContainer$RemoteToken;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/content/Intent;Landroid/content/Intent;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/Task;->findActivityInHistory(Landroid/content/ComponentName;I)Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/Task;->findEnterPipOnTaskSwitchCandidate(Lcom/android/server/wm/Task;)Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/Task;->finishActivityAbove(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;[I)Z PLcom/android/server/wm/Task;->finishIfVoiceActivity(Lcom/android/server/wm/ActivityRecord;Landroid/os/IBinder;)Z +PLcom/android/server/wm/Task;->finishIfVoiceTask(Landroid/os/IBinder;)V PLcom/android/server/wm/Task;->finishTopCrashedActivityLocked(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)Lcom/android/server/wm/Task; HSPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/ActivityRecord;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/util/function/Consumer;megamorphic_types -HSPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/ActivityRecord;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/util/function/Predicate;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda26;,Lcom/android/server/wm/RootWindowContainer$FindTaskResult;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda23;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda37; +HSPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/ActivityRecord;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/util/function/Predicate;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda26;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda37;,Lcom/android/server/wm/RootWindowContainer$FindTaskResult;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda23;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda21;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda40; HPLcom/android/server/wm/Task;->forAllLeafTasksAndLeafTaskFragments(Ljava/util/function/Consumer;Z)V HSPLcom/android/server/wm/Task;->forAllRootTasks(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/util/function/Consumer;megamorphic_types -HPLcom/android/server/wm/Task;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z+]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/util/function/Predicate;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda23;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda25; +HPLcom/android/server/wm/Task;->forAllRootTasks(Ljava/util/function/Predicate;Z)Z+]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/util/function/Predicate;Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda23;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda25;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda20;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda18;,Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda16; HSPLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Consumer;Z)V+]Ljava/util/function/Consumer;megamorphic_types HSPLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Predicate;)Z+]Ljava/util/function/Predicate;Lcom/android/server/wm/DisplayArea$Dimmable$$ExternalSyntheticLambda0;,Lcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult; HSPLcom/android/server/wm/Task;->fromWindowContainerToken(Landroid/window/WindowContainerToken;)Lcom/android/server/wm/Task; @@ -50451,11 +51553,27 @@ HSPLcom/android/server/wm/Task;->isTaskId(I)Z HSPLcom/android/server/wm/Task;->isTopRootTaskInDisplayArea()Z HPLcom/android/server/wm/Task;->isTopRunningNonDelayed(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z HPLcom/android/server/wm/Task;->isUidPresent(I)Z +PLcom/android/server/wm/Task;->lambda$applyAnimationUnchecked$14(ILjava/util/ArrayList;ILcom/android/server/wm/AnimationAdapter;)V PLcom/android/server/wm/Task;->lambda$clearTopActivities$4([ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z +HPLcom/android/server/wm/Task;->lambda$ensureActivitiesVisible$20(Lcom/android/server/wm/ActivityRecord;IZZLcom/android/server/wm/Task;)V +PLcom/android/server/wm/Task;->lambda$findEnterPipOnTaskSwitchCandidate$23([Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/TaskFragment;)Z +HPLcom/android/server/wm/Task;->lambda$forAllLeafTasksAndLeafTaskFragments$13(Ljava/util/function/Consumer;ZLcom/android/server/wm/Task;)V +PLcom/android/server/wm/Task;->lambda$getDescendantTaskCount$5([ILcom/android/server/wm/Task;)V PLcom/android/server/wm/Task;->lambda$getNextFocusableTask$6(ZLjava/lang/Object;)Z +PLcom/android/server/wm/Task;->lambda$getOccludingActivityAbove$8(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/Task;->lambda$getStartingWindowInfo$16(Lcom/android/server/wm/WindowState;)Z +HPLcom/android/server/wm/Task;->lambda$getTopFullscreenActivity$9(Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/Task;->lambda$getTopRealVisibleActivity$11(Lcom/android/server/wm/ActivityRecord;)Z +HPLcom/android/server/wm/Task;->lambda$getTopVisibleActivity$10(Lcom/android/server/wm/ActivityRecord;)Z+]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord; +PLcom/android/server/wm/Task;->lambda$goToSleepIfPossible$19(Z[ILcom/android/server/wm/TaskFragment;)V PLcom/android/server/wm/Task;->lambda$removeActivities$3(ZLjava/lang/String;Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/Task;->lambda$resumeTopActivityInnerLocked$21(Lcom/android/server/wm/TaskFragment;[ZLcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;ZLcom/android/server/wm/TaskFragment;)V +PLcom/android/server/wm/Task;->lambda$setMainWindowSizeChangeTransaction$17(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;)V +PLcom/android/server/wm/Task;->lambda$setWindowingMode$18(IZ)V +PLcom/android/server/wm/Task;->lambda$startActivityLocked$22(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/Task;->lambda$topActivityContainsStartingWindow$0(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/Task;->lambda$topActivityContainsStartingWindow$1(Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/Task;->lambda$trimIneffectiveInfo$15(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/Task;->lockTaskAuthToString()Ljava/lang/String; HPLcom/android/server/wm/Task;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder; PLcom/android/server/wm/Task;->matchesActivityInHistory(Lcom/android/server/wm/ActivityRecord;Landroid/content/ComponentName;I)Z @@ -50470,7 +51588,6 @@ HPLcom/android/server/wm/Task;->moveTaskToFront(Lcom/android/server/wm/Task;ZLan PLcom/android/server/wm/Task;->moveToBack(Ljava/lang/String;Lcom/android/server/wm/Task;)V PLcom/android/server/wm/Task;->moveToFront(Ljava/lang/String;)V HSPLcom/android/server/wm/Task;->moveToFront(Ljava/lang/String;Lcom/android/server/wm/Task;)V -PLcom/android/server/wm/Task;->navigateUpTo(Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;ILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;)Z PLcom/android/server/wm/Task;->notifyActivityDrawnLocked(Lcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/Task;->onActivityVisibleRequestedChanged()V PLcom/android/server/wm/Task;->onAppFocusChanged(Z)V @@ -50488,6 +51605,8 @@ PLcom/android/server/wm/Task;->performClearTaskForReuse(Z)V PLcom/android/server/wm/Task;->performClearTop(Lcom/android/server/wm/ActivityRecord;I[I)Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/Task;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V PLcom/android/server/wm/Task;->positionChildAt(Lcom/android/server/wm/ActivityRecord;I)V +PLcom/android/server/wm/Task;->positionChildAtBottom(Lcom/android/server/wm/Task;)V +PLcom/android/server/wm/Task;->positionChildAtBottom(Lcom/android/server/wm/Task;Z)V PLcom/android/server/wm/Task;->positionChildAtTop(Lcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/Task;->positionChildAtTop(Lcom/android/server/wm/Task;)V HSPLcom/android/server/wm/Task;->prepareSurfaces()V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/Dimmer;Lcom/android/server/wm/Dimmer; @@ -50564,6 +51683,7 @@ PLcom/android/server/wm/Task;->topActivityContainsStartingWindow()Lcom/android/s HSPLcom/android/server/wm/Task;->topRunningActivityLocked()Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/Task;->topRunningNonDelayedActivityLocked(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord; HSPLcom/android/server/wm/Task;->touchActiveTime()V +PLcom/android/server/wm/Task;->trimIneffectiveInfo(Lcom/android/server/wm/Task;Landroid/app/TaskInfo;)V HSPLcom/android/server/wm/Task;->updateEffectiveIntent()V HPLcom/android/server/wm/Task;->updateOverlayInsetsState(Lcom/android/server/wm/WindowState;)V HSPLcom/android/server/wm/Task;->updateOverrideConfigurationFromLaunchBounds()Landroid/graphics/Rect; @@ -50670,7 +51790,7 @@ HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$1(Landro HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$10(Landroid/app/ITaskStackListener;Landroid/os/Message;)V HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$11(Landroid/app/ITaskStackListener;Landroid/os/Message;)V HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$16(Landroid/app/ITaskStackListener;Landroid/os/Message;)V -HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$17(Landroid/app/ITaskStackListener;Landroid/os/Message;)V+]Landroid/app/ITaskStackListener;Landroid/app/ITaskStackListener$Stub$Proxy;,Lcom/android/server/app/GameServiceProviderInstanceImpl$4;,Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$BiometricTaskStackListener;,Lcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;,Lcom/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21$BiometricTaskStackListener; +HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$17(Landroid/app/ITaskStackListener;Landroid/os/Message;)V+]Landroid/app/ITaskStackListener;Landroid/app/ITaskStackListener$Stub$Proxy;,Lcom/android/server/app/GameServiceProviderInstanceImpl$4;,Lcom/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21$BiometricTaskStackListener;,Lcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;,Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$BiometricTaskStackListener; HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$18(Landroid/app/ITaskStackListener;Landroid/os/Message;)V PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$19(Landroid/app/ITaskStackListener;Landroid/os/Message;)V PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$2(Landroid/app/ITaskStackListener;Landroid/os/Message;)V @@ -50679,7 +51799,7 @@ PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$21(Landroi PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$22(Landroid/app/ITaskStackListener;Landroid/os/Message;)V PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$23(Landroid/app/ITaskStackListener;Landroid/os/Message;)V HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$3(Landroid/app/ITaskStackListener;Landroid/os/Message;)V -HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$4(Landroid/app/ITaskStackListener;Landroid/os/Message;)V+]Landroid/app/ITaskStackListener;Landroid/app/ITaskStackListener$Stub$Proxy;,Lcom/android/server/app/GameServiceProviderInstanceImpl$4;,Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$BiometricTaskStackListener;,Lcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;,Lcom/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21$BiometricTaskStackListener; +HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$4(Landroid/app/ITaskStackListener;Landroid/os/Message;)V+]Landroid/app/ITaskStackListener;Landroid/app/ITaskStackListener$Stub$Proxy;,Lcom/android/server/app/GameServiceProviderInstanceImpl$4;,Lcom/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21$BiometricTaskStackListener;,Lcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;,Lcom/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider$BiometricTaskStackListener; PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$6(Landroid/app/ITaskStackListener;Landroid/os/Message;)V PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$7(Landroid/app/ITaskStackListener;Landroid/os/Message;)V PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$8(Landroid/app/ITaskStackListener;Landroid/os/Message;)V @@ -50704,26 +51824,15 @@ PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskRequestedOr HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskSnapshotChanged(ILandroid/window/TaskSnapshot;)V HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskStackChanged()V HSPLcom/android/server/wm/TaskChangeNotificationController;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V -PLcom/android/server/wm/TaskChangeNotificationController;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V -PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda10;-><init>(Ljava/util/ArrayList;)V +HPLcom/android/server/wm/TaskChangeNotificationController;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda10;->accept(Ljava/lang/Object;)V HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda1;-><init>()V HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z -HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda2;-><init>(Lcom/android/server/wm/ActivityRecord;IZZ)V -HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V -HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda3;-><init>(Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/ActivityRecord;[I)V -HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V +HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda2;-><init>()V PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda4;-><init>()V -PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda4;->test(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda5;-><init>(Lcom/android/server/wm/TaskDisplayArea;I)V -HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda6;-><init>()V +PLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda5;-><init>()V +HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda6;-><init>(II)V HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda6;->test(Ljava/lang/Object;)Z -HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda7;-><init>()V -HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda7;->test(Ljava/lang/Object;)Z -HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda8;-><init>(II)V -HPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda8;->test(Ljava/lang/Object;)Z -HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda9;-><init>(Lcom/android/server/wm/ActivityRecord;[I)V HSPLcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/TaskDisplayArea;->$r8$lambda$6dfeH0rOP0g7SkSyWWTx1Wl7syI(Lcom/android/server/wm/ActivityRecord;[ILcom/android/server/wm/TaskFragment;)V HSPLcom/android/server/wm/TaskDisplayArea;->$r8$lambda$BScM-CD2wwiwQJSg-pC3GWQ185o(Lcom/android/server/wm/TaskDisplayArea;ILcom/android/server/wm/TaskDisplayArea;Ljava/lang/Integer;)Ljava/lang/Integer; @@ -50743,7 +51852,7 @@ HSPLcom/android/server/wm/TaskDisplayArea;->adjustRootTaskLayer(Landroid/view/Su HPLcom/android/server/wm/TaskDisplayArea;->allResumedActivitiesComplete()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/TaskDisplayArea;->asTaskDisplayArea()Lcom/android/server/wm/TaskDisplayArea; HSPLcom/android/server/wm/TaskDisplayArea;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea; -HSPLcom/android/server/wm/TaskDisplayArea;->assignRootTaskOrdering(Landroid/view/SurfaceControl$Transaction;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLcom/android/server/wm/TaskDisplayArea;->assignRootTaskOrdering(Landroid/view/SurfaceControl$Transaction;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/TaskDisplayArea;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/wm/TaskDisplayArea;Lcom/android/server/wm/TaskDisplayArea; PLcom/android/server/wm/TaskDisplayArea;->canCreateRemoteAnimationTarget()Z HSPLcom/android/server/wm/TaskDisplayArea;->canHostHomeTask()Z HSPLcom/android/server/wm/TaskDisplayArea;->canSpecifyOrientation()Z @@ -50767,6 +51876,7 @@ HSPLcom/android/server/wm/TaskDisplayArea;->getLastFocusedRootTask()Lcom/android HSPLcom/android/server/wm/TaskDisplayArea;->getLaunchRootTask(IILandroid/app/ActivityOptions;Lcom/android/server/wm/Task;I)Lcom/android/server/wm/Task; HSPLcom/android/server/wm/TaskDisplayArea;->getLaunchRootTask(IILandroid/app/ActivityOptions;Lcom/android/server/wm/Task;ILcom/android/server/wm/Task;)Lcom/android/server/wm/Task; PLcom/android/server/wm/TaskDisplayArea;->getLaunchRootTaskDef(Lcom/android/server/wm/Task;)Lcom/android/server/wm/TaskDisplayArea$LaunchRootTaskDef; +PLcom/android/server/wm/TaskDisplayArea;->getNextFocusableRootTask(Lcom/android/server/wm/Task;Z)Lcom/android/server/wm/Task; HSPLcom/android/server/wm/TaskDisplayArea;->getNextRootTaskId()I PLcom/android/server/wm/TaskDisplayArea;->getOrCreateRootHomeTask()Lcom/android/server/wm/Task; HSPLcom/android/server/wm/TaskDisplayArea;->getOrCreateRootHomeTask(Z)Lcom/android/server/wm/Task; @@ -50882,7 +51992,7 @@ HPLcom/android/server/wm/TaskFragment;->dump(Ljava/lang/String;Ljava/io/FileDesc PLcom/android/server/wm/TaskFragment;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V HPLcom/android/server/wm/TaskFragment;->dumpInner(Ljava/lang/String;Ljava/io/PrintWriter;ZLjava/lang/String;)V HPLcom/android/server/wm/TaskFragment;->fillsParent()Z+]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/Task; -HSPLcom/android/server/wm/TaskFragment;->forAllLeafTaskFragments(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Ljava/util/function/Consumer;Lcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda9;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda37;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda39; +HSPLcom/android/server/wm/TaskFragment;->forAllLeafTaskFragments(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Ljava/util/function/Consumer;Lcom/android/server/wm/TaskDisplayArea$$ExternalSyntheticLambda9;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda37;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda39;,Lcom/android/server/wm/Task$$ExternalSyntheticLambda38; HSPLcom/android/server/wm/TaskFragment;->forAllLeafTaskFragments(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;,Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/TaskFragment;Lcom/android/server/wm/Task;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Ljava/util/function/Predicate;megamorphic_types HSPLcom/android/server/wm/TaskFragment;->forAllTaskFragments(Ljava/util/function/Consumer;Z)V HSPLcom/android/server/wm/TaskFragment;->fromTaskFragmentToken(Landroid/os/IBinder;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/TaskFragment; @@ -51188,7 +52298,7 @@ HSPLcom/android/server/wm/TaskSnapshotPersister$1;-><init>(Lcom/android/server/w HSPLcom/android/server/wm/TaskSnapshotPersister$1;->run()V PLcom/android/server/wm/TaskSnapshotPersister$DeleteWriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;II)V PLcom/android/server/wm/TaskSnapshotPersister$DeleteWriteQueueItem;->write()V -PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Landroid/util/ArraySet;[I)V +HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Landroid/util/ArraySet;[I)V HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->getTaskId(Ljava/lang/String;)I HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->write()V PLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->-$$Nest$fgetmTaskId(Lcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;)I @@ -51282,6 +52392,16 @@ HSPLcom/android/server/wm/TransitionController;->useShellTransitionsRotation()Z HSPLcom/android/server/wm/TransitionTracer$TransitionTraceBuffer;-><init>(Lcom/android/server/wm/TransitionTracer;)V HSPLcom/android/server/wm/TransitionTracer$TransitionTraceBuffer;-><init>(Lcom/android/server/wm/TransitionTracer;Lcom/android/server/wm/TransitionTracer$TransitionTraceBuffer-IA;)V HSPLcom/android/server/wm/TransitionTracer;-><init>()V +PLcom/android/server/wm/TrustedOverlayHost;-><init>(Lcom/android/server/wm/WindowManagerService;)V +PLcom/android/server/wm/TrustedOverlayHost;->addOverlay(Landroid/view/SurfaceControlViewHost$SurfacePackage;Landroid/view/SurfaceControl;)V +PLcom/android/server/wm/TrustedOverlayHost;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V +PLcom/android/server/wm/TrustedOverlayHost;->dispatchDetachedFromWindow()V +PLcom/android/server/wm/TrustedOverlayHost;->dispatchInsetsChanged(Landroid/view/InsetsState;Landroid/graphics/Rect;)V +PLcom/android/server/wm/TrustedOverlayHost;->release()V +PLcom/android/server/wm/TrustedOverlayHost;->removeOverlay(Landroid/view/SurfaceControlViewHost$SurfacePackage;)Z +PLcom/android/server/wm/TrustedOverlayHost;->requireOverlaySurfaceControl()V +PLcom/android/server/wm/TrustedOverlayHost;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V +PLcom/android/server/wm/TrustedOverlayHost;->setParent(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V HSPLcom/android/server/wm/UnknownAppVisibilityController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V HPLcom/android/server/wm/UnknownAppVisibilityController;->allResolved()Z HPLcom/android/server/wm/UnknownAppVisibilityController;->appRemovedOrHidden(Lcom/android/server/wm/ActivityRecord;)V @@ -51357,6 +52477,7 @@ HPLcom/android/server/wm/WallpaperController;->getDisplayWidthOffset(ILandroid/g HSPLcom/android/server/wm/WallpaperController;->getWallpaperTarget()Lcom/android/server/wm/WindowState; HPLcom/android/server/wm/WallpaperController;->hideDeferredWallpapersIfNeededLegacy()V HPLcom/android/server/wm/WallpaperController;->hideWallpapers(Lcom/android/server/wm/WindowState;)V+]Lcom/android/server/wm/WallpaperWindowToken;Lcom/android/server/wm/WallpaperWindowToken;]Ljava/util/ArrayList;Ljava/util/ArrayList; +HPLcom/android/server/wm/WallpaperController;->isBackNavigationTarget(Lcom/android/server/wm/WindowState;)Z HSPLcom/android/server/wm/WallpaperController;->isBelowWallpaperTarget(Lcom/android/server/wm/WindowState;)Z PLcom/android/server/wm/WallpaperController;->isFullscreen(Landroid/view/WindowManager$LayoutParams;)Z HPLcom/android/server/wm/WallpaperController;->isRecentsTransitionTarget(Lcom/android/server/wm/WindowState;)Z+]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/RecentsAnimationController;]Lcom/android/server/wm/TransitionController;Lcom/android/server/wm/TransitionController; @@ -51404,7 +52525,7 @@ HPLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperWindows(Z)Z PLcom/android/server/wm/WindowAnimationSpec$$ExternalSyntheticLambda0;-><init>()V PLcom/android/server/wm/WindowAnimationSpec$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; HPLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>()V -PLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>(Lcom/android/server/wm/WindowAnimationSpec$TmpValues-IA;)V +HPLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>(Lcom/android/server/wm/WindowAnimationSpec$TmpValues-IA;)V HPLcom/android/server/wm/WindowAnimationSpec;->$r8$lambda$B0cB-PgJRblmTLJgrMlqryKQeBU()Lcom/android/server/wm/WindowAnimationSpec$TmpValues; HPLcom/android/server/wm/WindowAnimationSpec;-><init>(Landroid/view/animation/Animation;Landroid/graphics/Point;Landroid/graphics/Rect;ZIZF)V PLcom/android/server/wm/WindowAnimationSpec;-><init>(Landroid/view/animation/Animation;Landroid/graphics/Point;ZF)V @@ -51438,7 +52559,7 @@ HSPLcom/android/server/wm/WindowAnimator;->addDisplayLocked(I)V HSPLcom/android/server/wm/WindowAnimator;->animate(JJ)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/DisplayContent;,Lcom/android/server/wm/RootWindowContainer;]Lcom/android/server/wm/TaskSnapshotController;Lcom/android/server/wm/TaskSnapshotController;]Lcom/android/server/wm/WindowAnimator;Lcom/android/server/wm/WindowAnimator;]Lcom/android/server/wm/AccessibilityController;Lcom/android/server/wm/AccessibilityController;]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Lcom/android/server/wm/WindowSurfacePlacer;Lcom/android/server/wm/WindowSurfacePlacer;]Lcom/android/server/wm/TaskOrganizerController;Lcom/android/server/wm/TaskOrganizerController;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer; HSPLcom/android/server/wm/WindowAnimator;->cancelAnimation()V+]Landroid/view/Choreographer;Landroid/view/Choreographer; PLcom/android/server/wm/WindowAnimator;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;Z)V -HSPLcom/android/server/wm/WindowAnimator;->executeAfterPrepareSurfacesRunnables()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Runnable;Lcom/android/server/wm/RemoteAnimationController$$ExternalSyntheticLambda2;,Lcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda4;,Lcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda2;,Lcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda3; +HSPLcom/android/server/wm/WindowAnimator;->executeAfterPrepareSurfacesRunnables()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Runnable;Lcom/android/server/wm/RemoteAnimationController$$ExternalSyntheticLambda2;,Lcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda3;,Lcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda4;,Lcom/android/server/wm/InsetsStateController$$ExternalSyntheticLambda2; PLcom/android/server/wm/WindowAnimator;->getChoreographer()Landroid/view/Choreographer; HSPLcom/android/server/wm/WindowAnimator;->getDisplayContentsAnimatorLocked(I)Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator; PLcom/android/server/wm/WindowAnimator;->isAnimationScheduled()Z @@ -51450,6 +52571,8 @@ PLcom/android/server/wm/WindowAnimator;->requestRemovalOfReplacedWindows(Lcom/an HSPLcom/android/server/wm/WindowAnimator;->scheduleAnimation()V+]Landroid/view/Choreographer;Landroid/view/Choreographer; HSPLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda10;-><init>()V PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda10;->test(Ljava/lang/Object;)Z +PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda11;-><init>()V +PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda11;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda13;-><init>()V PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda13;->test(Ljava/lang/Object;)Z PLcom/android/server/wm/WindowContainer$$ExternalSyntheticLambda14;-><init>()V @@ -51486,7 +52609,7 @@ PLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;->-$$Nest$mbuild( PLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;->-$$Nest$msetTaskBackgroundColor(Lcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;I)V HPLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;-><init>(Lcom/android/server/wm/WindowContainer;)V PLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowContainer$AnimationRunnerBuilder-IA;)V -PLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;->build()Lcom/android/server/wm/WindowContainer$IAnimationStarter; +HPLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;->build()Lcom/android/server/wm/WindowContainer$IAnimationStarter; HPLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;->lambda$build$2(ILcom/android/server/wm/AnimationAdapter;)V PLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;->lambda$build$3()V HPLcom/android/server/wm/WindowContainer$AnimationRunnerBuilder;->lambda$build$4(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/AnimationAdapter;)V @@ -51509,6 +52632,7 @@ HSPLcom/android/server/wm/WindowContainer;->$r8$lambda$234A29yGN9FizkgSHI98SpTIS PLcom/android/server/wm/WindowContainer;->$r8$lambda$CqeI7rKVQi3UNnUp9aZU2DgHMwI(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/WindowContainer;->$r8$lambda$CwOFafKDHad3hUTXlB-krkCZEVI(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/WindowContainer;->$r8$lambda$LnJML3JOqm0_aVdJWDiX0PBFO5M(Lcom/android/server/wm/Task;)Z +PLcom/android/server/wm/WindowContainer;->$r8$lambda$NFtMLbOgBLgl31UGtXUGE6SmNNE(Lcom/android/server/wm/Task;)Z HPLcom/android/server/wm/WindowContainer;->$r8$lambda$YrlAkiQa0GkL3xT--G9kOwWFtck(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/WindowContainer;->$r8$lambda$ZBTNA4Izorc10Fa2PsA_ODwrowQ(Lcom/android/server/wm/ActivityRecord;)Z HPLcom/android/server/wm/WindowContainer;->$r8$lambda$jr26c-L38rk1QuoaOZNCYvglH4s(Lcom/android/server/wm/ActivityRecord;)Z @@ -51516,6 +52640,7 @@ HSPLcom/android/server/wm/WindowContainer;->-$$Nest$fgetmConsumerWrapperPool(Lco HSPLcom/android/server/wm/WindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V HSPLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;I)V HSPLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;Ljava/util/Comparator;)V +PLcom/android/server/wm/WindowContainer;->addTrustedOverlay(Landroid/view/SurfaceControlViewHost$SurfacePackage;Lcom/android/server/wm/WindowState;)V PLcom/android/server/wm/WindowContainer;->allSyncFinished()Z HPLcom/android/server/wm/WindowContainer;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZLjava/util/ArrayList;)Z HPLcom/android/server/wm/WindowContainer;->applyAnimationUnchecked(Landroid/view/WindowManager$LayoutParams;ZIZLjava/util/ArrayList;)V @@ -51569,7 +52694,7 @@ HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Cons HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList; HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Predicate;)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList; HPLcom/android/server/wm/WindowContainer;->forAllWallpaperWindows(Ljava/util/function/Consumer;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList; -HPLcom/android/server/wm/WindowContainer;->forAllWindowContainers(Ljava/util/function/Consumer;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Ljava/util/function/Consumer;Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda12;,Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda13;,Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda9; +HPLcom/android/server/wm/WindowContainer;->forAllWindowContainers(Ljava/util/function/Consumer;)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Ljava/util/function/Consumer;Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda13;,Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda12;,Lcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda9; HSPLcom/android/server/wm/WindowContainer;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList; HSPLcom/android/server/wm/WindowContainer;->forAllWindows(Ljava/util/function/Consumer;Z)V+]Lcom/android/server/wm/WindowContainer;megamorphic_types]Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper; HSPLcom/android/server/wm/WindowContainer;->fromBinder(Landroid/os/IBinder;)Lcom/android/server/wm/WindowContainer; @@ -51590,7 +52715,8 @@ HPLcom/android/server/wm/WindowContainer;->getAnimationLeash()Landroid/view/Surf HPLcom/android/server/wm/WindowContainer;->getAnimationLeashParent()Landroid/view/SurfaceControl; PLcom/android/server/wm/WindowContainer;->getAnimationPosition(Landroid/graphics/Point;)V PLcom/android/server/wm/WindowContainer;->getAnimationSources()Landroid/util/ArraySet; -PLcom/android/server/wm/WindowContainer;->getBottomMostActivity()Lcom/android/server/wm/ActivityRecord; +HPLcom/android/server/wm/WindowContainer;->getBottomMostActivity()Lcom/android/server/wm/ActivityRecord; +PLcom/android/server/wm/WindowContainer;->getBottomMostTask()Lcom/android/server/wm/Task; HSPLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/ConfigurationContainer;+]Lcom/android/server/wm/WindowContainer;megamorphic_types HSPLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/WindowContainer;+]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList; HSPLcom/android/server/wm/WindowContainer;->getChildCount()I+]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList; @@ -51647,7 +52773,7 @@ HSPLcom/android/server/wm/WindowContainer;->hasActivity()Z HSPLcom/android/server/wm/WindowContainer;->hasChild(Lcom/android/server/wm/WindowContainer;)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/ActivityRecord;]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList; PLcom/android/server/wm/WindowContainer;->hasCommittedReparentToAnimationLeash()Z HPLcom/android/server/wm/WindowContainer;->hasContentToDisplay()Z -HSPLcom/android/server/wm/WindowContainer;->inTransition()Z +HSPLcom/android/server/wm/WindowContainer;->inTransition()Z+]Lcom/android/server/wm/TransitionController;Lcom/android/server/wm/TransitionController; HSPLcom/android/server/wm/WindowContainer;->inTransitionSelfOrParent()Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/ActivityRecord;]Lcom/android/server/wm/TransitionController;Lcom/android/server/wm/TransitionController; HPLcom/android/server/wm/WindowContainer;->isAnimating()Z HSPLcom/android/server/wm/WindowContainer;->isAnimating(I)Z+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/Task;,Lcom/android/server/wm/DisplayContent;,Lcom/android/server/wm/ActivityRecord; @@ -51668,6 +52794,7 @@ HSPLcom/android/server/wm/WindowContainer;->isWaitingForTransitionStart()Z PLcom/android/server/wm/WindowContainer;->lambda$getActivityAbove$1(Lcom/android/server/wm/ActivityRecord;)Z HPLcom/android/server/wm/WindowContainer;->lambda$getActivityBelow$2(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostActivity$3(Lcom/android/server/wm/ActivityRecord;)Z +PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostTask$11(Lcom/android/server/wm/Task;)Z PLcom/android/server/wm/WindowContainer;->lambda$getTaskBelow$10(Lcom/android/server/wm/Task;)Z PLcom/android/server/wm/WindowContainer;->lambda$getTopActivity$7(Lcom/android/server/wm/ActivityRecord;)Z PLcom/android/server/wm/WindowContainer;->lambda$getTopMostActivity$4(Lcom/android/server/wm/ActivityRecord;)Z @@ -51720,6 +52847,7 @@ HSPLcom/android/server/wm/WindowContainer;->registerWindowContainerListener(Lcom HSPLcom/android/server/wm/WindowContainer;->removeChild(Lcom/android/server/wm/WindowContainer;)V HPLcom/android/server/wm/WindowContainer;->removeIfPossible()V HPLcom/android/server/wm/WindowContainer;->removeImmediately()V +PLcom/android/server/wm/WindowContainer;->removeTrustedOverlay(Landroid/view/SurfaceControlViewHost$SurfacePackage;)V HSPLcom/android/server/wm/WindowContainer;->reparent(Lcom/android/server/wm/WindowContainer;I)V HSPLcom/android/server/wm/WindowContainer;->reparentSurfaceControl(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V HPLcom/android/server/wm/WindowContainer;->resetSurfacePositionForAnimationLeash(Landroid/view/SurfaceControl$Transaction;)V @@ -51882,6 +53010,7 @@ PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda1;-><init>( PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda1;->run()V HSPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda20;-><init>()V HSPLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda20;->apply(Ljava/lang/Object;)Ljava/lang/Object; +PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda21;-><init>(Z)V PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda21;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda23;-><init>(Ljava/io/PrintWriter;)V PLcom/android/server/wm/WindowManagerService$$ExternalSyntheticLambda23;->accept(Ljava/lang/Object;)V @@ -51917,7 +53046,7 @@ PLcom/android/server/wm/WindowManagerService$7;->onOpChanged(ILjava/lang/String; HSPLcom/android/server/wm/WindowManagerService$8;-><init>(Lcom/android/server/wm/WindowManagerService;)V PLcom/android/server/wm/WindowManagerService$8;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V HSPLcom/android/server/wm/WindowManagerService$H;-><init>(Lcom/android/server/wm/WindowManagerService;)V -HPLcom/android/server/wm/WindowManagerService$H;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/os/Handler;Lcom/android/server/wm/WindowManagerService$H;]Lcom/android/server/wm/WindowAnimator;Lcom/android/server/wm/WindowAnimator;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/lang/Runtime;Ljava/lang/Runtime;]Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/RecentsAnimationController;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/wm/WindowSurfacePlacer;Lcom/android/server/wm/WindowSurfacePlacer;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Ljava/lang/Runnable;Lcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda2;,Lcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda0;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord; +HPLcom/android/server/wm/WindowManagerService$H;->handleMessage(Landroid/os/Message;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/ActivityRecord;]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/wm/WindowAnimator;Lcom/android/server/wm/WindowAnimator;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;]Ljava/lang/Runtime;Ljava/lang/Runtime;]Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/RecentsAnimationController;]Landroid/app/ActivityManagerInternal;Lcom/android/server/am/ActivityManagerService$LocalService;]Lcom/android/server/wm/WindowSurfacePlacer;Lcom/android/server/wm/WindowSurfacePlacer;]Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayContent;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Runnable;Lcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda0;,Lcom/android/server/policy/PhoneWindowManager$$ExternalSyntheticLambda2;]Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;]Landroid/os/Handler;Lcom/android/server/wm/WindowManagerService$H; PLcom/android/server/wm/WindowManagerService$H;->sendNewMessageDelayed(ILjava/lang/Object;J)V PLcom/android/server/wm/WindowManagerService$LocalService$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;FF)V PLcom/android/server/wm/WindowManagerService$LocalService$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V @@ -51928,6 +53057,7 @@ PLcom/android/server/wm/WindowManagerService$LocalService;->$r8$lambda$zG_Xgx4e- HSPLcom/android/server/wm/WindowManagerService$LocalService;-><init>(Lcom/android/server/wm/WindowManagerService;)V HSPLcom/android/server/wm/WindowManagerService$LocalService;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService$LocalService-IA;)V PLcom/android/server/wm/WindowManagerService$LocalService;->addRefreshRateRangeForPackage(Ljava/lang/String;FF)V +PLcom/android/server/wm/WindowManagerService$LocalService;->addTrustedTaskOverlay(ILandroid/view/SurfaceControlViewHost$SurfacePackage;)V HSPLcom/android/server/wm/WindowManagerService$LocalService;->addWindowToken(Landroid/os/IBinder;IILandroid/os/Bundle;)V HSPLcom/android/server/wm/WindowManagerService$LocalService;->clearSnapshotCache()V HSPLcom/android/server/wm/WindowManagerService$LocalService;->getAccessibilityController()Lcom/android/server/wm/WindowManagerInternal$AccessibilityControllerInternal; @@ -51940,7 +53070,7 @@ PLcom/android/server/wm/WindowManagerService$LocalService;->getWindowName(Landro HPLcom/android/server/wm/WindowManagerService$LocalService;->hasInputMethodClientFocus(Landroid/os/IBinder;III)I HPLcom/android/server/wm/WindowManagerService$LocalService;->hideIme(Landroid/os/IBinder;I)V HPLcom/android/server/wm/WindowManagerService$LocalService;->isHardKeyboardAvailable()Z -HPLcom/android/server/wm/WindowManagerService$LocalService;->isKeyguardShowingAndNotOccluded()Z +HPLcom/android/server/wm/WindowManagerService$LocalService;->isKeyguardShowingAndNotOccluded()Z+]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService; HPLcom/android/server/wm/WindowManagerService$LocalService;->isUidFocused(I)Z PLcom/android/server/wm/WindowManagerService$LocalService;->lambda$addRefreshRateRangeForPackage$0(Ljava/lang/String;FFLcom/android/server/wm/DisplayContent;)V PLcom/android/server/wm/WindowManagerService$LocalService;->lambda$removeRefreshRateRangeForPackage$1(Ljava/lang/String;Lcom/android/server/wm/DisplayContent;)V @@ -51948,6 +53078,7 @@ HPLcom/android/server/wm/WindowManagerService$LocalService;->onToggleImeRequeste HSPLcom/android/server/wm/WindowManagerService$LocalService;->registerAppTransitionListener(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V PLcom/android/server/wm/WindowManagerService$LocalService;->registerTaskSystemBarsListener(Lcom/android/server/wm/WindowManagerInternal$TaskSystemBarsListener;)V PLcom/android/server/wm/WindowManagerService$LocalService;->removeRefreshRateRangeForPackage(Ljava/lang/String;)V +PLcom/android/server/wm/WindowManagerService$LocalService;->removeTrustedTaskOverlay(ILandroid/view/SurfaceControlViewHost$SurfacePackage;)V PLcom/android/server/wm/WindowManagerService$LocalService;->removeWindowToken(Landroid/os/IBinder;ZZI)V HSPLcom/android/server/wm/WindowManagerService$LocalService;->requestTraversalFromDisplayManager()V PLcom/android/server/wm/WindowManagerService$LocalService;->setContentRecordingSession(Landroid/view/ContentRecordingSession;)Z @@ -51969,11 +53100,18 @@ PLcom/android/server/wm/WindowManagerService$MousePositionTracker;->updatePositi PLcom/android/server/wm/WindowManagerService$RotationWatcher;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IRotationWatcher;Landroid/os/IBinder$DeathRecipient;I)V HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;-><init>(Lcom/android/server/wm/WindowManagerService;)V HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->loadSettings()V +PLcom/android/server/wm/WindowManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateMaximumObscuringOpacityForTouch()V HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->updatePointerLocation()V HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateSystemUiSettings(Z)V -PLcom/android/server/wm/WindowManagerService;->$r8$lambda$BltbnEmMltnZSlcOWVCRGU4WUvU(Lcom/android/server/wm/WindowContainer;)V +PLcom/android/server/wm/WindowManagerService;->$r8$lambda$5ubp-ntEFLlytL4w5ObbRbl-M5I(ZLcom/android/server/wm/WindowState;)V +HPLcom/android/server/wm/WindowManagerService;->$r8$lambda$BltbnEmMltnZSlcOWVCRGU4WUvU(Lcom/android/server/wm/WindowContainer;)V +PLcom/android/server/wm/WindowManagerService;->$r8$lambda$QnyutH_8j8AZsbucSyi9KB-0vEo(ZLcom/android/server/wm/DisplayPolicy;)V PLcom/android/server/wm/WindowManagerService;->$r8$lambda$R4B9SGF-_XDjtwEb0d5HaQ7ml1o(Lcom/android/server/wm/WindowManagerService;)V +PLcom/android/server/wm/WindowManagerService;->$r8$lambda$Wf9BjXqyIfx-WeG3Ds-y96L4QrU(Landroid/app/IAssistDataReceiver;Landroid/graphics/Bitmap;)V +PLcom/android/server/wm/WindowManagerService;->$r8$lambda$XgpP403a45uvvcnsPGxyWA1cj1o(Lcom/android/server/wm/WindowManagerService;)V +PLcom/android/server/wm/WindowManagerService;->$r8$lambda$cuei3JtOU2MD1k1O-y731QBOO7U(Ljava/io/PrintWriter;Lcom/android/server/wm/DisplayContent;)V +PLcom/android/server/wm/WindowManagerService;->$r8$lambda$mpnxQ47jwMEYXONbx1Wvhz7TUgU(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowContainer;Ljava/lang/Runnable;)V HSPLcom/android/server/wm/WindowManagerService;->$r8$lambda$r7_Y1JY_ShZIafZtFFVk35RGZDo([Lcom/android/server/wm/WindowManagerService;Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)V PLcom/android/server/wm/WindowManagerService;->-$$Nest$fgetmAnimationsDisabled(Lcom/android/server/wm/WindowManagerService;)Z PLcom/android/server/wm/WindowManagerService;->-$$Nest$fgetmKeyguardDisableHandler(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/KeyguardDisableHandler; @@ -51997,11 +53135,13 @@ HPLcom/android/server/wm/WindowManagerService;->attachWindowContextToWindowToken HSPLcom/android/server/wm/WindowManagerService;->boostPriorityForLockedSection()V+]Lcom/android/server/wm/WindowManagerThreadPriorityBooster;Lcom/android/server/wm/WindowManagerThreadPriorityBooster; PLcom/android/server/wm/WindowManagerService;->cancelDraw(Lcom/android/server/wm/Session;Landroid/view/IWindow;)Z PLcom/android/server/wm/WindowManagerService;->cancelRecentsAnimation(ILjava/lang/String;)V +PLcom/android/server/wm/WindowManagerService;->captureDisplay(ILandroid/window/ScreenCapture$CaptureArgs;Landroid/window/ScreenCapture$ScreenCaptureListener;)V PLcom/android/server/wm/WindowManagerService;->checkBootAnimationCompleteLocked()Z HSPLcom/android/server/wm/WindowManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)Z HSPLcom/android/server/wm/WindowManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;Z)Z HSPLcom/android/server/wm/WindowManagerService;->checkDrawnWindowsLocked()V HPLcom/android/server/wm/WindowManagerService;->cleanupRecentsAnimation(I)V +PLcom/android/server/wm/WindowManagerService;->clearForcedDisplayDensityForUser(II)V HSPLcom/android/server/wm/WindowManagerService;->closeSurfaceTransaction(Ljava/lang/String;)V+]Lcom/android/server/wm/WindowTracing;Lcom/android/server/wm/WindowTracing; HPLcom/android/server/wm/WindowManagerService;->closeSystemDialogs(Ljava/lang/String;)V HSPLcom/android/server/wm/WindowManagerService;->computeNewConfiguration(I)Landroid/content/res/Configuration; @@ -52014,7 +53154,7 @@ HPLcom/android/server/wm/WindowManagerService;->detachWindowContextFromWindowCon HSPLcom/android/server/wm/WindowManagerService;->detectSafeMode()Z HPLcom/android/server/wm/WindowManagerService;->dipToPixel(ILandroid/util/DisplayMetrics;)I PLcom/android/server/wm/WindowManagerService;->dismissKeyguard(Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V -PLcom/android/server/wm/WindowManagerService;->dispatchKeyguardLockedState()V +HPLcom/android/server/wm/WindowManagerService;->dispatchKeyguardLockedState()V HSPLcom/android/server/wm/WindowManagerService;->displayReady()V PLcom/android/server/wm/WindowManagerService;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V PLcom/android/server/wm/WindowManagerService;->doStartFreezingDisplay(IILcom/android/server/wm/DisplayContent;I)V @@ -52044,6 +53184,7 @@ PLcom/android/server/wm/WindowManagerService;->getAnimationScale(I)F HSPLcom/android/server/wm/WindowManagerService;->getAnimatorDurationScaleSetting()F HSPLcom/android/server/wm/WindowManagerService;->getBaseDisplaySize(ILandroid/graphics/Point;)V HSPLcom/android/server/wm/WindowManagerService;->getCameraLensCoverState()I +PLcom/android/server/wm/WindowManagerService;->getCaptureArgs(ILandroid/window/ScreenCapture$CaptureArgs;)Landroid/window/ScreenCapture$LayerCaptureArgs; HSPLcom/android/server/wm/WindowManagerService;->getCurrentAnimatorScale()F HSPLcom/android/server/wm/WindowManagerService;->getDefaultDisplayContentLocked()Lcom/android/server/wm/DisplayContent;+]Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/RootWindowContainer; HSPLcom/android/server/wm/WindowManagerService;->getDisplayAreaPolicyProvider()Lcom/android/server/wm/DisplayAreaPolicy$Provider; @@ -52052,6 +53193,7 @@ PLcom/android/server/wm/WindowManagerService;->getFocusedWindow()Lcom/android/se PLcom/android/server/wm/WindowManagerService;->getFocusedWindowLocked()Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/WindowManagerService;->getForcedDisplayDensityForUserLocked(I)I PLcom/android/server/wm/WindowManagerService;->getImeDisplayId()I +PLcom/android/server/wm/WindowManagerService;->getInitialDisplayDensity(I)I PLcom/android/server/wm/WindowManagerService;->getInitialDisplaySize(ILandroid/graphics/Point;)V HSPLcom/android/server/wm/WindowManagerService;->getInputManagerCallback()Lcom/android/server/wm/InputManagerCallback; HPLcom/android/server/wm/WindowManagerService;->getInputTargetFromToken(Landroid/os/IBinder;)Lcom/android/server/wm/InputTarget;+]Ljava/util/HashMap;Ljava/util/HashMap;]Lcom/android/server/wm/EmbeddedWindowController;Lcom/android/server/wm/EmbeddedWindowController; @@ -52083,6 +53225,7 @@ HSPLcom/android/server/wm/WindowManagerService;->inSurfaceTransaction(Ljava/lang HSPLcom/android/server/wm/WindowManagerService;->initPolicy()V HPLcom/android/server/wm/WindowManagerService;->initializeRecentsAnimation(ILandroid/view/IRecentsAnimationRunner;Lcom/android/server/wm/RecentsAnimationController$RecentsAnimationCallbacks;ILandroid/util/SparseBooleanArray;Lcom/android/server/wm/ActivityRecord;)V PLcom/android/server/wm/WindowManagerService;->isAppTransitionStateIdle()Z +HPLcom/android/server/wm/WindowManagerService;->isInTouchMode(I)Z HSPLcom/android/server/wm/WindowManagerService;->isKeyguardLocked()Z HPLcom/android/server/wm/WindowManagerService;->isKeyguardSecure(I)Z HPLcom/android/server/wm/WindowManagerService;->isKeyguardShowingAndNotOccluded()Z @@ -52092,9 +53235,15 @@ PLcom/android/server/wm/WindowManagerService;->isRecentsComponent(Ljava/lang/Str PLcom/android/server/wm/WindowManagerService;->isSafeModeEnabled()Z HSPLcom/android/server/wm/WindowManagerService;->isUserVisible(I)Z+]Lcom/android/server/pm/UserManagerInternal;Lcom/android/server/pm/UserManagerService$LocalService; PLcom/android/server/wm/WindowManagerService;->isValidPictureInPictureAspectRatio(Lcom/android/server/wm/DisplayContent;F)Z +HPLcom/android/server/wm/WindowManagerService;->lambda$checkDrawnWindowsLocked$9(Lcom/android/server/wm/WindowContainer;Ljava/lang/Runnable;)V HPLcom/android/server/wm/WindowManagerService;->lambda$cleanupRecentsAnimation$2(Lcom/android/server/wm/WindowContainer;)V +HPLcom/android/server/wm/WindowManagerService;->lambda$dispatchKeyguardLockedState$4()V +PLcom/android/server/wm/WindowManagerService;->lambda$dumpWindowsNoHeaderLocked$11(Ljava/io/PrintWriter;Lcom/android/server/wm/DisplayContent;)V HSPLcom/android/server/wm/WindowManagerService;->lambda$main$1([Lcom/android/server/wm/WindowManagerService;Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)V PLcom/android/server/wm/WindowManagerService;->lambda$new$0()V +PLcom/android/server/wm/WindowManagerService;->lambda$onPowerKeyDown$3(ZLcom/android/server/wm/DisplayPolicy;)V +PLcom/android/server/wm/WindowManagerService;->lambda$requestAssistScreenshot$5(Landroid/app/IAssistDataReceiver;Landroid/graphics/Bitmap;)V +HPLcom/android/server/wm/WindowManagerService;->lambda$updateNonSystemOverlayWindowsVisibilityIfNeeded$16(ZLcom/android/server/wm/WindowState;)V HSPLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/WindowManagerService; HSPLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/DisplayWindowSettingsProvider;Ljava/util/function/Supplier;Ljava/util/function/Function;)Lcom/android/server/wm/WindowManagerService; HSPLcom/android/server/wm/WindowManagerService;->makeSurfaceBuilder(Landroid/view/SurfaceSession;)Landroid/view/SurfaceControl$Builder; @@ -52107,7 +53256,7 @@ HSPLcom/android/server/wm/WindowManagerService;->onAnimationFinished()V HSPLcom/android/server/wm/WindowManagerService;->onInitReady()V PLcom/android/server/wm/WindowManagerService;->onKeyguardShowingAndNotOccludedChanged()V PLcom/android/server/wm/WindowManagerService;->onOverlayChanged()V -HPLcom/android/server/wm/WindowManagerService;->onPointerDownOutsideFocusLocked(Landroid/os/IBinder;)V+]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/InputTarget;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;]Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/RecentsAnimationController; +HPLcom/android/server/wm/WindowManagerService;->onPointerDownOutsideFocusLocked(Landroid/os/IBinder;)V+]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/RecentsAnimationController;]Lcom/android/server/wm/InputTarget;Lcom/android/server/wm/WindowState;,Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow; HPLcom/android/server/wm/WindowManagerService;->onPowerKeyDown(Z)V HPLcom/android/server/wm/WindowManagerService;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V PLcom/android/server/wm/WindowManagerService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V @@ -52134,7 +53283,7 @@ PLcom/android/server/wm/WindowManagerService;->registerShortcutKey(JLcom/android PLcom/android/server/wm/WindowManagerService;->registerSystemGestureExclusionListener(Landroid/view/ISystemGestureExclusionListener;I)V PLcom/android/server/wm/WindowManagerService;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)Z HSPLcom/android/server/wm/WindowManagerService;->relayoutWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIIILandroid/window/ClientWindowFrames;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;Landroid/os/Bundle;)I -PLcom/android/server/wm/WindowManagerService;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V +HPLcom/android/server/wm/WindowManagerService;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V PLcom/android/server/wm/WindowManagerService;->removeRotationWatcher(Landroid/view/IRotationWatcher;)V HPLcom/android/server/wm/WindowManagerService;->removeWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;)V PLcom/android/server/wm/WindowManagerService;->removeWindowToken(Landroid/os/IBinder;I)V @@ -52158,6 +53307,7 @@ HSPLcom/android/server/wm/WindowManagerService;->setAnimatorDurationScale(F)V HSPLcom/android/server/wm/WindowManagerService;->setDisplayChangeWindowController(Landroid/view/IDisplayChangeWindowController;)V HSPLcom/android/server/wm/WindowManagerService;->setDisplayWindowInsetsController(ILandroid/view/IDisplayWindowInsetsController;)V PLcom/android/server/wm/WindowManagerService;->setEventDispatching(Z)V +PLcom/android/server/wm/WindowManagerService;->setForcedDisplayDensityForUser(III)V HSPLcom/android/server/wm/WindowManagerService;->setGlobalShadowSettings()V HPLcom/android/server/wm/WindowManagerService;->setInsetsWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V PLcom/android/server/wm/WindowManagerService;->setMousePointerDisplayId(I)V @@ -52193,7 +53343,7 @@ PLcom/android/server/wm/WindowManagerService;->updateStaticPrivacyIndicatorBound HSPLcom/android/server/wm/WindowManagerService;->useBLAST()Z PLcom/android/server/wm/WindowManagerService;->watchRotation(Landroid/view/IRotationWatcher;I)I HSPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/os/IBinder;Z)Lcom/android/server/wm/WindowState;+]Ljava/util/HashMap;Ljava/util/HashMap; -HSPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/view/IWindow;Z)Lcom/android/server/wm/WindowState;+]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Landroid/view/IWindow;Landroid/view/ViewRootImpl$W;,Landroid/view/IWindow$Stub$Proxy; +HSPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/view/IWindow;Z)Lcom/android/server/wm/WindowState;+]Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService;]Landroid/view/IWindow;Landroid/view/ViewRootImpl$W;,Landroid/view/IWindow$Stub$Proxy;]Landroid/os/IInterface;Landroid/view/ViewRootImpl$W;,Landroid/view/IWindow$Stub$Proxy; PLcom/android/server/wm/WindowManagerShellCommand$$ExternalSyntheticLambda0;-><init>(ILjava/util/ArrayList;)V PLcom/android/server/wm/WindowManagerShellCommand$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/WindowManagerShellCommand;->$r8$lambda$UI9AyiTdAe3lWmoefcSEmi4xyso(ILjava/util/ArrayList;Lcom/android/server/wm/WindowState;)V @@ -52211,7 +53361,12 @@ HSPLcom/android/server/wm/WindowManagerThreadPriorityBooster;->reset()V HSPLcom/android/server/wm/WindowManagerThreadPriorityBooster;->setAppTransitionRunning(Z)V HSPLcom/android/server/wm/WindowManagerThreadPriorityBooster;->updatePriorityLocked()V PLcom/android/server/wm/WindowOrganizerController$$ExternalSyntheticLambda6;-><init>()V +PLcom/android/server/wm/WindowOrganizerController$$ExternalSyntheticLambda6;->accept(Ljava/lang/Object;)V +PLcom/android/server/wm/WindowOrganizerController$$ExternalSyntheticLambda7;-><init>(I)V +PLcom/android/server/wm/WindowOrganizerController$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;)V HSPLcom/android/server/wm/WindowOrganizerController$CallerInfo;-><init>()V +PLcom/android/server/wm/WindowOrganizerController;->$r8$lambda$G7L5bwEKvq2wiq-RWlfn7afFOic(Lcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/WindowOrganizerController;->$r8$lambda$lzn28QY5Ezq28NMtyEZRGT_e5K8(ILcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/WindowOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V HSPLcom/android/server/wm/WindowOrganizerController;->addToSyncSet(ILcom/android/server/wm/WindowContainer;)V HSPLcom/android/server/wm/WindowOrganizerController;->adjustBoundsForMinDimensionsIfNeeded(Lcom/android/server/wm/WindowContainer;Landroid/window/WindowContainerTransaction$Change;Landroid/os/IBinder;)V @@ -52224,11 +53379,12 @@ HSPLcom/android/server/wm/WindowOrganizerController;->applyTransaction(Landroid/ HSPLcom/android/server/wm/WindowOrganizerController;->applyTransaction(Landroid/window/WindowContainerTransaction;ILcom/android/server/wm/Transition;Lcom/android/server/wm/WindowOrganizerController$CallerInfo;Lcom/android/server/wm/Transition;)V HSPLcom/android/server/wm/WindowOrganizerController;->applyWindowContainerChange(Lcom/android/server/wm/WindowContainer;Landroid/window/WindowContainerTransaction$Change;Landroid/os/IBinder;)I HSPLcom/android/server/wm/WindowOrganizerController;->configurationsAreEqualForOrganizer(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z -HSPLcom/android/server/wm/WindowOrganizerController;->enforceTaskPermission(Ljava/lang/String;)V HSPLcom/android/server/wm/WindowOrganizerController;->getDisplayAreaOrganizerController()Landroid/window/IDisplayAreaOrganizerController; HSPLcom/android/server/wm/WindowOrganizerController;->getTaskOrganizerController()Landroid/window/ITaskOrganizerController; HSPLcom/android/server/wm/WindowOrganizerController;->getTransitionController()Lcom/android/server/wm/TransitionController; HSPLcom/android/server/wm/WindowOrganizerController;->isLockTaskModeViolation(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Task;Z)Z +PLcom/android/server/wm/WindowOrganizerController;->lambda$applyTaskChanges$7(ILcom/android/server/wm/ActivityRecord;)V +PLcom/android/server/wm/WindowOrganizerController;->lambda$applyTransaction$6(Lcom/android/server/wm/ActivityRecord;)V HSPLcom/android/server/wm/WindowOrganizerController;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z HSPLcom/android/server/wm/WindowOrganizerController;->onTransactionReady(ILandroid/view/SurfaceControl$Transaction;)V HSPLcom/android/server/wm/WindowOrganizerController;->prepareSyncWithOrganizer(Landroid/window/IWindowContainerTransactionCallback;)Lcom/android/server/wm/BLASTSyncEngine$SyncGroup; @@ -52289,21 +53445,17 @@ HPLcom/android/server/wm/WindowOrientationListener;->onTouchStart()V HSPLcom/android/server/wm/WindowOrientationListener;->setCurrentRotation(I)V HSPLcom/android/server/wm/WindowOrientationListener;->shouldStayEnabledWhileDreaming()Z PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda0;-><init>()V -PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda11;-><init>()V HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda11;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda1;-><init>()V -PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda2;-><init>()V -PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda5;-><init>()V -HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda6;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V -HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda6;->test(I)Z -PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;-><init>()V -HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda4;-><init>()V +HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda5;-><init>()V +HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;-><init>()V +HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda7;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda8;-><init>()V +PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda8;->accept(Ljava/lang/Object;)V PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda9;-><init>()V -PLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V +HPLcom/android/server/wm/WindowProcessController$$ExternalSyntheticLambda9;->accept(Ljava/lang/Object;Ljava/lang/Object;)V PLcom/android/server/wm/WindowProcessController;->$r8$lambda$fx3qdHpz6hJNiyWS-T5GwG8fP5M(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z HSPLcom/android/server/wm/WindowProcessController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;IILjava/lang/Object;Lcom/android/server/wm/WindowProcessListener;)V HPLcom/android/server/wm/WindowProcessController;->addActivityIfNeeded(Lcom/android/server/wm/ActivityRecord;)V @@ -52503,6 +53655,7 @@ PLcom/android/server/wm/WindowState;->canScreenshotIme()Z PLcom/android/server/wm/WindowState;->canShowTransient()Z HPLcom/android/server/wm/WindowState;->canShowWhenLocked()Z HSPLcom/android/server/wm/WindowState;->cancelAndRedraw()Z +PLcom/android/server/wm/WindowState;->cancelSeamlessRotation()V HPLcom/android/server/wm/WindowState;->checkPolicyVisibilityChange()V HPLcom/android/server/wm/WindowState;->cleanupAnimatingExitWindow()V+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState; HPLcom/android/server/wm/WindowState;->clearAnimatingFlags()Z @@ -52573,7 +53726,7 @@ PLcom/android/server/wm/WindowState;->getPid()I PLcom/android/server/wm/WindowState;->getProcess()Lcom/android/server/wm/WindowProcessController; HPLcom/android/server/wm/WindowState;->getProcessGlobalConfiguration()Landroid/content/res/Configuration; PLcom/android/server/wm/WindowState;->getProtoFieldId()J -HPLcom/android/server/wm/WindowState;->getRectsInScreenSpace(Ljava/util/List;Landroid/graphics/Matrix;[F)Ljava/util/List;+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Matrix;Landroid/graphics/Matrix; +HPLcom/android/server/wm/WindowState;->getRectsInScreenSpace(Ljava/util/List;Landroid/graphics/Matrix;[F)Ljava/util/List;+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; PLcom/android/server/wm/WindowState;->getRelativeFrame()Landroid/graphics/Rect; HPLcom/android/server/wm/WindowState;->getReplacingWindow()Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/WindowState;->getRequestedVisibilities()Landroid/view/InsetsVisibilities; @@ -52591,13 +53744,13 @@ HPLcom/android/server/wm/WindowState;->getTaskFragment()Lcom/android/server/wm/T HSPLcom/android/server/wm/WindowState;->getTopParentWindow()Lcom/android/server/wm/WindowState; HPLcom/android/server/wm/WindowState;->getTouchOcclusionMode()I+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState; HPLcom/android/server/wm/WindowState;->getTouchableRegion(Landroid/graphics/Region;)V+]Landroid/graphics/Region;Landroid/graphics/Region;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState; -HPLcom/android/server/wm/WindowState;->getTransformationMatrix([FLandroid/graphics/Matrix;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowToken;,Lcom/android/server/wm/ActivityRecord;,Lcom/android/server/wm/WallpaperWindowToken; +HPLcom/android/server/wm/WindowState;->getTransformationMatrix([FLandroid/graphics/Matrix;)V+]Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowState;]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;]Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;,Lcom/android/server/wm/ActivityRecord; PLcom/android/server/wm/WindowState;->getUid()I PLcom/android/server/wm/WindowState;->getVisibleBounds(Landroid/graphics/Rect;)V HPLcom/android/server/wm/WindowState;->getWindow()Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/WindowState;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;+]Ljava/util/AbstractCollection;Lcom/android/server/wm/WindowList;]Ljava/util/AbstractList;Lcom/android/server/wm/WindowList;]Ljava/util/function/Predicate;megamorphic_types PLcom/android/server/wm/WindowState;->getWindowFrames()Lcom/android/server/wm/WindowFrames; -PLcom/android/server/wm/WindowState;->getWindowState()Lcom/android/server/wm/WindowState; +HPLcom/android/server/wm/WindowState;->getWindowState()Lcom/android/server/wm/WindowState; HSPLcom/android/server/wm/WindowState;->getWindowTag()Ljava/lang/CharSequence;+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Ljava/lang/CharSequence;Ljava/lang/String; HSPLcom/android/server/wm/WindowState;->getWindowType()I HSPLcom/android/server/wm/WindowState;->handleCompleteDeferredRemoval()Z+]Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState; @@ -52869,7 +54022,7 @@ HPLcom/android/server/wm/WindowToken;->dump(Ljava/io/PrintWriter;Ljava/lang/Stri PLcom/android/server/wm/WindowToken;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V HSPLcom/android/server/wm/WindowToken;->finishFixedRotationTransform()V HSPLcom/android/server/wm/WindowToken;->finishFixedRotationTransform(Ljava/lang/Runnable;)V -HPLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayBounds()Landroid/graphics/Rect;+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord; +HPLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayBounds()Landroid/graphics/Rect;+]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/ActivityRecord;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; HSPLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayFrames()Lcom/android/server/wm/DisplayFrames;+]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;,Lcom/android/server/wm/ActivityRecord; HPLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayInfo()Landroid/view/DisplayInfo; HSPLcom/android/server/wm/WindowToken;->getFixedRotationTransformInsetsState()Landroid/view/InsetsState;+]Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/WallpaperWindowToken;,Lcom/android/server/wm/WindowToken;,Lcom/android/server/wm/ActivityRecord; @@ -52945,11 +54098,11 @@ PLcom/ibm/icu/impl/CalendarAstronomer;-><init>()V HPLcom/ibm/icu/impl/CalendarAstronomer;-><init>(DD)V HPLcom/ibm/icu/impl/CalendarAstronomer;-><init>(J)V HPLcom/ibm/icu/impl/CalendarAstronomer;->clearCache()V -PLcom/ibm/icu/impl/CalendarAstronomer;->eclipticObliquity()D +HPLcom/ibm/icu/impl/CalendarAstronomer;->eclipticObliquity()D HPLcom/ibm/icu/impl/CalendarAstronomer;->eclipticToEquatorial(DD)Lcom/ibm/icu/impl/CalendarAstronomer$Equatorial; -PLcom/ibm/icu/impl/CalendarAstronomer;->getJulianDay()D -PLcom/ibm/icu/impl/CalendarAstronomer;->getSiderealOffset()D -PLcom/ibm/icu/impl/CalendarAstronomer;->getSunLongitude()D +HPLcom/ibm/icu/impl/CalendarAstronomer;->getJulianDay()D +HPLcom/ibm/icu/impl/CalendarAstronomer;->getSiderealOffset()D +HPLcom/ibm/icu/impl/CalendarAstronomer;->getSunLongitude()D HPLcom/ibm/icu/impl/CalendarAstronomer;->getSunLongitude(D)[D PLcom/ibm/icu/impl/CalendarAstronomer;->getSunPosition()Lcom/ibm/icu/impl/CalendarAstronomer$Equatorial; HPLcom/ibm/icu/impl/CalendarAstronomer;->getSunRiseSet(Z)J @@ -53298,6 +54451,7 @@ Lcom/android/server/StorageManagerService$3; Lcom/android/server/StorageManagerService$4; Lcom/android/server/StorageManagerService$5; Lcom/android/server/StorageManagerService$6; +Lcom/android/server/StorageManagerService$9; Lcom/android/server/StorageManagerService$AppFuseMountScope; Lcom/android/server/StorageManagerService$Callbacks; Lcom/android/server/StorageManagerService$ExternalStorageServiceAnrController; @@ -53307,6 +54461,7 @@ Lcom/android/server/StorageManagerService$StorageManagerInternalImpl; Lcom/android/server/StorageManagerService$StorageManagerServiceHandler; Lcom/android/server/StorageManagerService$WatchedLockedUsers; Lcom/android/server/StorageManagerService; +Lcom/android/server/SystemClockTime; Lcom/android/server/SystemConfigService$1; Lcom/android/server/SystemConfigService; Lcom/android/server/SystemServer$$ExternalSyntheticLambda0; @@ -53324,6 +54479,7 @@ Lcom/android/server/SystemServerInitThreadPool; Lcom/android/server/SystemService$TargetUser; Lcom/android/server/SystemService; Lcom/android/server/SystemServiceManager; +Lcom/android/server/SystemTimeZone; Lcom/android/server/SystemUpdateManagerService; Lcom/android/server/TelephonyRegistry$1; Lcom/android/server/TelephonyRegistry$2; @@ -53419,7 +54575,6 @@ Lcom/android/server/accessibility/SystemActionPerformer$SystemActionsChangedList Lcom/android/server/accessibility/UiAutomationManager$1; Lcom/android/server/accessibility/UiAutomationManager$UiAutomationService; Lcom/android/server/accessibility/UiAutomationManager; -Lcom/android/server/accessibility/cursor/SoftwareCursorManager; Lcom/android/server/accessibility/magnification/FullScreenMagnificationController$MagnificationInfoChangedCallback; Lcom/android/server/accessibility/magnification/MagnificationController; Lcom/android/server/accessibility/magnification/MagnificationGestureHandler$Callback; @@ -53484,6 +54639,8 @@ Lcom/android/server/adb/AdbService; Lcom/android/server/adb/AdbShellCommand; Lcom/android/server/alarm/Alarm; Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda0; +Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda11; +Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda21; Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda3; Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda4; Lcom/android/server/alarm/AlarmManagerService$$ExternalSyntheticLambda5; @@ -53574,6 +54731,7 @@ Lcom/android/server/am/ActivityManagerService$MainHandler; Lcom/android/server/am/ActivityManagerService$MemBinder$1; Lcom/android/server/am/ActivityManagerService$MemBinder; Lcom/android/server/am/ActivityManagerService$PackageAssociationInfo; +Lcom/android/server/am/ActivityManagerService$PendingTempAllowlist; Lcom/android/server/am/ActivityManagerService$PermissionController; Lcom/android/server/am/ActivityManagerService$PidMap; Lcom/android/server/am/ActivityManagerService$ProcessChangeItem; @@ -53682,11 +54840,14 @@ Lcom/android/server/am/BaseAppStateTracker$StateListener; Lcom/android/server/am/BaseAppStateTracker; Lcom/android/server/am/BaseErrorDialog; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda101; +Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda102; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda11; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda12; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda13; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda15; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda25; +Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda28; +Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda29; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda30; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda32; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda34; @@ -53696,6 +54857,7 @@ Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda39; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda41; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda42; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda44; +Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda46; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda48; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda49; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda4; @@ -53706,6 +54868,7 @@ Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda86; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda88; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda90; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda94; +Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda96; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda97; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda98; Lcom/android/server/am/BatteryStatsService$$ExternalSyntheticLambda99; @@ -53765,6 +54928,7 @@ Lcom/android/server/am/CachedAppOptimizer$SettingsContentObserver; Lcom/android/server/am/CachedAppOptimizer; Lcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda0; Lcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda1; +Lcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda2; Lcom/android/server/am/ComponentAliasResolver$$ExternalSyntheticLambda3; Lcom/android/server/am/ComponentAliasResolver$1; Lcom/android/server/am/ComponentAliasResolver$Resolution; @@ -53842,6 +55006,7 @@ Lcom/android/server/am/ProcessList$MyProcessMap; Lcom/android/server/am/ProcessList$ProcStartHandler; Lcom/android/server/am/ProcessList$ProcStateMemTracker; Lcom/android/server/am/ProcessList; +Lcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda0; Lcom/android/server/am/ProcessProfileRecord$$ExternalSyntheticLambda1; Lcom/android/server/am/ProcessProfileRecord; Lcom/android/server/am/ProcessProviderRecord; @@ -53933,8 +55098,13 @@ Lcom/android/server/apphibernation/GlobalLevelState; Lcom/android/server/apphibernation/HibernationStateDiskStore; Lcom/android/server/apphibernation/ProtoReadWriter; Lcom/android/server/apphibernation/UserLevelHibernationProto; +Lcom/android/server/appop/AppOpsRestrictions; +Lcom/android/server/appop/AppOpsRestrictionsImpl; Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda0; +Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda10; +Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda11; Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda14; +Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda1; Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda7; Lcom/android/server/appop/AppOpsService$$ExternalSyntheticLambda8; Lcom/android/server/appop/AppOpsService$1$1; @@ -53969,8 +55139,15 @@ Lcom/android/server/appop/AppOpsServiceInterface; Lcom/android/server/appop/AppOpsUidStateTracker$UidStateChangedCallback; Lcom/android/server/appop/AppOpsUidStateTracker; Lcom/android/server/appop/AppOpsUidStateTrackerImpl$$ExternalSyntheticLambda1; +Lcom/android/server/appop/AppOpsUidStateTrackerImpl$1$$ExternalSyntheticLambda0; +Lcom/android/server/appop/AppOpsUidStateTrackerImpl$1; +Lcom/android/server/appop/AppOpsUidStateTrackerImpl$DelayableExecutor; +Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog$$ExternalSyntheticLambda1; Lcom/android/server/appop/AppOpsUidStateTrackerImpl$EventLog; Lcom/android/server/appop/AppOpsUidStateTrackerImpl; +Lcom/android/server/appop/AttributedOp$InProgressStartOpEventPool; +Lcom/android/server/appop/AttributedOp$OpEventProxyInfoPool; +Lcom/android/server/appop/AttributedOp; Lcom/android/server/appop/AudioRestrictionManager; Lcom/android/server/appop/DiscreteRegistry$$ExternalSyntheticLambda0; Lcom/android/server/appop/DiscreteRegistry$DiscreteOps; @@ -54010,9 +55187,6 @@ Lcom/android/server/audio/AudioDeviceBroker$BrokerThread; Lcom/android/server/audio/AudioDeviceBroker; Lcom/android/server/audio/AudioDeviceInventory$1; Lcom/android/server/audio/AudioDeviceInventory; -Lcom/android/server/audio/AudioEventLogger$Event; -Lcom/android/server/audio/AudioEventLogger$StringEvent; -Lcom/android/server/audio/AudioEventLogger; Lcom/android/server/audio/AudioManagerShellCommand; Lcom/android/server/audio/AudioService$$ExternalSyntheticLambda0; Lcom/android/server/audio/AudioService$$ExternalSyntheticLambda11; @@ -54458,6 +55632,9 @@ Lcom/android/server/contentsuggestions/ContentSuggestionsPerUserService; Lcom/android/server/contentsuggestions/RemoteContentSuggestionsService; Lcom/android/server/coverage/CoverageService$CoverageCommand; Lcom/android/server/coverage/CoverageService; +Lcom/android/server/credentials/CredentialManagerService$CredentialManagerServiceStub; +Lcom/android/server/credentials/CredentialManagerService; +Lcom/android/server/credentials/CredentialManagerServiceImpl; Lcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda0; Lcom/android/server/criticalevents/CriticalEventLog$$ExternalSyntheticLambda1; Lcom/android/server/criticalevents/CriticalEventLog$ILogLoader; @@ -54512,6 +55689,7 @@ Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLa Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda63; Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda68; Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda7; +Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda86; Lcom/android/server/devicepolicy/DevicePolicyManagerService$$ExternalSyntheticLambda95; Lcom/android/server/devicepolicy/DevicePolicyManagerService$1; Lcom/android/server/devicepolicy/DevicePolicyManagerService$2; @@ -54825,8 +56003,6 @@ Lcom/android/server/dreams/DreamController; Lcom/android/server/dreams/DreamManagerService$1; Lcom/android/server/dreams/DreamManagerService$2; Lcom/android/server/dreams/DreamManagerService$5; -Lcom/android/server/dreams/DreamManagerService$6; -Lcom/android/server/dreams/DreamManagerService$7; Lcom/android/server/dreams/DreamManagerService$BinderService; Lcom/android/server/dreams/DreamManagerService$DreamHandler; Lcom/android/server/dreams/DreamManagerService$LocalService; @@ -54937,8 +56113,12 @@ Lcom/android/server/infra/SecureSettingsServiceNameResolver; Lcom/android/server/infra/ServiceNameResolver$NameResolverListener; Lcom/android/server/infra/ServiceNameResolver; Lcom/android/server/input/BatteryController$1; +Lcom/android/server/input/BatteryController$2; +Lcom/android/server/input/BatteryController$State; Lcom/android/server/input/BatteryController$UEventManager; Lcom/android/server/input/BatteryController; +Lcom/android/server/input/InputManagerInternal$LidSwitchCallback; +Lcom/android/server/input/InputManagerInternal; Lcom/android/server/input/InputManagerService$$ExternalSyntheticLambda2; Lcom/android/server/input/InputManagerService$$ExternalSyntheticLambda5; Lcom/android/server/input/InputManagerService$1; @@ -54961,8 +56141,11 @@ Lcom/android/server/input/InputManagerService$WindowManagerCallbacks; Lcom/android/server/input/InputManagerService$WiredAccessoryCallbacks; Lcom/android/server/input/InputManagerService; Lcom/android/server/input/InputShellCommand; +Lcom/android/server/input/KeyboardBacklightController$$ExternalSyntheticLambda0; +Lcom/android/server/input/KeyboardBacklightController; Lcom/android/server/input/NativeInputManagerService$NativeImpl; Lcom/android/server/input/NativeInputManagerService; +Lcom/android/server/input/PersistentDataStore$Injector; Lcom/android/server/input/PersistentDataStore$InputDeviceState; Lcom/android/server/input/PersistentDataStore; Lcom/android/server/inputmethod/AdditionalSubtypeUtils; @@ -55055,6 +56238,7 @@ Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda0; Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda1; Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda2; Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda5; +Lcom/android/server/job/JobSchedulerService$$ExternalSyntheticLambda6; Lcom/android/server/job/JobSchedulerService$1; Lcom/android/server/job/JobSchedulerService$2; Lcom/android/server/job/JobSchedulerService$3; @@ -55114,6 +56298,7 @@ Lcom/android/server/job/controllers/FlexibilityController$FlexibilityTracker; Lcom/android/server/job/controllers/FlexibilityController; Lcom/android/server/job/controllers/IdleController; Lcom/android/server/job/controllers/JobStatus; +Lcom/android/server/job/controllers/Package; Lcom/android/server/job/controllers/PrefetchController$1; Lcom/android/server/job/controllers/PrefetchController$PcConstants; Lcom/android/server/job/controllers/PrefetchController$PcHandler; @@ -55134,6 +56319,7 @@ Lcom/android/server/job/controllers/QuotaController$StandbyTracker; Lcom/android/server/job/controllers/QuotaController$TempAllowlistTracker; Lcom/android/server/job/controllers/QuotaController$TimedEvent; Lcom/android/server/job/controllers/QuotaController$TimedEventTooOldPredicate; +Lcom/android/server/job/controllers/QuotaController$Timer; Lcom/android/server/job/controllers/QuotaController$TimerChargingUpdateFunctor; Lcom/android/server/job/controllers/QuotaController$TimingSession; Lcom/android/server/job/controllers/QuotaController$UidConstraintUpdater; @@ -55366,6 +56552,8 @@ Lcom/android/server/location/injector/LocationPermissionsHelper; Lcom/android/server/location/injector/LocationPowerSaveModeHelper$LocationPowerSaveModeChangedListener; Lcom/android/server/location/injector/LocationPowerSaveModeHelper; Lcom/android/server/location/injector/LocationUsageLogger; +Lcom/android/server/location/injector/PackageResetHelper$Responder; +Lcom/android/server/location/injector/PackageResetHelper; Lcom/android/server/location/injector/ScreenInteractiveHelper$ScreenInteractiveChangedListener; Lcom/android/server/location/injector/ScreenInteractiveHelper; Lcom/android/server/location/injector/SettingsHelper$GlobalSettingChangedListener; @@ -55387,6 +56575,8 @@ Lcom/android/server/location/injector/SystemEmergencyHelper; Lcom/android/server/location/injector/SystemLocationPermissionsHelper$$ExternalSyntheticLambda0; Lcom/android/server/location/injector/SystemLocationPermissionsHelper; Lcom/android/server/location/injector/SystemLocationPowerSaveModeHelper; +Lcom/android/server/location/injector/SystemPackageResetHelper$Receiver; +Lcom/android/server/location/injector/SystemPackageResetHelper; Lcom/android/server/location/injector/SystemScreenInteractiveHelper$1; Lcom/android/server/location/injector/SystemScreenInteractiveHelper; Lcom/android/server/location/injector/SystemSettingsHelper$$ExternalSyntheticLambda0; @@ -55444,6 +56634,7 @@ Lcom/android/server/location/provider/LocationProviderManager$$ExternalSynthetic Lcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda8; Lcom/android/server/location/provider/LocationProviderManager$$ExternalSyntheticLambda9; Lcom/android/server/location/provider/LocationProviderManager$1; +Lcom/android/server/location/provider/LocationProviderManager$2; Lcom/android/server/location/provider/LocationProviderManager$ExternalWakeLockReleaser; Lcom/android/server/location/provider/LocationProviderManager$GetCurrentLocationListenerRegistration; Lcom/android/server/location/provider/LocationProviderManager$LastLocation; @@ -55531,6 +56722,7 @@ Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotSto Lcom/android/server/logcat/LogcatManagerService$BinderService; Lcom/android/server/logcat/LogcatManagerService$Injector$$ExternalSyntheticLambda0; Lcom/android/server/logcat/LogcatManagerService$Injector; +Lcom/android/server/logcat/LogcatManagerService$LogAccessDialogCallback; Lcom/android/server/logcat/LogcatManagerService$LogAccessRequestHandler; Lcom/android/server/logcat/LogcatManagerService; Lcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener; @@ -55545,6 +56737,7 @@ Lcom/android/server/media/MediaRoute2Provider$Callback; Lcom/android/server/media/MediaRoute2Provider; Lcom/android/server/media/MediaRoute2ProviderWatcher$Callback; Lcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda0; +Lcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda11; Lcom/android/server/media/MediaRouter2ServiceImpl$$ExternalSyntheticLambda9; Lcom/android/server/media/MediaRouter2ServiceImpl$1; Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler; @@ -56060,6 +57253,7 @@ Lcom/android/server/pm/PackageManagerService$5; Lcom/android/server/pm/PackageManagerService$DefaultSystemWrapper; Lcom/android/server/pm/PackageManagerService$IPackageManagerImpl; Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda0; +Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda2; Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl$$ExternalSyntheticLambda3; Lcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl; Lcom/android/server/pm/PackageManagerService$Snapshot; @@ -56131,6 +57325,7 @@ Lcom/android/server/pm/Settings$$ExternalSyntheticLambda1; Lcom/android/server/pm/Settings$1; Lcom/android/server/pm/Settings$2; Lcom/android/server/pm/Settings$3; +Lcom/android/server/pm/Settings$KeySetToValueMap; Lcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda0; Lcom/android/server/pm/Settings$RuntimePermissionPersistence$$ExternalSyntheticLambda1; Lcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler; @@ -56188,6 +57383,7 @@ Lcom/android/server/pm/StagingManager$Lifecycle; Lcom/android/server/pm/StagingManager$StagedSession; Lcom/android/server/pm/StagingManager; Lcom/android/server/pm/StorageEventHelper; +Lcom/android/server/pm/SuspendPackageHelper$$ExternalSyntheticLambda3; Lcom/android/server/pm/SuspendPackageHelper; Lcom/android/server/pm/SystemDeleteException; Lcom/android/server/pm/UserDataPreparer; @@ -56237,6 +57433,7 @@ Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode; Lcom/android/server/pm/dex/PackageDynamicCodeLoading; Lcom/android/server/pm/dex/SystemServerDexLoadReporter; Lcom/android/server/pm/dex/ViewCompiler; +Lcom/android/server/pm/local/PackageManagerLocalImpl; Lcom/android/server/pm/parsing/PackageCacher$$ExternalSyntheticLambda0; Lcom/android/server/pm/parsing/PackageCacher; Lcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator; @@ -56324,6 +57521,7 @@ Lcom/android/server/pm/pkg/PackageUserStateImpl; Lcom/android/server/pm/pkg/PackageUserStateInternal; Lcom/android/server/pm/pkg/PackageUserStateUtils; Lcom/android/server/pm/pkg/SELinuxUtil; +Lcom/android/server/pm/pkg/SharedLibraryWrapper; Lcom/android/server/pm/pkg/SharedUserApi; Lcom/android/server/pm/pkg/SuspendParams; Lcom/android/server/pm/pkg/component/ComponentMutateUtils; @@ -56346,6 +57544,7 @@ Lcom/android/server/pm/pkg/component/ParsedComponentUtils; Lcom/android/server/pm/pkg/component/ParsedInstrumentation; Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl$1; Lcom/android/server/pm/pkg/component/ParsedInstrumentationImpl; +Lcom/android/server/pm/pkg/component/ParsedInstrumentationUtils; Lcom/android/server/pm/pkg/component/ParsedIntentInfo; Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl$1; Lcom/android/server/pm/pkg/component/ParsedIntentInfoImpl; @@ -57394,6 +58593,7 @@ Lcom/android/server/voiceinteraction/DatabaseHelper; Lcom/android/server/voiceinteraction/RecognitionServiceInfo; Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$1; Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$2; +Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$3; Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$LocalService; Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2; Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$RoleObserver; @@ -57645,6 +58845,7 @@ Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider$SettingsEntry; Lcom/android/server/wm/DisplayWindowSettings$SettingsProvider; Lcom/android/server/wm/DisplayWindowSettings; Lcom/android/server/wm/DisplayWindowSettingsProvider$AtomicFileStorage; +Lcom/android/server/wm/DisplayWindowSettingsProvider$FileData; Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettings; Lcom/android/server/wm/DisplayWindowSettingsProvider$ReadableSettingsStorage; Lcom/android/server/wm/DisplayWindowSettingsProvider$WritableSettings; @@ -57702,6 +58903,7 @@ Lcom/android/server/wm/LaunchParamsController$LaunchParamsModifier; Lcom/android/server/wm/LaunchParamsController; Lcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda0; Lcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda1; +Lcom/android/server/wm/LaunchParamsPersister$$ExternalSyntheticLambda3; Lcom/android/server/wm/LaunchParamsPersister$PackageListObserver; Lcom/android/server/wm/LaunchParamsPersister; Lcom/android/server/wm/LetterboxConfiguration; @@ -57718,8 +58920,6 @@ Lcom/android/server/wm/PersisterQueue$LazyTaskWriterThread; Lcom/android/server/wm/PersisterQueue$Listener; Lcom/android/server/wm/PersisterQueue$WriteQueueItem; Lcom/android/server/wm/PersisterQueue; -Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher$DeviceStateListener$$ExternalSyntheticLambda0; -Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher$DeviceStateListener; Lcom/android/server/wm/PhysicalDisplaySwitchTransitionLauncher; Lcom/android/server/wm/PinnedTaskController$$ExternalSyntheticLambda0; Lcom/android/server/wm/PinnedTaskController$PinnedTaskListenerDeathHandler; @@ -57746,6 +58946,7 @@ Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda1; Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda23; Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda29; Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda2; +Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda34; Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda39; Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda42; Lcom/android/server/wm/RootWindowContainer$$ExternalSyntheticLambda43; @@ -57761,6 +58962,7 @@ Lcom/android/server/wm/RootWindowContainer$MyHandler; Lcom/android/server/wm/RootWindowContainer$RankTaskLayersRunnable; Lcom/android/server/wm/RootWindowContainer$SleepToken; Lcom/android/server/wm/RootWindowContainer; +Lcom/android/server/wm/RunningTasks$$ExternalSyntheticLambda0; Lcom/android/server/wm/RunningTasks; Lcom/android/server/wm/SafeActivityOptions; Lcom/android/server/wm/Session; @@ -57791,12 +58993,14 @@ Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks; Lcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector; Lcom/android/server/wm/SystemGesturesPointerEventListener; Lcom/android/server/wm/Task$$ExternalSyntheticLambda13; +Lcom/android/server/wm/Task$$ExternalSyntheticLambda14; Lcom/android/server/wm/Task$$ExternalSyntheticLambda15; Lcom/android/server/wm/Task$$ExternalSyntheticLambda17; Lcom/android/server/wm/Task$$ExternalSyntheticLambda18; Lcom/android/server/wm/Task$$ExternalSyntheticLambda19; Lcom/android/server/wm/Task$$ExternalSyntheticLambda1; Lcom/android/server/wm/Task$$ExternalSyntheticLambda23; +Lcom/android/server/wm/Task$$ExternalSyntheticLambda24; Lcom/android/server/wm/Task$$ExternalSyntheticLambda26; Lcom/android/server/wm/Task$$ExternalSyntheticLambda28; Lcom/android/server/wm/Task$$ExternalSyntheticLambda34; @@ -58010,7 +59214,9 @@ Lcom/android/server/wm/utils/WmDisplayCutout; [Landroid/hardware/usb/PortStatus; [Landroid/net/UidRangeParcel; [Lcom/android/server/AppStateTrackerImpl$Listener; +[Lcom/android/server/DropBoxManagerService$EntryFile; [Lcom/android/server/ExtconUEventObserver$ExtconInfo; +[Lcom/android/server/am/ActivityManagerService$PendingTempAllowlist; [Lcom/android/server/am/ActivityManagerService$ProcessChangeItem; [Lcom/android/server/am/BroadcastFilter; [Lcom/android/server/am/BroadcastQueue; diff --git a/services/backup/OWNERS b/services/backup/OWNERS index 852c689ae020..79709a3319c8 100644 --- a/services/backup/OWNERS +++ b/services/backup/OWNERS @@ -1,10 +1,13 @@ -# Bug component: 656484 +# Bug component: 1193469 + +set noparent bryanmawhinney@google.com jstemmer@google.com +martinoh@google.com millmore@google.com -nathch@google.com -niagra@google.com niamhfw@google.com +piee@google.com philippov@google.com rthakohov@google.com +sarpm@google.com diff --git a/services/companion/java/com/android/server/companion/virtual/InputController.java b/services/companion/java/com/android/server/companion/virtual/InputController.java index ec30369bd099..02053cc7cfd3 100644 --- a/services/companion/java/com/android/server/companion/virtual/InputController.java +++ b/services/companion/java/com/android/server/companion/virtual/InputController.java @@ -31,6 +31,7 @@ import android.hardware.input.VirtualMouseScrollEvent; import android.hardware.input.VirtualTouchEvent; import android.os.Handler; import android.os.IBinder; +import android.os.IInputConstants; import android.os.RemoteException; import android.util.ArrayMap; import android.util.Slog; @@ -75,7 +76,7 @@ class InputController { @interface PhysType { } - private final Object mLock; + final Object mLock; /* Token -> file descriptor associations. */ @VisibleForTesting @@ -220,6 +221,19 @@ class InputController { } } + /** + * @return the device id for a given token (identifiying a device) + */ + int getInputDeviceId(IBinder token) { + synchronized (mLock) { + final InputDeviceDescriptor inputDeviceDescriptor = mInputDeviceDescriptors.get(token); + if (inputDeviceDescriptor == null) { + throw new IllegalArgumentException("Could not get device id for given token"); + } + return inputDeviceDescriptor.getInputDeviceId(); + } + } + void setShowPointerIcon(boolean visible, int displayId) { mInputManagerInternal.setPointerIconVisible(visible, displayId); } @@ -393,10 +407,22 @@ class InputController { + inputDeviceDescriptor.getCreationOrderNumber()); fout.println(" type: " + inputDeviceDescriptor.getType()); fout.println(" phys: " + inputDeviceDescriptor.getPhys()); + fout.println( + " inputDeviceId: " + inputDeviceDescriptor.getInputDeviceId()); } } } + @VisibleForTesting + void addDeviceForTesting(IBinder deviceToken, int fd, int type, int displayId, + String phys, int inputDeviceId) { + synchronized (mLock) { + mInputDeviceDescriptors.put(deviceToken, + new InputDeviceDescriptor(fd, () -> {}, type, displayId, phys, + inputDeviceId)); + } + } + private static native int nativeOpenUinputDpad(String deviceName, int vendorId, int productId, String phys); private static native int nativeOpenUinputKeyboard(String deviceName, int vendorId, @@ -493,16 +519,20 @@ class InputController { private final @Type int mType; private final int mDisplayId; private final String mPhys; + // The input device id that was associated to the device by the InputReader on device + // creation. + private final int mInputDeviceId; // Monotonically increasing number; devices with lower numbers were created earlier. private final long mCreationOrderNumber; InputDeviceDescriptor(int fd, IBinder.DeathRecipient deathRecipient, @Type int type, - int displayId, String phys) { + int displayId, String phys, int inputDeviceId) { mFd = fd; mDeathRecipient = deathRecipient; mType = type; mDisplayId = displayId; mPhys = phys; + mInputDeviceId = inputDeviceId; mCreationOrderNumber = sNextCreationOrderNumber.getAndIncrement(); } @@ -533,6 +563,10 @@ class InputController { public String getPhys() { return mPhys; } + + public int getInputDeviceId() { + return mInputDeviceId; + } } private final class BinderDeathRecipient implements IBinder.DeathRecipient { @@ -558,6 +592,8 @@ class InputController { private final CountDownLatch mDeviceAddedLatch = new CountDownLatch(1); private final InputManager.InputDeviceListener mListener; + private int mInputDeviceId = IInputConstants.INVALID_INPUT_DEVICE_ID; + WaitForDevice(String deviceName, int vendorId, int productId) { mListener = new InputManager.InputDeviceListener() { @Override @@ -572,6 +608,7 @@ class InputController { if (id.getVendorId() != vendorId || id.getProductId() != productId) { return; } + mInputDeviceId = deviceId; mDeviceAddedLatch.countDown(); } @@ -588,8 +625,13 @@ class InputController { InputManager.getInstance().registerInputDeviceListener(mListener, mHandler); } - /** Note: This must not be called from {@link #mHandler}'s thread. */ - void waitForDeviceCreation() throws DeviceCreationException { + /** + * Note: This must not be called from {@link #mHandler}'s thread. + * @throws DeviceCreationException if the device was not created successfully within the + * timeout. + * @return The id of the created input device. + */ + int waitForDeviceCreation() throws DeviceCreationException { try { if (!mDeviceAddedLatch.await(1, TimeUnit.MINUTES)) { throw new DeviceCreationException( @@ -599,6 +641,12 @@ class InputController { throw new DeviceCreationException( "Interrupted while waiting for virtual device to be created.", e); } + if (mInputDeviceId == IInputConstants.INVALID_INPUT_DEVICE_ID) { + throw new IllegalStateException( + "Virtual input device was created with an invalid " + + "id=" + mInputDeviceId); + } + return mInputDeviceId; } @Override @@ -643,6 +691,8 @@ class InputController { final int fd; final BinderDeathRecipient binderDeathRecipient; + final int inputDeviceId; + setUniqueIdAssociation(displayId, phys); try (WaitForDevice waiter = new WaitForDevice(deviceName, vendorId, productId)) { fd = deviceOpener.get(); @@ -652,7 +702,7 @@ class InputController { } // The fd is valid from here, so ensure that all failures close the fd after this point. try { - waiter.waitForDeviceCreation(); + inputDeviceId = waiter.waitForDeviceCreation(); binderDeathRecipient = new BinderDeathRecipient(deviceToken); try { @@ -672,7 +722,8 @@ class InputController { synchronized (mLock) { mInputDeviceDescriptors.put(deviceToken, - new InputDeviceDescriptor(fd, binderDeathRecipient, type, displayId, phys)); + new InputDeviceDescriptor(fd, binderDeathRecipient, type, displayId, phys, + inputDeviceId)); } } diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java index 2835b69b3039..5ebbf07526f1 100644 --- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java @@ -498,6 +498,17 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub } @Override // Binder call + public int getInputDeviceId(IBinder token) { + final long binderToken = Binder.clearCallingIdentity(); + try { + return mInputController.getInputDeviceId(token); + } finally { + Binder.restoreCallingIdentity(binderToken); + } + } + + + @Override // Binder call public boolean sendDpadKeyEvent(IBinder token, VirtualKeyEvent event) { final long binderToken = Binder.clearCallingIdentity(); try { diff --git a/services/core/Android.bp b/services/core/Android.bp index 3aed1678df58..553146d0448d 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -156,6 +156,8 @@ java_library_static { "android.hardware.health-translate-java", "android.hardware.light-V1-java", "android.hardware.tv.cec-V1.1-java", + "android.hardware.tv.cec-V1-java", + "android.hardware.tv.hdmi-V1-java", "android.hardware.weaver-V1.0-java", "android.hardware.biometrics.face-V1.0-java", "android.hardware.biometrics.fingerprint-V2.3-java", diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index f7833b0f36fd..2652ebec5255 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -2581,33 +2581,39 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { if (!checkNotifyPermission("notifyBarringInfo()")) { return; } - if (barringInfo == null) { - log("Received null BarringInfo for subId=" + subId + ", phoneId=" + phoneId); - mBarringInfo.set(phoneId, new BarringInfo()); + if (!validatePhoneId(phoneId)) { + loge("Received invalid phoneId for BarringInfo = " + phoneId); return; } synchronized (mRecords) { - if (validatePhoneId(phoneId)) { - mBarringInfo.set(phoneId, barringInfo); - // Barring info is non-null - BarringInfo biNoLocation = barringInfo.createLocationInfoSanitizedCopy(); - if (VDBG) log("listen: call onBarringInfoChanged=" + barringInfo); - for (Record r : mRecords) { - if (r.matchTelephonyCallbackEvent( - TelephonyCallback.EVENT_BARRING_INFO_CHANGED) - && idMatch(r, subId, phoneId)) { - try { - if (DBG_LOC) { - log("notifyBarringInfo: mBarringInfo=" - + barringInfo + " r=" + r); - } - r.callback.onBarringInfoChanged( - checkFineLocationAccess(r, Build.VERSION_CODES.BASE) - ? barringInfo : biNoLocation); - } catch (RemoteException ex) { - mRemoveList.add(r.binder); + if (barringInfo == null) { + loge("Received null BarringInfo for subId=" + subId + ", phoneId=" + phoneId); + mBarringInfo.set(phoneId, new BarringInfo()); + return; + } + if (barringInfo.equals(mBarringInfo.get(phoneId))) { + if (VDBG) log("Ignoring duplicate barring info."); + return; + } + mBarringInfo.set(phoneId, barringInfo); + // Barring info is non-null + BarringInfo biNoLocation = barringInfo.createLocationInfoSanitizedCopy(); + if (VDBG) log("listen: call onBarringInfoChanged=" + barringInfo); + for (Record r : mRecords) { + if (r.matchTelephonyCallbackEvent( + TelephonyCallback.EVENT_BARRING_INFO_CHANGED) + && idMatch(r, subId, phoneId)) { + try { + if (DBG_LOC) { + log("notifyBarringInfo: mBarringInfo=" + + barringInfo + " r=" + r); } + r.callback.onBarringInfoChanged( + checkFineLocationAccess(r, Build.VERSION_CODES.BASE) + ? barringInfo : biNoLocation); + } catch (RemoteException ex) { + mRemoveList.add(r.binder); } } } diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java index 202f47759272..5d46de335781 100644 --- a/services/core/java/com/android/server/UiModeManagerService.java +++ b/services/core/java/com/android/server/UiModeManagerService.java @@ -152,6 +152,8 @@ final class UiModeManagerService extends SystemService { // flag set by resource, whether to start dream immediately upon docking even if unlocked. private boolean mStartDreamImmediatelyOnDock = true; + // flag set by resource, whether to disable dreams when ambient mode suppression is enabled. + private boolean mDreamsDisabledByAmbientModeSuppression = false; // flag set by resource, whether to enable Car dock launch when starting car mode. private boolean mEnableCarDockLaunch = true; // flag set by resource, whether to lock UI mode to the default one or not. @@ -364,6 +366,11 @@ final class UiModeManagerService extends SystemService { mStartDreamImmediatelyOnDock = startDreamImmediatelyOnDock; } + @VisibleForTesting + void setDreamsDisabledByAmbientModeSuppression(boolean disabledByAmbientModeSuppression) { + mDreamsDisabledByAmbientModeSuppression = disabledByAmbientModeSuppression; + } + @Override public void onUserSwitching(@Nullable TargetUser from, @NonNull TargetUser to) { mCurrentUser = to.getUserIdentifier(); @@ -424,6 +431,8 @@ final class UiModeManagerService extends SystemService { final Resources res = context.getResources(); mStartDreamImmediatelyOnDock = res.getBoolean( com.android.internal.R.bool.config_startDreamImmediatelyOnDock); + mDreamsDisabledByAmbientModeSuppression = res.getBoolean( + com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig); mNightMode = res.getInteger( com.android.internal.R.integer.config_defaultNightMode); mDefaultUiModeType = res.getInteger( @@ -1827,10 +1836,14 @@ final class UiModeManagerService extends SystemService { // Send the new configuration. applyConfigurationExternallyLocked(); + final boolean dreamsSuppressed = mDreamsDisabledByAmbientModeSuppression + && mLocalPowerManager.isAmbientDisplaySuppressed(); + // If we did not start a dock app, then start dreaming if appropriate. - if (category != null && !dockAppStarted && (mStartDreamImmediatelyOnDock - || mWindowManager.isKeyguardShowingAndNotOccluded() - || !mPowerManager.isInteractive())) { + if (category != null && !dockAppStarted && !dreamsSuppressed && ( + mStartDreamImmediatelyOnDock + || mWindowManager.isKeyguardShowingAndNotOccluded() + || !mPowerManager.isInteractive())) { mInjector.startDreamWhenDockedIfAppropriate(getContext()); } } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 1a4da7db54e9..63f81822e867 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -3902,12 +3902,13 @@ public class ActivityManagerService extends IActivityManager.Stub if (isInstantApp) { intent.putExtra(Intent.EXTRA_PACKAGE_NAME, packageName); broadcastIntentInPackage("android", null, SYSTEM_UID, uid, pid, intent, - null, null, 0, null, null, permission.ACCESS_INSTANT_APPS, null, - false, false, resolvedUserId, false, null, visibilityAllowList); + null, null, null, 0, null, null, permission.ACCESS_INSTANT_APPS, + null, false, false, resolvedUserId, false, null, + visibilityAllowList); } else { broadcastIntentInPackage("android", null, SYSTEM_UID, uid, pid, intent, - null, null, 0, null, null, null, null, false, false, resolvedUserId, - false, null, visibilityAllowList); + null, null, null, 0, null, null, null, null, false, false, + resolvedUserId, false, null, visibilityAllowList); } if (observer != null) { @@ -4444,7 +4445,8 @@ public class ActivityManagerService extends IActivityManager.Stub intent.putExtra(Intent.EXTRA_UID, uid); intent.putExtra(Intent.EXTRA_USER_HANDLE, userId); broadcastIntentLocked(null /* callerApp */, null /* callerPackage */, - null /* callerFeatureId */, intent, null /* resolvedType */, null /* resultTo */, + 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 */, @@ -5515,12 +5517,12 @@ public class ActivityManagerService extends IActivityManager.Stub } @Override - public int sendIntentSender(IIntentSender target, IBinder allowlistToken, int code, - Intent intent, String resolvedType, + public int sendIntentSender(IApplicationThread caller, IIntentSender target, + IBinder allowlistToken, int code, Intent intent, String resolvedType, IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) { if (target instanceof PendingIntentRecord) { - return ((PendingIntentRecord)target).sendWithResult(code, intent, resolvedType, - allowlistToken, finishedReceiver, requiredPermission, options); + return ((PendingIntentRecord) target).sendWithResult(caller, code, intent, + resolvedType, allowlistToken, finishedReceiver, requiredPermission, options); } else { if (intent == null) { // Weird case: someone has given us their own custom IIntentSender, and now @@ -13371,27 +13373,19 @@ public class ActivityManagerService extends IActivityManager.Stub int callingPid; boolean instantApp; synchronized(this) { - if (caller != null) { - callerApp = getRecordForAppLOSP(caller); - if (callerApp == null) { - throw new SecurityException( - "Unable to find app for caller " + caller - + " (pid=" + Binder.getCallingPid() - + ") when registering receiver " + receiver); - } - if (callerApp.info.uid != SYSTEM_UID - && !callerApp.getPkgList().containsKey(callerPackage) - && !"android".equals(callerPackage)) { - throw new SecurityException("Given caller package " + callerPackage - + " is not running in process " + callerApp); - } - callingUid = callerApp.info.uid; - callingPid = callerApp.getPid(); - } else { - callerPackage = null; - callingUid = Binder.getCallingUid(); - callingPid = Binder.getCallingPid(); + callerApp = getRecordForAppLOSP(caller); + if (callerApp == null) { + Slog.w(TAG, "registerReceiverWithFeature: no app for " + caller); + return null; } + if (callerApp.info.uid != SYSTEM_UID + && !callerApp.getPkgList().containsKey(callerPackage) + && !"android".equals(callerPackage)) { + throw new SecurityException("Given caller package " + callerPackage + + " is not running in process " + callerApp); + } + callingUid = callerApp.info.uid; + callingPid = callerApp.getPid(); instantApp = isInstantApp(callerApp, callerPackage, callingUid); userId = mUserController.handleIncomingUser(callingPid, callingUid, userId, true, @@ -13586,8 +13580,8 @@ public class ActivityManagerService extends IActivityManager.Stub BroadcastQueue queue = broadcastQueueForIntent(intent); BroadcastRecord r = new BroadcastRecord(queue, intent, null, null, null, -1, -1, false, null, null, null, null, OP_NONE, null, - receivers, null, 0, null, null, false, true, true, -1, false, null, - false /* only PRE_BOOT_COMPLETED should be exempt, no stickies */, + receivers, null, null, 0, null, null, false, true, true, -1, false, + null, false /* only PRE_BOOT_COMPLETED should be exempt, no stickies */, null /* filterExtrasForReceiver */); queue.enqueueBroadcastLocked(r); } @@ -13842,9 +13836,9 @@ public class ActivityManagerService extends IActivityManager.Stub boolean sticky, int callingPid, int callingUid, int realCallingUid, int realCallingPid, int userId) { return broadcastIntentLocked(callerApp, callerPackage, callerFeatureId, intent, - resolvedType, resultTo, resultCode, resultData, resultExtras, requiredPermissions, - excludedPermissions, excludedPackages, appOp, bOptions, ordered, sticky, callingPid, - callingUid, realCallingUid, realCallingPid, userId, + resolvedType, null, resultTo, resultCode, resultData, resultExtras, + requiredPermissions, excludedPermissions, excludedPackages, appOp, bOptions, + ordered, sticky, callingPid, callingUid, realCallingUid, realCallingPid, userId, false /* allowBackgroundActivityStarts */, null /* tokenNeededForBackgroundActivityStarts */, null /* broadcastAllowList */, null /* filterExtrasForReceiver */); @@ -13853,7 +13847,7 @@ public class ActivityManagerService extends IActivityManager.Stub @GuardedBy("this") final int broadcastIntentLocked(ProcessRecord callerApp, String callerPackage, @Nullable String callerFeatureId, Intent intent, String resolvedType, - IIntentReceiver resultTo, int resultCode, String resultData, + ProcessRecord resultToApp, IIntentReceiver resultTo, int resultCode, String resultData, Bundle resultExtras, String[] requiredPermissions, String[] excludedPermissions, String[] excludedPackages, int appOp, Bundle bOptions, boolean ordered, boolean sticky, int callingPid, int callingUid, @@ -13862,6 +13856,18 @@ public class ActivityManagerService extends IActivityManager.Stub @Nullable IBinder backgroundActivityStartsToken, @Nullable int[] broadcastAllowList, @Nullable BiFunction<Integer, Bundle, Bundle> filterExtrasForReceiver) { + if ((resultTo != null) && (resultToApp == null)) { + if (resultTo.asBinder() instanceof BinderProxy) { + // Warn when requesting results without a way to deliver them + Slog.wtf(TAG, "Sending broadcast " + intent.getAction() + + " with resultTo requires resultToApp", new Throwable()); + } else { + // If not a BinderProxy above, then resultTo is an in-process + // receiver, so splice in system_server process + resultToApp = getProcessRecordLocked("system", SYSTEM_UID); + } + } + intent = new Intent(intent); final boolean callerInstantApp = isInstantApp(callerApp, callerPackage, callingUid); @@ -14461,8 +14467,8 @@ public class ActivityManagerService extends IActivityManager.Stub BroadcastRecord r = new BroadcastRecord(queue, intent, callerApp, callerPackage, callerFeatureId, callingPid, callingUid, callerInstantApp, resolvedType, requiredPermissions, excludedPermissions, excludedPackages, appOp, brOptions, - registeredReceivers, resultTo, resultCode, resultData, resultExtras, ordered, - sticky, false, userId, allowBackgroundActivityStarts, + registeredReceivers, resultToApp, resultTo, resultCode, resultData, + resultExtras, ordered, sticky, false, userId, allowBackgroundActivityStarts, backgroundActivityStartsToken, timeoutExempt, filterExtrasForReceiver); if (DEBUG_BROADCAST) Slog.v(TAG_BROADCAST, "Enqueueing parallel broadcast " + r); queue.enqueueBroadcastLocked(r); @@ -14555,7 +14561,7 @@ public class ActivityManagerService extends IActivityManager.Stub BroadcastRecord r = new BroadcastRecord(queue, intent, callerApp, callerPackage, callerFeatureId, callingPid, callingUid, callerInstantApp, resolvedType, requiredPermissions, excludedPermissions, excludedPackages, appOp, brOptions, - receivers, resultTo, resultCode, resultData, resultExtras, + receivers, resultToApp, resultTo, resultCode, resultData, resultExtras, ordered, sticky, false, userId, allowBackgroundActivityStarts, backgroundActivityStartsToken, timeoutExempt, filterExtrasForReceiver); @@ -14680,16 +14686,20 @@ public class ActivityManagerService extends IActivityManager.Stub final int callingPid = Binder.getCallingPid(); final int callingUid = Binder.getCallingUid(); + // We're delivering the result to the caller + final ProcessRecord resultToApp = callerApp; + // Non-system callers can't declare that a broadcast is alarm-related. // The PendingIntent invocation case is handled in PendingIntentRecord. if (bOptions != null && callingUid != SYSTEM_UID) { - if (bOptions.containsKey(BroadcastOptions.KEY_ALARM_BROADCAST)) { + if (bOptions.containsKey(BroadcastOptions.KEY_ALARM_BROADCAST) + || bOptions.containsKey(BroadcastOptions.KEY_INTERACTIVE_BROADCAST)) { if (DEBUG_BROADCAST) { Slog.w(TAG, "Non-system caller " + callingUid - + " may not flag broadcast as alarm-related"); + + " may not flag broadcast as alarm or interactive"); } throw new SecurityException( - "Non-system callers may not flag broadcasts as alarm-related"); + "Non-system callers may not flag broadcasts as alarm or interactive"); } } @@ -14697,9 +14707,10 @@ public class ActivityManagerService extends IActivityManager.Stub try { return broadcastIntentLocked(callerApp, callerApp != null ? callerApp.info.packageName : null, callingFeatureId, - intent, resolvedType, resultTo, resultCode, resultData, resultExtras, - requiredPermissions, excludedPermissions, excludedPackages, appOp, bOptions, - serialized, sticky, callingPid, callingUid, callingUid, callingPid, userId); + intent, resolvedType, resultToApp, resultTo, resultCode, resultData, + resultExtras, requiredPermissions, excludedPermissions, excludedPackages, + appOp, bOptions, serialized, sticky, callingPid, callingUid, callingUid, + callingPid, userId, false, null, null, null); } finally { Binder.restoreCallingIdentity(origId); } @@ -14709,11 +14720,10 @@ public class ActivityManagerService extends IActivityManager.Stub // Not the binder call surface int broadcastIntentInPackage(String packageName, @Nullable String featureId, int uid, int realCallingUid, int realCallingPid, Intent intent, String resolvedType, - IIntentReceiver resultTo, int resultCode, String resultData, Bundle resultExtras, - String requiredPermission, Bundle bOptions, boolean serialized, boolean sticky, - int userId, boolean allowBackgroundActivityStarts, - @Nullable IBinder backgroundActivityStartsToken, - @Nullable int[] broadcastAllowList) { + ProcessRecord resultToApp, IIntentReceiver resultTo, int resultCode, + String resultData, Bundle resultExtras, String requiredPermission, Bundle bOptions, + boolean serialized, boolean sticky, int userId, boolean allowBackgroundActivityStarts, + @Nullable IBinder backgroundActivityStartsToken, @Nullable int[] broadcastAllowList) { synchronized(this) { intent = verifyBroadcastLocked(intent); @@ -14722,9 +14732,9 @@ public class ActivityManagerService extends IActivityManager.Stub : new String[] {requiredPermission}; try { return broadcastIntentLocked(null, packageName, featureId, intent, resolvedType, - resultTo, resultCode, resultData, resultExtras, requiredPermissions, null, - null, OP_NONE, bOptions, serialized, sticky, -1, uid, realCallingUid, - realCallingPid, userId, allowBackgroundActivityStarts, + resultToApp, resultTo, resultCode, resultData, resultExtras, + requiredPermissions, null, null, OP_NONE, bOptions, serialized, sticky, -1, + uid, realCallingUid, realCallingPid, userId, allowBackgroundActivityStarts, backgroundActivityStartsToken, broadcastAllowList, null /* filterExtrasForReceiver */); } finally { @@ -17253,16 +17263,18 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public int broadcastIntentInPackage(String packageName, @Nullable String featureId, int uid, int realCallingUid, int realCallingPid, Intent intent, String resolvedType, - IIntentReceiver resultTo, int resultCode, String resultData, Bundle resultExtras, - String requiredPermission, Bundle bOptions, boolean serialized, boolean sticky, - int userId, boolean allowBackgroundActivityStarts, + IApplicationThread resultToThread, IIntentReceiver resultTo, int resultCode, + String resultData, Bundle resultExtras, String requiredPermission, Bundle bOptions, + boolean serialized, boolean sticky, int userId, + boolean allowBackgroundActivityStarts, @Nullable IBinder backgroundActivityStartsToken, @Nullable int[] broadcastAllowList) { synchronized (ActivityManagerService.this) { + final ProcessRecord resultToApp = getRecordForAppLOSP(resultToThread); return ActivityManagerService.this.broadcastIntentInPackage(packageName, featureId, - uid, realCallingUid, realCallingPid, intent, resolvedType, resultTo, - resultCode, resultData, resultExtras, requiredPermission, bOptions, - serialized, sticky, userId, allowBackgroundActivityStarts, + uid, realCallingUid, realCallingPid, intent, resolvedType, resultToApp, + resultTo, resultCode, resultData, resultExtras, requiredPermission, + bOptions, serialized, sticky, userId, allowBackgroundActivityStarts, backgroundActivityStartsToken, broadcastAllowList); } } @@ -17283,8 +17295,9 @@ public class ActivityManagerService extends IActivityManager.Stub try { return ActivityManagerService.this.broadcastIntentLocked(null /*callerApp*/, null /*callerPackage*/, null /*callingFeatureId*/, intent, - null /*resolvedType*/, resultTo, 0 /*resultCode*/, null /*resultData*/, - null /*resultExtras*/, requiredPermissions, + null /* resolvedType */, null /* resultToApp */, resultTo, + 0 /* resultCode */, null /* resultData */, + null /* resultExtras */, requiredPermissions, null /*excludedPermissions*/, null /*excludedPackages*/, AppOpsManager.OP_NONE, bOptions /*options*/, serialized, false /*sticky*/, callingPid, callingUid, callingUid, callingPid, @@ -17897,7 +17910,7 @@ public class ActivityManagerService extends IActivityManager.Stub public int sendIntentSender(IIntentSender target, IBinder allowlistToken, int code, Intent intent, String resolvedType, IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) { - return ActivityManagerService.this.sendIntentSender(target, allowlistToken, code, + return ActivityManagerService.this.sendIntentSender(null, target, allowlistToken, code, intent, resolvedType, finishedReceiver, requiredPermission, options); } diff --git a/services/core/java/com/android/server/am/BroadcastConstants.java b/services/core/java/com/android/server/am/BroadcastConstants.java index a4a1c2f0d87c..ebcd6239afd3 100644 --- a/services/core/java/com/android/server/am/BroadcastConstants.java +++ b/services/core/java/com/android/server/am/BroadcastConstants.java @@ -133,7 +133,7 @@ public class BroadcastConstants { */ public boolean MODERN_QUEUE_ENABLED = DEFAULT_MODERN_QUEUE_ENABLED; private static final String KEY_MODERN_QUEUE_ENABLED = "modern_queue_enabled"; - private static final boolean DEFAULT_MODERN_QUEUE_ENABLED = false; + private static final boolean DEFAULT_MODERN_QUEUE_ENABLED = true; /** * For {@link BroadcastQueueModernImpl}: Maximum number of process queues to @@ -167,7 +167,7 @@ public class BroadcastConstants { */ public long DELAY_NORMAL_MILLIS = DEFAULT_DELAY_NORMAL_MILLIS; private static final String KEY_DELAY_NORMAL_MILLIS = "bcast_delay_normal_millis"; - private static final long DEFAULT_DELAY_NORMAL_MILLIS = 10_000 * Build.HW_TIMEOUT_MULTIPLIER; + private static final long DEFAULT_DELAY_NORMAL_MILLIS = 1_000; /** * For {@link BroadcastQueueModernImpl}: Delay to apply to broadcasts @@ -175,7 +175,7 @@ public class BroadcastConstants { */ public long DELAY_CACHED_MILLIS = DEFAULT_DELAY_CACHED_MILLIS; private static final String KEY_DELAY_CACHED_MILLIS = "bcast_delay_cached_millis"; - private static final long DEFAULT_DELAY_CACHED_MILLIS = 30_000 * Build.HW_TIMEOUT_MULTIPLIER; + private static final long DEFAULT_DELAY_CACHED_MILLIS = 10_000; /** * For {@link BroadcastQueueModernImpl}: Maximum number of complete diff --git a/services/core/java/com/android/server/am/BroadcastProcessQueue.java b/services/core/java/com/android/server/am/BroadcastProcessQueue.java index 97635b53a6d4..868c3ae6da50 100644 --- a/services/core/java/com/android/server/am/BroadcastProcessQueue.java +++ b/services/core/java/com/android/server/am/BroadcastProcessQueue.java @@ -103,6 +103,13 @@ class BroadcastProcessQueue { private final ArrayDeque<SomeArgs> mPending = new ArrayDeque<>(); /** + * Ordered collection of "urgent" broadcasts that are waiting to be + * dispatched to this process, in the same representation as + * {@link #mPending}. + */ + private final ArrayDeque<SomeArgs> mPendingUrgent = new ArrayDeque<>(); + + /** * Broadcast actively being dispatched to this process. */ private @Nullable BroadcastRecord mActive; @@ -114,6 +121,14 @@ class BroadcastProcessQueue { private int mActiveIndex; /** + * When defined, the receiver actively being dispatched into this process + * was considered "blocked" until at least the given count of other + * receivers have reached a terminal state; typically used for ordered + * broadcasts and priority traunches. + */ + private int mActiveBlockedUntilTerminalCount; + + /** * Count of {@link #mActive} broadcasts that have been dispatched since this * queue was last idle. */ @@ -132,12 +147,16 @@ class BroadcastProcessQueue { private int mCountOrdered; private int mCountAlarm; private int mCountPrioritized; + private int mCountInteractive; + private int mCountResultTo; + private int mCountInstrumented; private @UptimeMillisLong long mRunnableAt = Long.MAX_VALUE; private @Reason int mRunnableAtReason = REASON_EMPTY; private boolean mRunnableAtInvalidated; private boolean mProcessCached; + private boolean mProcessInstrumented; private String mCachedToString; private String mCachedToShortString; @@ -164,40 +183,65 @@ class BroadcastProcessQueue { */ public void enqueueOrReplaceBroadcast(@NonNull BroadcastRecord record, int recordIndex, int blockedUntilTerminalCount) { - // If caller wants to replace, walk backwards looking for any matches if (record.isReplacePending()) { - final Iterator<SomeArgs> it = mPending.descendingIterator(); - final Object receiver = record.receivers.get(recordIndex); - while (it.hasNext()) { - final SomeArgs args = it.next(); - final BroadcastRecord testRecord = (BroadcastRecord) args.arg1; - final Object testReceiver = testRecord.receivers.get(args.argi1); - if ((record.callingUid == testRecord.callingUid) - && (record.userId == testRecord.userId) - && record.intent.filterEquals(testRecord.intent) - && isReceiverEquals(receiver, testReceiver)) { - // Exact match found; perform in-place swap - args.arg1 = record; - args.argi1 = recordIndex; - args.argi2 = blockedUntilTerminalCount; - onBroadcastDequeued(testRecord); - onBroadcastEnqueued(record); - return; - } + boolean didReplace = replaceBroadcastInQueue(mPending, + record, recordIndex, blockedUntilTerminalCount) + || replaceBroadcastInQueue(mPendingUrgent, + record, recordIndex, blockedUntilTerminalCount); + if (didReplace) { + return; } } // Caller isn't interested in replacing, or we didn't find any pending // item to replace above, so enqueue as a new broadcast - SomeArgs args = SomeArgs.obtain(); - args.arg1 = record; - args.argi1 = recordIndex; - args.argi2 = blockedUntilTerminalCount; - mPending.addLast(args); + SomeArgs newBroadcastArgs = SomeArgs.obtain(); + newBroadcastArgs.arg1 = record; + newBroadcastArgs.argi1 = recordIndex; + newBroadcastArgs.argi2 = blockedUntilTerminalCount; + + // Cross-broadcast prioritization policy: some broadcasts might warrant being + // issued ahead of others that are already pending, for example if this new + // broadcast is in a different delivery class or is tied to a direct user interaction + // with implicit responsiveness expectations. + final ArrayDeque<SomeArgs> queue = record.isUrgent() ? mPendingUrgent : mPending; + queue.addLast(newBroadcastArgs); onBroadcastEnqueued(record); } /** + * Searches from newest to oldest, and at the first matching pending broadcast + * it finds, replaces it in-place and returns -- does not attempt to handle + * "duplicate" broadcasts in the queue. + * <p> + * @return {@code true} if it found and replaced an existing record in the queue; + * {@code false} otherwise. + */ + private boolean replaceBroadcastInQueue(@NonNull ArrayDeque<SomeArgs> queue, + @NonNull BroadcastRecord record, int recordIndex, int blockedUntilTerminalCount) { + final Iterator<SomeArgs> it = queue.descendingIterator(); + final Object receiver = record.receivers.get(recordIndex); + while (it.hasNext()) { + final SomeArgs args = it.next(); + final BroadcastRecord testRecord = (BroadcastRecord) args.arg1; + final Object testReceiver = testRecord.receivers.get(args.argi1); + if ((record.callingUid == testRecord.callingUid) + && (record.userId == testRecord.userId) + && record.intent.filterEquals(testRecord.intent) + && isReceiverEquals(receiver, testReceiver)) { + // Exact match found; perform in-place swap + args.arg1 = record; + args.argi1 = recordIndex; + args.argi2 = blockedUntilTerminalCount; + onBroadcastDequeued(testRecord); + onBroadcastEnqueued(record); + return true; + } + } + return false; + } + + /** * Functional interface that tests a {@link BroadcastRecord} that has been * previously enqueued in {@link BroadcastProcessQueue}. */ @@ -225,8 +269,18 @@ class BroadcastProcessQueue { */ public boolean forEachMatchingBroadcast(@NonNull BroadcastPredicate predicate, @NonNull BroadcastConsumer consumer, boolean andRemove) { + boolean didSomething = forEachMatchingBroadcastInQueue(mPending, + predicate, consumer, andRemove); + didSomething |= forEachMatchingBroadcastInQueue(mPendingUrgent, + predicate, consumer, andRemove); + return didSomething; + } + + private boolean forEachMatchingBroadcastInQueue(@NonNull ArrayDeque<SomeArgs> queue, + @NonNull BroadcastPredicate predicate, @NonNull BroadcastConsumer consumer, + boolean andRemove) { boolean didSomething = false; - final Iterator<SomeArgs> it = mPending.iterator(); + final Iterator<SomeArgs> it = queue.iterator(); while (it.hasNext()) { final SomeArgs args = it.next(); final BroadcastRecord record = (BroadcastRecord) args.arg1; @@ -247,6 +301,18 @@ class BroadcastProcessQueue { } /** + * Update the actively running "warm" process for this process. + */ + public void setProcess(@Nullable ProcessRecord app) { + this.app = app; + if (app != null) { + setProcessInstrumented(app.getActiveInstrumentation() != null); + } else { + setProcessInstrumented(false); + } + } + + /** * Update if this process is in the "cached" state, typically signaling that * broadcast dispatch should be paused or delayed. */ @@ -258,6 +324,18 @@ class BroadcastProcessQueue { } /** + * Update if this process is in the "instrumented" state, typically + * signaling that broadcast dispatch should bypass all pauses or delays, to + * avoid holding up test suites. + */ + public void setProcessInstrumented(boolean instrumented) { + if (mProcessInstrumented != instrumented) { + mProcessInstrumented = instrumented; + invalidateRunnableAt(); + } + } + + /** * Return if we know of an actively running "warm" process for this queue. */ public boolean isProcessWarm() { @@ -265,13 +343,12 @@ class BroadcastProcessQueue { } public int getPreferredSchedulingGroupLocked() { - if (mCountForeground > 0 || mCountOrdered > 0 || mCountAlarm > 0) { - // We have an important broadcast somewhere down the queue, so + if (mCountForeground > 0) { + // We have a foreground broadcast somewhere down the queue, so // boost priority until we drain them all return ProcessList.SCHED_GROUP_DEFAULT; - } else if ((mActive != null) - && (mActive.isForeground() || mActive.ordered || mActive.alarm)) { - // We have an important broadcast right now, so boost priority + } else if ((mActive != null) && mActive.isForeground()) { + // We have a foreground broadcast right now, so boost priority return ProcessList.SCHED_GROUP_DEFAULT; } else if (!isIdle()) { return ProcessList.SCHED_GROUP_BACKGROUND; @@ -301,9 +378,10 @@ class BroadcastProcessQueue { */ public void makeActiveNextPending() { // TODO: what if the next broadcast isn't runnable yet? - final SomeArgs next = mPending.removeFirst(); + final SomeArgs next = removeNextBroadcast(); mActive = (BroadcastRecord) next.arg1; mActiveIndex = next.argi1; + mActiveBlockedUntilTerminalCount = next.argi2; mActiveCountSinceIdle++; mActiveViaColdStart = false; next.recycle(); @@ -316,6 +394,7 @@ class BroadcastProcessQueue { public void makeActiveIdle() { mActive = null; mActiveIndex = 0; + mActiveBlockedUntilTerminalCount = -1; mActiveCountSinceIdle = 0; mActiveViaColdStart = false; invalidateRunnableAt(); @@ -337,6 +416,15 @@ class BroadcastProcessQueue { if (record.prioritized) { mCountPrioritized++; } + if (record.interactive) { + mCountInteractive++; + } + if (record.resultTo != null) { + mCountResultTo++; + } + if (record.callerInstrumented) { + mCountInstrumented++; + } invalidateRunnableAt(); } @@ -356,6 +444,15 @@ class BroadcastProcessQueue { if (record.prioritized) { mCountPrioritized--; } + if (record.interactive) { + mCountInteractive--; + } + if (record.resultTo != null) { + mCountResultTo--; + } + if (record.callerInstrumented) { + mCountInstrumented--; + } invalidateRunnableAt(); } @@ -403,7 +500,7 @@ class BroadcastProcessQueue { } public boolean isEmpty() { - return mPending.isEmpty(); + return mPending.isEmpty() && mPendingUrgent.isEmpty(); } public boolean isActive() { @@ -411,6 +508,38 @@ class BroadcastProcessQueue { } /** + * Will thrown an exception if there are no pending broadcasts; relies on + * {@link #isEmpty()} being false. + */ + SomeArgs removeNextBroadcast() { + ArrayDeque<SomeArgs> queue = queueForNextBroadcast(); + return queue.removeFirst(); + } + + @Nullable ArrayDeque<SomeArgs> queueForNextBroadcast() { + if (!mPendingUrgent.isEmpty()) { + return mPendingUrgent; + } else if (!mPending.isEmpty()) { + return mPending; + } + return null; + } + + /** + * Returns null if there are no pending broadcasts + */ + @Nullable SomeArgs peekNextBroadcast() { + ArrayDeque<SomeArgs> queue = queueForNextBroadcast(); + return (queue != null) ? queue.peekFirst() : null; + } + + @VisibleForTesting + @Nullable BroadcastRecord peekNextBroadcastRecord() { + ArrayDeque<SomeArgs> queue = queueForNextBroadcast(); + return (queue != null) ? (BroadcastRecord) queue.peekFirst().arg1 : null; + } + + /** * Quickly determine if this queue has broadcasts that are still waiting to * be delivered at some point in the future. */ @@ -427,11 +556,13 @@ class BroadcastProcessQueue { return mActive.enqueueTime > barrierTime; } final SomeArgs next = mPending.peekFirst(); - if (next != null) { - return ((BroadcastRecord) next.arg1).enqueueTime > barrierTime; - } - // Nothing running or runnable means we're past the barrier - return true; + final SomeArgs nextUrgent = mPendingUrgent.peekFirst(); + // Empty queue is past any barrier + final boolean nextLater = next == null + || ((BroadcastRecord) next.arg1).enqueueTime > barrierTime; + final boolean nextUrgentLater = nextUrgent == null + || ((BroadcastRecord) nextUrgent.arg1).enqueueTime > barrierTime; + return nextLater && nextUrgentLater; } public boolean isRunnable() { @@ -467,25 +598,33 @@ class BroadcastProcessQueue { } static final int REASON_EMPTY = 0; - static final int REASON_CONTAINS_FOREGROUND = 1; - static final int REASON_CONTAINS_ORDERED = 2; - static final int REASON_CONTAINS_ALARM = 3; - static final int REASON_CONTAINS_PRIORITIZED = 4; - static final int REASON_CACHED = 5; - static final int REASON_NORMAL = 6; - static final int REASON_MAX_PENDING = 7; - static final int REASON_BLOCKED = 8; + static final int REASON_CACHED = 1; + static final int REASON_NORMAL = 2; + static final int REASON_MAX_PENDING = 3; + static final int REASON_BLOCKED = 4; + static final int REASON_INSTRUMENTED = 5; + static final int REASON_CONTAINS_FOREGROUND = 10; + static final int REASON_CONTAINS_ORDERED = 11; + static final int REASON_CONTAINS_ALARM = 12; + static final int REASON_CONTAINS_PRIORITIZED = 13; + static final int REASON_CONTAINS_INTERACTIVE = 14; + static final int REASON_CONTAINS_RESULT_TO = 15; + static final int REASON_CONTAINS_INSTRUMENTED = 16; @IntDef(flag = false, prefix = { "REASON_" }, value = { REASON_EMPTY, - REASON_CONTAINS_FOREGROUND, - REASON_CONTAINS_ORDERED, - REASON_CONTAINS_ALARM, - REASON_CONTAINS_PRIORITIZED, REASON_CACHED, REASON_NORMAL, REASON_MAX_PENDING, REASON_BLOCKED, + REASON_INSTRUMENTED, + REASON_CONTAINS_FOREGROUND, + REASON_CONTAINS_ORDERED, + REASON_CONTAINS_ALARM, + REASON_CONTAINS_PRIORITIZED, + REASON_CONTAINS_INTERACTIVE, + REASON_CONTAINS_RESULT_TO, + REASON_CONTAINS_INSTRUMENTED, }) @Retention(RetentionPolicy.SOURCE) public @interface Reason {} @@ -493,14 +632,18 @@ class BroadcastProcessQueue { static @NonNull String reasonToString(@Reason int reason) { switch (reason) { case REASON_EMPTY: return "EMPTY"; - case REASON_CONTAINS_FOREGROUND: return "CONTAINS_FOREGROUND"; - case REASON_CONTAINS_ORDERED: return "CONTAINS_ORDERED"; - case REASON_CONTAINS_ALARM: return "CONTAINS_ALARM"; - case REASON_CONTAINS_PRIORITIZED: return "CONTAINS_PRIORITIZED"; case REASON_CACHED: return "CACHED"; case REASON_NORMAL: return "NORMAL"; case REASON_MAX_PENDING: return "MAX_PENDING"; case REASON_BLOCKED: return "BLOCKED"; + case REASON_INSTRUMENTED: return "INSTRUMENTED"; + case REASON_CONTAINS_FOREGROUND: return "CONTAINS_FOREGROUND"; + case REASON_CONTAINS_ORDERED: return "CONTAINS_ORDERED"; + case REASON_CONTAINS_ALARM: return "CONTAINS_ALARM"; + case REASON_CONTAINS_PRIORITIZED: return "CONTAINS_PRIORITIZED"; + case REASON_CONTAINS_INTERACTIVE: return "CONTAINS_INTERACTIVE"; + case REASON_CONTAINS_RESULT_TO: return "CONTAINS_RESULT_TO"; + case REASON_CONTAINS_INSTRUMENTED: return "CONTAINS_INSTRUMENTED"; default: return Integer.toString(reason); } } @@ -509,7 +652,7 @@ class BroadcastProcessQueue { * Update {@link #getRunnableAt()} if it's currently invalidated. */ private void updateRunnableAt() { - final SomeArgs next = mPending.peekFirst(); + final SomeArgs next = peekNextBroadcast(); if (next != null) { final BroadcastRecord r = (BroadcastRecord) next.arg1; final int index = next.argi1; @@ -527,7 +670,7 @@ class BroadcastProcessQueue { // If we have too many broadcasts pending, bypass any delays that // might have been applied above to aid draining - if (mPending.size() >= constants.MAX_PENDING_BROADCASTS) { + if (mPending.size() + mPendingUrgent.size() >= constants.MAX_PENDING_BROADCASTS) { mRunnableAt = runnableAt; mRunnableAtReason = REASON_MAX_PENDING; return; @@ -545,6 +688,18 @@ class BroadcastProcessQueue { } else if (mCountPrioritized > 0) { mRunnableAt = runnableAt; mRunnableAtReason = REASON_CONTAINS_PRIORITIZED; + } else if (mCountInteractive > 0) { + mRunnableAt = runnableAt; + mRunnableAtReason = REASON_CONTAINS_INTERACTIVE; + } else if (mCountResultTo > 0) { + mRunnableAt = runnableAt; + mRunnableAtReason = REASON_CONTAINS_RESULT_TO; + } else if (mCountInstrumented > 0) { + mRunnableAt = runnableAt; + mRunnableAtReason = REASON_CONTAINS_INSTRUMENTED; + } else if (mProcessInstrumented) { + mRunnableAt = runnableAt; + mRunnableAtReason = REASON_INSTRUMENTED; } else if (mProcessCached) { mRunnableAt = runnableAt + constants.DELAY_CACHED_MILLIS; mRunnableAtReason = REASON_CACHED; @@ -564,8 +719,8 @@ class BroadcastProcessQueue { */ public void checkHealthLocked() { if (mRunnableAtReason == REASON_BLOCKED) { - final SomeArgs next = mPending.peekFirst(); - Objects.requireNonNull(next, "peekFirst"); + final SomeArgs next = peekNextBroadcast(); + Objects.requireNonNull(next, "peekNextBroadcast"); // If blocked more than 10 minutes, we're likely wedged final BroadcastRecord r = (BroadcastRecord) next.arg1; @@ -664,27 +819,14 @@ class BroadcastProcessQueue { } pw.print(" because "); pw.print(reasonToString(mRunnableAtReason)); - if (mRunnableAtReason == REASON_BLOCKED) { - final SomeArgs next = mPending.peekFirst(); - if (next != null) { - final BroadcastRecord r = (BroadcastRecord) next.arg1; - final int blockedUntilTerminalCount = next.argi2; - pw.print(" waiting for "); - pw.print(blockedUntilTerminalCount); - pw.print(" at "); - pw.print(r.terminalCount); - pw.print(" of "); - pw.print(r.receivers.size()); - } - } pw.println(); pw.increaseIndent(); if (mActive != null) { - dumpRecord(now, pw, mActive, mActiveIndex); + dumpRecord(now, pw, mActive, mActiveIndex, mActiveBlockedUntilTerminalCount); } for (SomeArgs args : mPending) { final BroadcastRecord r = (BroadcastRecord) args.arg1; - dumpRecord(now, pw, r, args.argi1); + dumpRecord(now, pw, r, args.argi1, args.argi2); } pw.decreaseIndent(); pw.println(); @@ -692,7 +834,7 @@ class BroadcastProcessQueue { @NeverCompile private void dumpRecord(@UptimeMillisLong long now, @NonNull IndentingPrintWriter pw, - @NonNull BroadcastRecord record, int recordIndex) { + @NonNull BroadcastRecord record, int recordIndex, int blockedUntilTerminalCount) { TimeUtils.formatDuration(record.enqueueTime, now, pw); pw.print(' '); pw.println(record.toShortString()); @@ -714,5 +856,13 @@ class BroadcastProcessQueue { pw.print(info.activityInfo.name); } pw.println(); + if (blockedUntilTerminalCount != -1) { + pw.print(" blocked until "); + pw.print(blockedUntilTerminalCount); + pw.print(", currently at "); + pw.print(record.terminalCount); + pw.print(" of "); + pw.println(record.receivers.size()); + } } } diff --git a/services/core/java/com/android/server/am/BroadcastQueueImpl.java b/services/core/java/com/android/server/am/BroadcastQueueImpl.java index d7a075b3b966..f34565b2ee9c 100644 --- a/services/core/java/com/android/server/am/BroadcastQueueImpl.java +++ b/services/core/java/com/android/server/am/BroadcastQueueImpl.java @@ -262,7 +262,7 @@ public class BroadcastQueueImpl extends BroadcastQueue { if (oldRecord.resultTo != null) { try { oldRecord.mIsReceiverAppRunning = true; - performReceiveLocked(oldRecord.callerApp, oldRecord.resultTo, + performReceiveLocked(oldRecord.resultToApp, oldRecord.resultTo, oldRecord.intent, Activity.RESULT_CANCELED, null, null, false, false, oldRecord.userId, oldRecord.callingUid, r.callingUid, @@ -1120,7 +1120,7 @@ public class BroadcastQueueImpl extends BroadcastQueue { r.dispatchTime = now; } r.mIsReceiverAppRunning = true; - performReceiveLocked(r.callerApp, r.resultTo, + performReceiveLocked(r.resultToApp, r.resultTo, new Intent(r.intent), r.resultCode, r.resultData, r.resultExtras, false, false, r.userId, r.callingUid, r.callingUid, diff --git a/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java b/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java index 89a0283a4264..db3ef3d51b16 100644 --- a/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +++ b/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java @@ -44,6 +44,7 @@ import android.annotation.Nullable; import android.annotation.UptimeMillisLong; import android.app.Activity; import android.app.ActivityManager; +import android.app.BroadcastOptions; import android.app.IApplicationThread; import android.app.RemoteServiceException.CannotDeliverBroadcastException; import android.app.UidObserver; @@ -396,17 +397,12 @@ class BroadcastQueueModernImpl extends BroadcastQueue { // Emit all trace events for this process into a consistent track queue.traceTrackName = TAG + ".mRunning[" + queueIndex + "]"; - // If we're already warm, boost OOM adjust now; if cold we'll boost - // it after the app has been started - if (processWarm) { - notifyStartedRunning(queue); - } - // If we're already warm, schedule next pending broadcast now; // otherwise we'll wait for the cold start to circle back around queue.makeActiveNextPending(); if (processWarm) { queue.traceProcessRunningBegin(); + notifyStartedRunning(queue); scheduleReceiverWarmLocked(queue); } else { queue.traceProcessStartingBegin(); @@ -441,15 +437,22 @@ class BroadcastQueueModernImpl extends BroadcastQueue { @Override public boolean onApplicationAttachedLocked(@NonNull ProcessRecord app) { + // Process records can be recycled, so always start by looking up the + // relevant per-process queue + final BroadcastProcessQueue queue = getProcessQueue(app); + if (queue != null) { + queue.setProcess(app); + } + boolean didSomething = false; - if ((mRunningColdStart != null) && (mRunningColdStart.app == app)) { + if ((mRunningColdStart != null) && (mRunningColdStart == queue)) { // We've been waiting for this app to cold start, and it's ready // now; dispatch its next broadcast and clear the slot - final BroadcastProcessQueue queue = mRunningColdStart; mRunningColdStart = null; queue.traceProcessEnd(); queue.traceProcessRunningBegin(); + notifyStartedRunning(queue); scheduleReceiverWarmLocked(queue); // We might be willing to kick off another cold start @@ -471,19 +474,25 @@ class BroadcastQueueModernImpl extends BroadcastQueue { @Override public void onApplicationCleanupLocked(@NonNull ProcessRecord app) { - if ((mRunningColdStart != null) && (mRunningColdStart.app == app)) { + // Process records can be recycled, so always start by looking up the + // relevant per-process queue + final BroadcastProcessQueue queue = getProcessQueue(app); + if (queue != null) { + queue.setProcess(null); + } + + if ((mRunningColdStart != null) && (mRunningColdStart == queue)) { // We've been waiting for this app to cold start, and it had // trouble; clear the slot and fail delivery below mRunningColdStart = null; + queue.traceProcessEnd(); + // We might be willing to kick off another cold start enqueueUpdateRunningList(); } - final BroadcastProcessQueue queue = getProcessQueue(app); if (queue != null) { - queue.app = null; - // If queue was running a broadcast, fail it if (queue.isActive()) { finishReceiverLocked(queue, BroadcastRecord.DELIVERY_FAILURE); @@ -526,6 +535,17 @@ class BroadcastQueueModernImpl extends BroadcastQueue { }, mBroadcastConsumerSkipAndCanceled, true); } + final int policy = (r.options != null) + ? r.options.getDeliveryGroupPolicy() : BroadcastOptions.DELIVERY_GROUP_POLICY_ALL; + if (policy == BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT) { + forEachMatchingBroadcast(QUEUE_PREDICATE_ANY, (testRecord, testIndex) -> { + // We only allow caller to remove broadcasts they enqueued + return (r.callingUid == testRecord.callingUid) + && (r.userId == testRecord.userId) + && r.matchesDeliveryGroup(testRecord); + }, mBroadcastConsumerSkipAndCanceled, true); + } + if (r.isReplacePending()) { // Leave the skipped broadcasts intact in queue, so that we can // replace them at their current position during enqueue below @@ -567,7 +587,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { } } else { // Otherwise we don't need to block at all - blockedUntilTerminalCount = 0; + blockedUntilTerminalCount = -1; } queue.enqueueOrReplaceBroadcast(r, i, blockedUntilTerminalCount); @@ -619,9 +639,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { if (DEBUG_BROADCAST) logv("Scheduling " + r + " to cold " + queue); queue.app = mService.startProcessLocked(queue.processName, info, true, intentFlags, hostingRecord, zygotePolicyFlags, allowWhileBooting, false); - if (queue.app != null) { - notifyStartedRunning(queue); - } else { + if (queue.app == null) { mRunningColdStart = null; finishReceiverLocked(queue, BroadcastRecord.DELIVERY_FAILURE); return; @@ -749,8 +767,8 @@ class BroadcastQueueModernImpl extends BroadcastQueue { * ordered broadcast; assumes the sender is still a warm process. */ private void scheduleResultTo(@NonNull BroadcastRecord r) { - if ((r.callerApp == null) || (r.resultTo == null)) return; - final ProcessRecord app = r.callerApp; + if ((r.resultToApp == null) || (r.resultTo == null)) return; + final ProcessRecord app = r.resultToApp; final IApplicationThread thread = app.getThread(); if (thread != null) { mService.mOomAdjuster.mCachedAppOptimizer.unfreezeTemporarily( @@ -798,19 +816,21 @@ class BroadcastQueueModernImpl extends BroadcastQueue { } final BroadcastRecord r = queue.getActive(); - r.resultCode = resultCode; - r.resultData = resultData; - r.resultExtras = resultExtras; - if (!r.isNoAbort()) { - r.resultAbort = resultAbort; - } - - // When the caller aborted an ordered broadcast, we mark all remaining - // receivers as skipped - if (r.ordered && r.resultAbort) { - for (int i = r.terminalCount + 1; i < r.receivers.size(); i++) { - setDeliveryState(null, null, r, i, r.receivers.get(i), - BroadcastRecord.DELIVERY_SKIPPED); + if (r.ordered) { + r.resultCode = resultCode; + r.resultData = resultData; + r.resultExtras = resultExtras; + if (!r.isNoAbort()) { + r.resultAbort = resultAbort; + } + + // When the caller aborted an ordered broadcast, we mark all + // remaining receivers as skipped + if (r.resultAbort) { + for (int i = r.terminalCount + 1; i < r.receivers.size(); i++) { + setDeliveryState(null, null, r, i, r.receivers.get(i), + BroadcastRecord.DELIVERY_SKIPPED); + } } } @@ -907,7 +927,8 @@ class BroadcastQueueModernImpl extends BroadcastQueue { notifyFinishReceiver(queue, r, index, receiver); // When entire ordered broadcast finished, deliver final result - if (r.ordered && (r.terminalCount == r.receivers.size())) { + final boolean recordFinished = (r.terminalCount == r.receivers.size()); + if (recordFinished) { scheduleResultTo(r); } @@ -1159,6 +1180,12 @@ class BroadcastQueueModernImpl extends BroadcastQueue { } } + // Verify that pending cold start hasn't been orphaned + if (mRunningColdStart != null) { + checkState(getRunningIndexOf(mRunningColdStart) >= 0, + "isOrphaned " + mRunningColdStart); + } + // Verify health of all known process queues for (int i = 0; i < mProcessQueues.size(); i++) { BroadcastProcessQueue leaf = mProcessQueues.valueAt(i); @@ -1193,7 +1220,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { private void updateWarmProcess(@NonNull BroadcastProcessQueue queue) { if (!queue.isProcessWarm()) { - queue.app = mService.getProcessRecordLocked(queue.processName, queue.uid); + queue.setProcess(mService.getProcessRecordLocked(queue.processName, queue.uid)); } } diff --git a/services/core/java/com/android/server/am/BroadcastRecord.java b/services/core/java/com/android/server/am/BroadcastRecord.java index bcc76e949e5f..d7dc8b80931b 100644 --- a/services/core/java/com/android/server/am/BroadcastRecord.java +++ b/services/core/java/com/android/server/am/BroadcastRecord.java @@ -78,11 +78,13 @@ final class BroadcastRecord extends Binder { final int callingPid; // the pid of who sent this final int callingUid; // the uid of who sent this final boolean callerInstantApp; // caller is an Instant App? + final boolean callerInstrumented; // caller is being instrumented final boolean ordered; // serialize the send to receivers? final boolean sticky; // originated from existing sticky data? final boolean alarm; // originated from an alarm triggering? final boolean pushMessage; // originated from a push message? final boolean pushMessageOverQuota; // originated from a push message which was over quota? + final boolean interactive; // originated from user interaction? final boolean initialSticky; // initial broadcast from register to sticky? final boolean prioritized; // contains more than one priority tranche final int userId; // user id this broadcast was for @@ -94,6 +96,7 @@ final class BroadcastRecord extends Binder { final @Nullable BroadcastOptions options; // BroadcastOptions supplied by caller final @NonNull List<Object> receivers; // contains BroadcastFilter and ResolveInfo final @DeliveryState int[] delivery; // delivery state of each receiver + @Nullable ProcessRecord resultToApp; // who receives final result if non-null @Nullable IIntentReceiver resultTo; // who receives final result if non-null boolean deferred; int splitCount; // refcount for result callback, when split @@ -345,7 +348,8 @@ final class BroadcastRecord extends Binder { boolean _callerInstantApp, String _resolvedType, String[] _requiredPermissions, String[] _excludedPermissions, String[] _excludedPackages, int _appOp, - BroadcastOptions _options, List _receivers, IIntentReceiver _resultTo, int _resultCode, + BroadcastOptions _options, List _receivers, + ProcessRecord _resultToApp, IIntentReceiver _resultTo, int _resultCode, String _resultData, Bundle _resultExtras, boolean _serialized, boolean _sticky, boolean _initialSticky, int _userId, boolean allowBackgroundActivityStarts, @Nullable IBinder backgroundActivityStartsToken, boolean timeoutExempt, @@ -362,6 +366,8 @@ final class BroadcastRecord extends Binder { callingPid = _callingPid; callingUid = _callingUid; callerInstantApp = _callerInstantApp; + callerInstrumented = (_callerApp != null) + ? (_callerApp.getActiveInstrumentation() != null) : false; resolvedType = _resolvedType; requiredPermissions = _requiredPermissions; excludedPermissions = _excludedPermissions; @@ -372,6 +378,7 @@ final class BroadcastRecord extends Binder { delivery = new int[_receivers != null ? _receivers.size() : 0]; scheduledTime = new long[delivery.length]; terminalTime = new long[delivery.length]; + resultToApp = _resultToApp; resultTo = _resultTo; resultCode = _resultCode; resultData = _resultData; @@ -389,6 +396,7 @@ final class BroadcastRecord extends Binder { alarm = options != null && options.isAlarmBroadcast(); pushMessage = options != null && options.isPushMessagingBroadcast(); pushMessageOverQuota = options != null && options.isPushMessagingOverQuotaBroadcast(); + interactive = options != null && options.isInteractiveBroadcast(); this.filterExtrasForReceiver = filterExtrasForReceiver; } @@ -406,6 +414,7 @@ final class BroadcastRecord extends Binder { callingPid = from.callingPid; callingUid = from.callingUid; callerInstantApp = from.callerInstantApp; + callerInstrumented = from.callerInstrumented; ordered = from.ordered; sticky = from.sticky; initialSticky = from.initialSticky; @@ -421,6 +430,7 @@ final class BroadcastRecord extends Binder { delivery = from.delivery; scheduledTime = from.scheduledTime; terminalTime = from.terminalTime; + resultToApp = from.resultToApp; resultTo = from.resultTo; enqueueTime = from.enqueueTime; enqueueRealTime = from.enqueueRealTime; @@ -446,6 +456,7 @@ final class BroadcastRecord extends Binder { alarm = from.alarm; pushMessage = from.pushMessage; pushMessageOverQuota = from.pushMessageOverQuota; + interactive = from.interactive; filterExtrasForReceiver = from.filterExtrasForReceiver; } @@ -480,8 +491,8 @@ final class BroadcastRecord extends Binder { BroadcastRecord split = new BroadcastRecord(queue, intent, callerApp, callerPackage, callerFeatureId, callingPid, callingUid, callerInstantApp, resolvedType, requiredPermissions, excludedPermissions, excludedPackages, appOp, options, - splitReceivers, resultTo, resultCode, resultData, resultExtras, ordered, sticky, - initialSticky, userId, allowBackgroundActivityStarts, + splitReceivers, resultToApp, resultTo, resultCode, resultData, resultExtras, + ordered, sticky, initialSticky, userId, allowBackgroundActivityStarts, mBackgroundActivityStartsToken, timeoutExempt, filterExtrasForReceiver); split.enqueueTime = this.enqueueTime; split.enqueueRealTime = this.enqueueRealTime; @@ -559,7 +570,7 @@ final class BroadcastRecord extends Binder { final BroadcastRecord br = new BroadcastRecord(queue, intent, callerApp, callerPackage, callerFeatureId, callingPid, callingUid, callerInstantApp, resolvedType, requiredPermissions, excludedPermissions, excludedPackages, appOp, options, - uid2receiverList.valueAt(i), null /* _resultTo */, + uid2receiverList.valueAt(i), null /* _resultToApp */, null /* _resultTo */, resultCode, resultData, resultExtras, ordered, sticky, initialSticky, userId, allowBackgroundActivityStarts, mBackgroundActivityStartsToken, timeoutExempt, filterExtrasForReceiver); @@ -607,6 +618,18 @@ final class BroadcastRecord extends Binder { return (intent.getFlags() & Intent.FLAG_RECEIVER_NO_ABORT) != 0; } + /** + * Core policy determination about this broadcast's delivery prioritization + */ + boolean isUrgent() { + // TODO: flags for controlling policy + // TODO: migrate alarm-prioritization flag to BroadcastConstants + return (isForeground() + || interactive + || alarm) + && receivers.size() == 1; + } + @NonNull String getHostingRecordTriggerType() { if (alarm) { return HostingRecord.TRIGGER_TYPE_ALARM; @@ -792,6 +815,16 @@ final class BroadcastRecord extends Binder { } } + public boolean matchesDeliveryGroup(@NonNull BroadcastRecord other) { + final String key = (options != null) ? options.getDeliveryGroupKey() : null; + final String otherKey = (other.options != null) + ? other.options.getDeliveryGroupKey() : null; + if (key == null && otherKey == null) { + return intent.filterEquals(other.intent); + } + return Objects.equals(key, otherKey); + } + @Override public String toString() { if (mCachedToString == null) { diff --git a/services/core/java/com/android/server/am/PendingIntentRecord.java b/services/core/java/com/android/server/am/PendingIntentRecord.java index bda60ff2172b..740efbc658ba 100644 --- a/services/core/java/com/android/server/am/PendingIntentRecord.java +++ b/services/core/java/com/android/server/am/PendingIntentRecord.java @@ -26,6 +26,7 @@ import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityOptions; import android.app.BroadcastOptions; +import android.app.IApplicationThread; import android.app.PendingIntent; import android.content.IIntentReceiver; import android.content.IIntentSender; @@ -302,13 +303,21 @@ public final class PendingIntentRecord extends IIntentSender.Stub { public void send(int code, Intent intent, String resolvedType, IBinder allowlistToken, IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) { - sendInner(code, intent, resolvedType, allowlistToken, finishedReceiver, + sendInner(null, code, intent, resolvedType, allowlistToken, finishedReceiver, requiredPermission, null, null, 0, 0, 0, options); } - public int sendWithResult(int code, Intent intent, String resolvedType, IBinder allowlistToken, - IIntentReceiver finishedReceiver, String requiredPermission, Bundle options) { - return sendInner(code, intent, resolvedType, allowlistToken, finishedReceiver, + public void send(IApplicationThread caller, int code, Intent intent, String resolvedType, + IBinder allowlistToken, IIntentReceiver finishedReceiver, String requiredPermission, + Bundle options) { + sendInner(caller, code, intent, resolvedType, allowlistToken, finishedReceiver, + requiredPermission, null, null, 0, 0, 0, options); + } + + public int sendWithResult(IApplicationThread caller, int code, Intent intent, + String resolvedType, IBinder allowlistToken, IIntentReceiver finishedReceiver, + String requiredPermission, Bundle options) { + return sendInner(caller, code, intent, resolvedType, allowlistToken, finishedReceiver, requiredPermission, null, null, 0, 0, 0, options); } @@ -339,9 +348,19 @@ public final class PendingIntentRecord extends IIntentSender.Stub { ActivityOptions.PENDING_INTENT_BAL_ALLOWED_DEFAULT); } + @Deprecated public int sendInner(int code, Intent intent, String resolvedType, IBinder allowlistToken, IIntentReceiver finishedReceiver, String requiredPermission, IBinder resultTo, String resultWho, int requestCode, int flagsMask, int flagsValues, Bundle options) { + return sendInner(null, code, intent, resolvedType, allowlistToken, finishedReceiver, + requiredPermission, resultTo, resultWho, requestCode, flagsMask, flagsValues, + options); + } + + public int sendInner(IApplicationThread caller, int code, Intent intent, + String resolvedType, IBinder allowlistToken, IIntentReceiver finishedReceiver, + String requiredPermission, IBinder resultTo, String resultWho, int requestCode, + int flagsMask, int flagsValues, Bundle options) { if (intent != null) intent.setDefusable(true); if (options != null) options.setDefusable(true); @@ -424,13 +443,14 @@ public final class PendingIntentRecord extends IIntentSender.Stub { // invocation side effects such as allowlisting. if (options != null && callingUid != Process.SYSTEM_UID && key.type == ActivityManager.INTENT_SENDER_BROADCAST) { - if (options.containsKey(BroadcastOptions.KEY_ALARM_BROADCAST)) { + if (options.containsKey(BroadcastOptions.KEY_ALARM_BROADCAST) + || options.containsKey(BroadcastOptions.KEY_INTERACTIVE_BROADCAST)) { if (DEBUG_BROADCAST_LIGHT) { Slog.w(TAG, "Non-system caller " + callingUid - + " may not flag broadcast as alarm-related"); + + " may not flag broadcast as alarm or interactive"); } throw new SecurityException( - "Non-system callers may not flag broadcasts as alarm-related"); + "Non-system callers may not flag broadcasts as alarm or interactive"); } } @@ -468,6 +488,7 @@ public final class PendingIntentRecord extends IIntentSender.Stub { } } + final IApplicationThread finishedReceiverThread = caller; boolean sendFinish = finishedReceiver != null; int userId = key.userId; if (userId == UserHandle.USER_CURRENT) { @@ -525,9 +546,9 @@ public final class PendingIntentRecord extends IIntentSender.Stub { // that the broadcast be delivered synchronously int sent = controller.mAmInternal.broadcastIntentInPackage(key.packageName, key.featureId, uid, callingUid, callingPid, finalIntent, - resolvedType, finishedReceiver, code, null, null, - requiredPermission, options, (finishedReceiver != null), false, - userId, allowedByToken || allowTrampoline, bgStartsToken, + resolvedType, finishedReceiverThread, finishedReceiver, code, null, + null, requiredPermission, options, (finishedReceiver != null), + false, userId, allowedByToken || allowTrampoline, bgStartsToken, null /* broadcastAllowList */); if (sent == ActivityManager.BROADCAST_SUCCESS) { sendFinish = false; diff --git a/services/core/java/com/android/server/am/PreBootBroadcaster.java b/services/core/java/com/android/server/am/PreBootBroadcaster.java index 9b7c3acb71d8..77fcef677dad 100644 --- a/services/core/java/com/android/server/am/PreBootBroadcaster.java +++ b/services/core/java/com/android/server/am/PreBootBroadcaster.java @@ -57,7 +57,6 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub { private static final String TAG = "PreBootBroadcaster"; private final ActivityManagerService mService; - private final ProcessRecord mSystemApp; private final int mUserId; private final ProgressReporter mProgress; private final boolean mQuiet; @@ -70,9 +69,6 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub { public PreBootBroadcaster(ActivityManagerService service, int userId, ProgressReporter progress, boolean quiet) { mService = service; - synchronized (mService) { - mSystemApp = mService.getProcessRecordLocked("system", android.os.Process.SYSTEM_UID); - } mUserId = userId; mProgress = progress; mQuiet = quiet; @@ -127,7 +123,7 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub { TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED, REASON_PRE_BOOT_COMPLETED, ""); synchronized (mService) { - mService.broadcastIntentLocked(mSystemApp, "android", null, mIntent, null, this, 0, + mService.broadcastIntentLocked(null, null, null, mIntent, null, this, 0, null, null, null, null, null, AppOpsManager.OP_NONE, bOptions.toBundle(), true, false, ActivityManagerService.MY_PID, Process.SYSTEM_UID, Binder.getCallingUid(), Binder.getCallingPid(), mUserId); diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java index 216a48ec699c..3fa41c0f0420 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -16,7 +16,6 @@ package com.android.server.am; -import static android.Manifest.permission.CREATE_USERS; import static android.Manifest.permission.INTERACT_ACROSS_PROFILES; import static android.Manifest.permission.INTERACT_ACROSS_USERS; import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; @@ -1482,7 +1481,7 @@ class UserController implements Handler.Callback { // defined boolean startUserOnSecondaryDisplay(@UserIdInt int userId, int displayId) { checkCallingHasOneOfThosePermissions("startUserOnSecondaryDisplay", - MANAGE_USERS, CREATE_USERS); + MANAGE_USERS, INTERACT_ACROSS_USERS); // DEFAULT_DISPLAY is used for the current foreground user only Preconditions.checkArgument(displayId != Display.DEFAULT_DISPLAY, diff --git a/services/core/java/com/android/server/biometrics/log/BiometricContext.java b/services/core/java/com/android/server/biometrics/log/BiometricContext.java index 8265203ddacd..be04364dcff3 100644 --- a/services/core/java/com/android/server/biometrics/log/BiometricContext.java +++ b/services/core/java/com/android/server/biometrics/log/BiometricContext.java @@ -21,11 +21,15 @@ import android.annotation.Nullable; import android.content.Context; import android.hardware.biometrics.common.OperationContext; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; + import java.util.function.Consumer; /** * Cache for system state not directly related to biometric operations that is used for * logging or optimizations. + * + * This class is also used to inject dependencies such as {@link AuthSessionCoordinator} */ public interface BiometricContext { /** Gets the context source from the system context. */ @@ -59,4 +63,7 @@ public interface BiometricContext { /** Unsubscribe from context changes. */ void unsubscribe(@NonNull OperationContext context); + + /** Obtains an AuthSessionCoordinator. */ + AuthSessionCoordinator getAuthSessionCoordinator(); } diff --git a/services/core/java/com/android/server/biometrics/log/BiometricContextProvider.java b/services/core/java/com/android/server/biometrics/log/BiometricContextProvider.java index 3d1a6343cbf2..23b2714dd50b 100644 --- a/services/core/java/com/android/server/biometrics/log/BiometricContextProvider.java +++ b/services/core/java/com/android/server/biometrics/log/BiometricContextProvider.java @@ -35,6 +35,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.InstanceId; import com.android.internal.statusbar.ISessionListener; import com.android.internal.statusbar.IStatusBarService; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -59,7 +60,8 @@ final class BiometricContextProvider implements BiometricContext { sInstance = new BiometricContextProvider( new AmbientDisplayConfiguration(context), IStatusBarService.Stub.asInterface(ServiceManager.getServiceOrThrow( - Context.STATUS_BAR_SERVICE)), null /* handler */); + Context.STATUS_BAR_SERVICE)), null /* handler */, + new AuthSessionCoordinator()); } catch (ServiceNotFoundException e) { throw new IllegalStateException("Failed to find required service", e); } @@ -76,13 +78,16 @@ final class BiometricContextProvider implements BiometricContext { private final Map<Integer, InstanceId> mSession = new ConcurrentHashMap<>(); private final AmbientDisplayConfiguration mAmbientDisplayConfiguration; + private final AuthSessionCoordinator mAuthSessionCoordinator; private boolean mIsAod = false; private boolean mIsAwake = false; @VisibleForTesting BiometricContextProvider(@NonNull AmbientDisplayConfiguration ambientDisplayConfiguration, - @NonNull IStatusBarService service, @Nullable Handler handler) { + @NonNull IStatusBarService service, @Nullable Handler handler, + AuthSessionCoordinator authSessionCoordinator) { mAmbientDisplayConfiguration = ambientDisplayConfiguration; + mAuthSessionCoordinator = authSessionCoordinator; try { service.setBiometicContextListener(new IBiometricContextListener.Stub() { @Override @@ -190,6 +195,11 @@ final class BiometricContextProvider implements BiometricContext { mSubscribers.remove(context); } + @Override + public AuthSessionCoordinator getAuthSessionCoordinator() { + return mAuthSessionCoordinator; + } + private void notifySubscribers() { mSubscribers.forEach((context, consumer) -> { context.isAod = isAod(); diff --git a/services/core/java/com/android/server/biometrics/sensors/AuthResultCoordinator.java b/services/core/java/com/android/server/biometrics/sensors/AuthResultCoordinator.java index 6d00c3fc15ea..bdae5f3eac32 100644 --- a/services/core/java/com/android/server/biometrics/sensors/AuthResultCoordinator.java +++ b/services/core/java/com/android/server/biometrics/sensors/AuthResultCoordinator.java @@ -17,9 +17,11 @@ package com.android.server.biometrics.sensors; import android.hardware.biometrics.BiometricManager.Authenticators; +import android.util.ArrayMap; -import java.util.ArrayList; -import java.util.List; +import java.util.Collections; +import java.util.Map; +import java.util.function.IntFunction; /** * A class that takes in a series of authentication attempts (successes, failures, lockouts) @@ -30,64 +32,64 @@ import java.util.List; */ class AuthResultCoordinator { + /** + * Indicates no change has occurred with this authenticator. + */ + static final int AUTHENTICATOR_DEFAULT = 0; + /** + * Indicated this authenticator has received a lockout. + */ + static final int AUTHENTICATOR_LOCKED = 1 << 0; + /** + * Indicates this authenticator has received a successful unlock. + */ + static final int AUTHENTICATOR_UNLOCKED = 1 << 1; private static final String TAG = "AuthResultCoordinator"; - private final List<AuthResult> mOperations; + private final Map<Integer, Integer> mAuthenticatorState; AuthResultCoordinator() { - mOperations = new ArrayList<>(); + mAuthenticatorState = new ArrayMap<>(); + mAuthenticatorState.put(Authenticators.BIOMETRIC_STRONG, AUTHENTICATOR_DEFAULT); + mAuthenticatorState.put(Authenticators.BIOMETRIC_WEAK, AUTHENTICATOR_DEFAULT); + mAuthenticatorState.put(Authenticators.BIOMETRIC_CONVENIENCE, AUTHENTICATOR_DEFAULT); } - /** - * Adds auth success for a given strength to the current operation list. - */ - void authenticatedFor(@Authenticators.Types int strength) { - mOperations.add(new AuthResult(AuthResult.AUTHENTICATED, strength)); + private void updateState(@Authenticators.Types int strength, IntFunction<Integer> mapper) { + switch (strength) { + case Authenticators.BIOMETRIC_STRONG: + mAuthenticatorState.put(Authenticators.BIOMETRIC_STRONG, + mapper.apply(mAuthenticatorState.get(Authenticators.BIOMETRIC_STRONG))); + // fall through + case Authenticators.BIOMETRIC_WEAK: + mAuthenticatorState.put(Authenticators.BIOMETRIC_WEAK, + mapper.apply(mAuthenticatorState.get(Authenticators.BIOMETRIC_WEAK))); + // fall through + case Authenticators.BIOMETRIC_CONVENIENCE: + mAuthenticatorState.put(Authenticators.BIOMETRIC_CONVENIENCE, + mapper.apply( + mAuthenticatorState.get(Authenticators.BIOMETRIC_CONVENIENCE))); + } } /** - * Adds auth ended for a given strength to the current operation list. + * Adds auth success for a given strength to the current operation list. */ - void authEndedFor(@Authenticators.Types int strength) { - mOperations.add(new AuthResult(AuthResult.FAILED, strength)); + void authenticatedFor(@Authenticators.Types int strength) { + updateState(strength, (old) -> AUTHENTICATOR_UNLOCKED | old); } /** * Adds a lock out of a given strength to the current operation list. */ void lockedOutFor(@Authenticators.Types int strength) { - mOperations.add(new AuthResult(AuthResult.LOCKED_OUT, strength)); + updateState(strength, (old) -> AUTHENTICATOR_LOCKED | old); } /** - * Obtains an auth result & strength from a current set of biometric operations. + * Returns the current authenticator state. Each authenticator will have + * the associated operations that were performed on them(DEFAULT, LOCKED, UNLOCKED). */ - AuthResult getResult() { - AuthResult result = new AuthResult(AuthResult.FAILED, Authenticators.BIOMETRIC_CONVENIENCE); - return mOperations.stream().filter( - (element) -> element.getStatus() != AuthResult.FAILED).reduce(result, - ((curr, next) -> { - int strengthCompare = curr.getBiometricStrength() - next.getBiometricStrength(); - if (strengthCompare < 0) { - return curr; - } else if (strengthCompare == 0) { - // Equal level of strength, favor authentication. - if (curr.getStatus() == AuthResult.AUTHENTICATED) { - return curr; - } else { - // Either next is Authenticated, or it is not, either way return this - // one. - return next; - } - } else { - // curr is a weaker biometric - return next; - } - })); - } - - void resetState() { - mOperations.clear(); + final Map<Integer, Integer> getResult() { + return Collections.unmodifiableMap(mAuthenticatorState); } } - - diff --git a/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java b/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java index 13840ff389d9..5bc9d2341535 100644 --- a/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java +++ b/services/core/java/com/android/server/biometrics/sensors/AuthSessionCoordinator.java @@ -16,10 +16,22 @@ package com.android.server.biometrics.sensors; +import static com.android.server.biometrics.sensors.AuthResultCoordinator.AUTHENTICATOR_LOCKED; +import static com.android.server.biometrics.sensors.AuthResultCoordinator.AUTHENTICATOR_UNLOCKED; + import android.hardware.biometrics.BiometricManager.Authenticators; +import android.os.SystemClock; +import android.util.Pair; import android.util.Slog; +import com.android.internal.annotations.VisibleForTesting; + +import java.time.Clock; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -28,20 +40,31 @@ import java.util.Set; * This class is not thread-safe. In general, all calls to this class should be made on the same * handler to ensure no collisions. */ -class AuthSessionCoordinator implements AuthSessionListener { +public class AuthSessionCoordinator implements AuthSessionListener { private static final String TAG = "AuthSessionCoordinator"; private final Set<Integer> mAuthOperations; + private final MultiBiometricLockoutState mMultiBiometricLockoutState; + private final List<Pair<Integer, Long>> mTimedLockouts; + private final RingBuffer mRingBuffer; + private final Clock mClock; private int mUserId; private boolean mIsAuthenticating; private AuthResultCoordinator mAuthResultCoordinator; - private MultiBiometricLockoutState mMultiBiometricLockoutState; - AuthSessionCoordinator() { + public AuthSessionCoordinator() { + this(SystemClock.elapsedRealtimeClock()); + } + + @VisibleForTesting + AuthSessionCoordinator(Clock clock) { mAuthOperations = new HashSet<>(); mAuthResultCoordinator = new AuthResultCoordinator(); - mMultiBiometricLockoutState = new MultiBiometricLockoutState(); + mMultiBiometricLockoutState = new MultiBiometricLockoutState(clock); + mRingBuffer = new RingBuffer(100); + mTimedLockouts = new ArrayList<>(); + mClock = clock; } /** @@ -51,7 +74,9 @@ class AuthSessionCoordinator implements AuthSessionListener { mAuthOperations.clear(); mUserId = userId; mIsAuthenticating = true; - mAuthResultCoordinator.resetState(); + mAuthOperations.clear(); + mAuthResultCoordinator = new AuthResultCoordinator(); + mRingBuffer.addApiCall("internal : onAuthSessionStarted(" + userId + ")"); } /** @@ -64,14 +89,27 @@ class AuthSessionCoordinator implements AuthSessionListener { void endAuthSession() { if (mIsAuthenticating) { mAuthOperations.clear(); - AuthResult res = - mAuthResultCoordinator.getResult(); - if (res.getStatus() == AuthResult.AUTHENTICATED) { - mMultiBiometricLockoutState.onUserUnlocked(mUserId, res.getBiometricStrength()); - } else if (res.getStatus() == AuthResult.LOCKED_OUT) { - mMultiBiometricLockoutState.onUserLocked(mUserId, res.getBiometricStrength()); + final long currentTime = mClock.millis(); + for (Pair<Integer, Long> timedLockouts : mTimedLockouts) { + mMultiBiometricLockoutState.increaseLockoutTime(mUserId, timedLockouts.first, + timedLockouts.second + currentTime); + } + // User unlocks can also unlock timed lockout Authenticator.Types + final Map<Integer, Integer> result = mAuthResultCoordinator.getResult(); + for (int authenticator : Arrays.asList(Authenticators.BIOMETRIC_CONVENIENCE, + Authenticators.BIOMETRIC_WEAK, Authenticators.BIOMETRIC_STRONG)) { + final Integer value = result.get(authenticator); + if ((value & AUTHENTICATOR_UNLOCKED) == AUTHENTICATOR_UNLOCKED) { + mMultiBiometricLockoutState.setAuthenticatorTo(mUserId, authenticator, + true /* canAuthenticate */); + mMultiBiometricLockoutState.clearLockoutTime(mUserId, authenticator); + } else if ((value & AUTHENTICATOR_LOCKED) == AUTHENTICATOR_LOCKED) { + mMultiBiometricLockoutState.setAuthenticatorTo(mUserId, authenticator, + false /* canAuthenticate */); + } + } - mAuthResultCoordinator.resetState(); + mRingBuffer.addApiCall("internal : onAuthSessionEnded(" + mUserId + ")"); mIsAuthenticating = false; } } @@ -79,12 +117,15 @@ class AuthSessionCoordinator implements AuthSessionListener { /** * @return true if a user can authenticate with a given strength. */ - boolean getCanAuthFor(int userId, @Authenticators.Types int strength) { + public boolean getCanAuthFor(int userId, @Authenticators.Types int strength) { return mMultiBiometricLockoutState.canUserAuthenticate(userId, strength); } @Override - public void authStartedFor(int userId, int sensorId) { + public void authStartedFor(int userId, int sensorId, long requestId) { + mRingBuffer.addApiCall( + "authStartedFor(userId=" + userId + ", sensorId=" + sensorId + ", requestId=" + + requestId + ")"); if (!mIsAuthenticating) { onAuthSessionStarted(userId); } @@ -105,34 +146,58 @@ class AuthSessionCoordinator implements AuthSessionListener { @Override public void authenticatedFor(int userId, @Authenticators.Types int biometricStrength, - int sensorId) { + int sensorId, long requestId) { + final String authStr = + "authenticatedFor(userId=" + userId + ", strength=" + biometricStrength + + " , sensorId=" + sensorId + ", requestId= " + requestId + ")"; + mRingBuffer.addApiCall(authStr); mAuthResultCoordinator.authenticatedFor(biometricStrength); - attemptToFinish(userId, sensorId, - "authenticatedFor(userId=" + userId + ", biometricStrength=" + biometricStrength - + ", sensorId=" + sensorId + ""); + attemptToFinish(userId, sensorId, authStr); } @Override public void lockedOutFor(int userId, @Authenticators.Types int biometricStrength, - int sensorId) { - mAuthResultCoordinator.lockedOutFor(biometricStrength); - attemptToFinish(userId, sensorId, + int sensorId, long requestId) { + final String lockedOutStr = "lockOutFor(userId=" + userId + ", biometricStrength=" + biometricStrength - + ", sensorId=" + sensorId + ""); + + ", sensorId=" + sensorId + ", requestId=" + requestId + ")"; + mRingBuffer.addApiCall(lockedOutStr); + mAuthResultCoordinator.lockedOutFor(biometricStrength); + attemptToFinish(userId, sensorId, lockedOutStr); + } + + @Override + public void lockOutTimed(int userId, @Authenticators.Types int biometricStrength, int sensorId, + long time, long requestId) { + final String lockedOutStr = + "lockOutTimedFor(userId=" + userId + ", biometricStrength=" + biometricStrength + + ", sensorId=" + sensorId + "time=" + time + ", requestId=" + requestId + + ")"; + mRingBuffer.addApiCall(lockedOutStr); + mTimedLockouts.add(new Pair<>(biometricStrength, time)); + attemptToFinish(userId, sensorId, lockedOutStr); } @Override public void authEndedFor(int userId, @Authenticators.Types int biometricStrength, - int sensorId) { - mAuthResultCoordinator.authEndedFor(biometricStrength); - attemptToFinish(userId, sensorId, + int sensorId, long requestId) { + final String authEndedStr = "authEndedFor(userId=" + userId + " ,biometricStrength=" + biometricStrength - + ", sensorId=" + sensorId); + + ", sensorId=" + sensorId + ", requestId=" + requestId + ")"; + mRingBuffer.addApiCall(authEndedStr); + attemptToFinish(userId, sensorId, authEndedStr); } @Override - public void resetLockoutFor(int userId, @Authenticators.Types int biometricStrength) { - mMultiBiometricLockoutState.onUserUnlocked(userId, biometricStrength); + public void resetLockoutFor(int userId, @Authenticators.Types int biometricStrength, + long requestId) { + final String resetLockStr = + "resetLockoutFor(userId=" + userId + " ,biometricStrength=" + biometricStrength + + ", requestId=" + requestId + ")"; + mRingBuffer.addApiCall(resetLockStr); + mMultiBiometricLockoutState.setAuthenticatorTo(userId, biometricStrength, + true /*canAuthenticate */); + mMultiBiometricLockoutState.clearLockoutTime(userId, biometricStrength); } private void attemptToFinish(int userId, int sensorId, String description) { @@ -154,4 +219,49 @@ class AuthSessionCoordinator implements AuthSessionListener { } } + /** + * Returns a string representation of the past N API calls as well as the + * permanent and timed lockout states for each user's authenticators. + */ + @Override + public String toString() { + return mRingBuffer + "\n" + mMultiBiometricLockoutState; + } + + private static class RingBuffer { + private final String[] mApiCalls; + private final int mSize; + private int mCurr; + private int mApiCallNumber; + + RingBuffer(int size) { + if (size <= 0) { + Slog.wtf(TAG, "Cannot initialize ring buffer of size: " + size); + } + mApiCalls = new String[size]; + mCurr = 0; + mSize = size; + mApiCallNumber = 0; + } + + void addApiCall(String str) { + mApiCalls[mCurr] = str; + mCurr++; + mCurr %= mSize; + mApiCallNumber++; + } + + @Override + public String toString() { + String buffer = ""; + int apiCall = mApiCallNumber > mSize ? mApiCallNumber - mSize : 0; + for (int i = 0; i < mSize; i++) { + final int location = (mCurr + i) % mSize; + if (mApiCalls[location] != null) { + buffer += String.format("#%-5d %s\n", apiCall++, mApiCalls[location]); + } + } + return buffer; + } + } } diff --git a/services/core/java/com/android/server/biometrics/sensors/AuthSessionListener.java b/services/core/java/com/android/server/biometrics/sensors/AuthSessionListener.java index 8b1f90af0234..d97f793a84bc 100644 --- a/services/core/java/com/android/server/biometrics/sensors/AuthSessionListener.java +++ b/services/core/java/com/android/server/biometrics/sensors/AuthSessionListener.java @@ -25,25 +25,34 @@ interface AuthSessionListener { /** * Indicates an auth operation has started for a given user and sensor. */ - void authStartedFor(int userId, int sensorId); + void authStartedFor(int userId, int sensorId, long requestId); /** * Indicates a successful authentication occurred for a sensor of a given strength. */ - void authenticatedFor(int userId, @Authenticators.Types int biometricStrength, int sensorId); + void authenticatedFor(int userId, @Authenticators.Types int biometricStrength, int sensorId, + long requestId); /** * Indicates authentication ended for a sensor of a given strength. */ - void authEndedFor(int userId, @Authenticators.Types int biometricStrength, int sensorId); + void authEndedFor(int userId, @Authenticators.Types int biometricStrength, int sensorId, + long requestId); /** * Indicates a lockout occurred for a sensor of a given strength. */ - void lockedOutFor(int userId, @Authenticators.Types int biometricStrength, int sensorId); + void lockedOutFor(int userId, @Authenticators.Types int biometricStrength, int sensorId, + long requestId); + + /** + * Indicates a timed lockout occurred for a sensor of a given strength. + */ + void lockOutTimed(int userId, @Authenticators.Types int biometricStrength, int sensorId, + long duration, long requestId); /** * Indicates that a reset lockout has happened for a given strength. */ - void resetLockoutFor(int uerId, @Authenticators.Types int biometricStrength); + void resetLockoutFor(int uerId, @Authenticators.Types int biometricStrength, long requestId); } diff --git a/services/core/java/com/android/server/biometrics/sensors/MultiBiometricLockoutState.java b/services/core/java/com/android/server/biometrics/sensors/MultiBiometricLockoutState.java index 49dc817c7fd5..6605d49ece9b 100644 --- a/services/core/java/com/android/server/biometrics/sensors/MultiBiometricLockoutState.java +++ b/services/core/java/com/android/server/biometrics/sensors/MultiBiometricLockoutState.java @@ -21,82 +21,88 @@ import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMET import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMETRIC_STRONG; import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMETRIC_WEAK; -import android.util.ArrayMap; +import android.hardware.biometrics.BiometricManager; import android.util.Slog; -import com.android.internal.annotations.VisibleForTesting; - -import java.util.Arrays; -import java.util.Collections; +import java.time.Clock; import java.util.HashMap; -import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * This class is used as a system to store the state of each * {@link Authenticators.Types} status for every user. + * + * Note that initially all biomertics are unlocked, meaning users can authenticate + * with each strength. */ class MultiBiometricLockoutState { private static final String TAG = "MultiBiometricLockoutState"; - private static final Map<Integer, List<Integer>> PRECEDENCE; - - static { - Map<Integer, List<Integer>> precedence = new ArrayMap<>(); - precedence.put(Authenticators.BIOMETRIC_STRONG, - Arrays.asList(BIOMETRIC_STRONG, BIOMETRIC_WEAK, BIOMETRIC_CONVENIENCE)); - precedence.put(BIOMETRIC_WEAK, Arrays.asList(BIOMETRIC_WEAK, BIOMETRIC_CONVENIENCE)); - precedence.put(BIOMETRIC_CONVENIENCE, Arrays.asList(BIOMETRIC_CONVENIENCE)); - PRECEDENCE = Collections.unmodifiableMap(precedence); - } - - private final Map<Integer, Map<Integer, Boolean>> mCanUserAuthenticate; + private final Map<Integer, Map<Integer, AuthenticatorState>> mCanUserAuthenticate; + private final Clock mClock; - @VisibleForTesting - MultiBiometricLockoutState() { + MultiBiometricLockoutState(Clock clock) { mCanUserAuthenticate = new HashMap<>(); + mClock = clock; } - private static Map<Integer, Boolean> createLockedOutMap() { - Map<Integer, Boolean> lockOutMap = new HashMap<>(); - lockOutMap.put(BIOMETRIC_STRONG, false); - lockOutMap.put(BIOMETRIC_WEAK, false); - lockOutMap.put(BIOMETRIC_CONVENIENCE, false); + private Map<Integer, AuthenticatorState> createUnlockedMap() { + Map<Integer, AuthenticatorState> lockOutMap = new HashMap<>(); + lockOutMap.put(BIOMETRIC_STRONG, + new AuthenticatorState(BIOMETRIC_STRONG, false, 0, mClock)); + lockOutMap.put(BIOMETRIC_WEAK, new AuthenticatorState(BIOMETRIC_WEAK, false, 0, mClock)); + lockOutMap.put(BIOMETRIC_CONVENIENCE, + new AuthenticatorState(BIOMETRIC_CONVENIENCE, false, 0, mClock)); return lockOutMap; } - private Map<Integer, Boolean> getAuthMapForUser(int userId) { + private Map<Integer, AuthenticatorState> getAuthMapForUser(int userId) { if (!mCanUserAuthenticate.containsKey(userId)) { - mCanUserAuthenticate.put(userId, createLockedOutMap()); + mCanUserAuthenticate.put(userId, createUnlockedMap()); } return mCanUserAuthenticate.get(userId); } - /** - * Indicates a {@link Authenticators} has been locked for userId. - * - * @param userId The user. - * @param strength The strength of biometric that is requested to be locked. - */ - void onUserLocked(int userId, @Authenticators.Types int strength) { - Slog.d(TAG, "onUserLocked(userId=" + userId + ", strength=" + strength + ")"); - Map<Integer, Boolean> canUserAuthState = getAuthMapForUser(userId); - for (int strengthToLockout : PRECEDENCE.get(strength)) { - canUserAuthState.put(strengthToLockout, false); + void setAuthenticatorTo(int userId, @Authenticators.Types int strength, boolean canAuth) { + final Map<Integer, AuthenticatorState> authMap = getAuthMapForUser(userId); + switch (strength) { + case Authenticators.BIOMETRIC_STRONG: + authMap.get(BIOMETRIC_STRONG).mPermanentlyLockedOut = !canAuth; + // fall through + case Authenticators.BIOMETRIC_WEAK: + authMap.get(BIOMETRIC_WEAK).mPermanentlyLockedOut = !canAuth; + // fall through + case Authenticators.BIOMETRIC_CONVENIENCE: + authMap.get(BIOMETRIC_CONVENIENCE).mPermanentlyLockedOut = !canAuth; } } - /** - * Indicates that a user has unlocked a {@link Authenticators} - * - * @param userId The user. - * @param strength The strength of biometric that is unlocked. - */ - void onUserUnlocked(int userId, @Authenticators.Types int strength) { - Slog.d(TAG, "onUserUnlocked(userId=" + userId + ", strength=" + strength + ")"); - Map<Integer, Boolean> canUserAuthState = getAuthMapForUser(userId); - for (int strengthToLockout : PRECEDENCE.get(strength)) { - canUserAuthState.put(strengthToLockout, true); + void increaseLockoutTime(int userId, @Authenticators.Types int strength, long duration) { + final Map<Integer, AuthenticatorState> authMap = getAuthMapForUser(userId); + switch (strength) { + case Authenticators.BIOMETRIC_STRONG: + authMap.get(BIOMETRIC_STRONG).increaseLockoutTo(duration); + // fall through + case Authenticators.BIOMETRIC_WEAK: + authMap.get(BIOMETRIC_WEAK).increaseLockoutTo(duration); + // fall through + case Authenticators.BIOMETRIC_CONVENIENCE: + authMap.get(BIOMETRIC_CONVENIENCE).increaseLockoutTo(duration); + } + } + + void clearLockoutTime(int userId, @Authenticators.Types int strength) { + final Map<Integer, AuthenticatorState> authMap = getAuthMapForUser(userId); + switch (strength) { + case Authenticators.BIOMETRIC_STRONG: + authMap.get(BIOMETRIC_STRONG).setTimedLockout(0); + // fall through + case Authenticators.BIOMETRIC_WEAK: + authMap.get(BIOMETRIC_WEAK).setTimedLockout(0); + // fall through + case Authenticators.BIOMETRIC_CONVENIENCE: + authMap.get(BIOMETRIC_CONVENIENCE).setTimedLockout(0); } } @@ -109,9 +115,64 @@ class MultiBiometricLockoutState { * @return If a user can authenticate with a given biometric of this strength. */ boolean canUserAuthenticate(int userId, @Authenticators.Types int strength) { - final boolean canAuthenticate = getAuthMapForUser(userId).get(strength); + final boolean canAuthenticate = getAuthMapForUser(userId).get(strength).canAuthenticate(); Slog.d(TAG, "canUserAuthenticate(userId=" + userId + ", strength=" + strength + ") =" + canAuthenticate); return canAuthenticate; } + + @Override + public String toString() { + String dumpState = "Permanent Lockouts\n"; + final long time = mClock.millis(); + for (Map.Entry<Integer, Map<Integer, AuthenticatorState>> userState : + mCanUserAuthenticate.entrySet()) { + final int userId = userState.getKey(); + final Map<Integer, AuthenticatorState> map = userState.getValue(); + String prettyStr = map.entrySet().stream().map( + (Map.Entry<Integer, AuthenticatorState> entry) -> entry.getValue().toString( + time)).collect(Collectors.joining(", ")); + dumpState += "UserId=" + userId + ", {" + prettyStr + "}\n"; + } + return dumpState; + } + + private static class AuthenticatorState { + private Integer mAuthenticatorType; + private boolean mPermanentlyLockedOut; + private long mTimedLockout; + private Clock mClock; + + AuthenticatorState(Integer authenticatorId, boolean permanentlyLockedOut, + long timedLockout, Clock clock) { + mAuthenticatorType = authenticatorId; + mPermanentlyLockedOut = permanentlyLockedOut; + mTimedLockout = timedLockout; + mClock = clock; + } + + boolean canAuthenticate() { + return !mPermanentlyLockedOut && mClock.millis() - mTimedLockout >= 0; + } + + /** + * Either increases the lockout to duration, or leaves it as it, whichever is longer. + */ + void increaseLockoutTo(long duration) { + mTimedLockout = Math.max(mTimedLockout, duration); + } + + void setTimedLockout(long duration) { + mTimedLockout = duration; + } + + String toString(long currentTime) { + final String duration = + mTimedLockout - currentTime > 0 ? (mTimedLockout - currentTime) + "ms" : "none"; + final String permanentLockout = mPermanentlyLockedOut ? "true" : "false"; + return String.format("(%s, permanentLockout=%s, timedLockoutRemaining=%s)", + BiometricManager.authenticatorToStr(mAuthenticatorType), permanentLockout, + duration); + } + } } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java index 2e4c32340320..c27d71f2f079 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java @@ -25,6 +25,7 @@ import android.hardware.SensorPrivacyManager; import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricConstants; import android.hardware.biometrics.BiometricFaceConstants; +import android.hardware.biometrics.BiometricManager.Authenticators; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.face.IFace; import android.hardware.face.FaceAuthenticationFrame; @@ -38,6 +39,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.server.biometrics.Utils; import com.android.server.biometrics.log.BiometricContext; import com.android.server.biometrics.log.BiometricLogger; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; import com.android.server.biometrics.sensors.AuthenticationClient; import com.android.server.biometrics.sensors.BiometricNotificationUtils; import com.android.server.biometrics.sensors.ClientMonitorCallback; @@ -58,18 +60,25 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> implements LockoutConsumer { private static final String TAG = "FaceAuthenticationClient"; - @NonNull private final UsageStats mUsageStats; - @NonNull private final LockoutCache mLockoutCache; - @Nullable private final NotificationManager mNotificationManager; - @Nullable private ICancellationSignal mCancellationSignal; - @Nullable private SensorPrivacyManager mSensorPrivacyManager; - + @NonNull + private final UsageStats mUsageStats; + @NonNull + private final LockoutCache mLockoutCache; + @NonNull + private final AuthSessionCoordinator mAuthSessionCoordinator; + @Nullable + private final NotificationManager mNotificationManager; private final int[] mBiometricPromptIgnoreList; private final int[] mBiometricPromptIgnoreListVendor; private final int[] mKeyguardIgnoreList; private final int[] mKeyguardIgnoreListVendor; - - @FaceManager.FaceAcquired private int mLastAcquire = FaceManager.FACE_ACQUIRED_UNKNOWN; + private final int mBiometricStrength; + @Nullable + private ICancellationSignal mCancellationSignal; + @Nullable + private SensorPrivacyManager mSensorPrivacyManager; + @FaceManager.FaceAcquired + private int mLastAcquire = FaceManager.FACE_ACQUIRED_UNKNOWN; FaceAuthenticationClient(@NonNull Context context, @NonNull Supplier<AidlSession> lazyDaemon, @@ -79,11 +88,12 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> @NonNull BiometricLogger logger, @NonNull BiometricContext biometricContext, boolean isStrongBiometric, @NonNull UsageStats usageStats, @NonNull LockoutCache lockoutCache, boolean allowBackgroundAuthentication, - boolean isKeyguardBypassEnabled) { + boolean isKeyguardBypassEnabled, @Authenticators.Types int biometricStrength) { this(context, lazyDaemon, token, requestId, listener, targetUserId, operationId, restricted, owner, cookie, requireConfirmation, sensorId, logger, biometricContext, isStrongBiometric, usageStats, lockoutCache, allowBackgroundAuthentication, - isKeyguardBypassEnabled, context.getSystemService(SensorPrivacyManager.class)); + isKeyguardBypassEnabled, context.getSystemService(SensorPrivacyManager.class), + biometricStrength); } @VisibleForTesting @@ -95,7 +105,8 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> @NonNull BiometricLogger logger, @NonNull BiometricContext biometricContext, boolean isStrongBiometric, @NonNull UsageStats usageStats, @NonNull LockoutCache lockoutCache, boolean allowBackgroundAuthentication, - boolean isKeyguardBypassEnabled, SensorPrivacyManager sensorPrivacyManager) { + boolean isKeyguardBypassEnabled, SensorPrivacyManager sensorPrivacyManager, + @Authenticators.Types int biometricStrength) { super(context, lazyDaemon, token, listener, targetUserId, operationId, restricted, owner, cookie, requireConfirmation, sensorId, logger, biometricContext, isStrongBiometric, null /* taskStackListener */, lockoutCache, @@ -107,6 +118,7 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> mLockoutCache = lockoutCache; mNotificationManager = context.getSystemService(NotificationManager.class); mSensorPrivacyManager = sensorPrivacyManager; + mAuthSessionCoordinator = biometricContext.getAuthSessionCoordinator(); final Resources resources = getContext().getResources(); mBiometricPromptIgnoreList = resources.getIntArray( @@ -117,12 +129,14 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> R.array.config_face_acquire_keyguard_ignorelist); mKeyguardIgnoreListVendor = resources.getIntArray( R.array.config_face_acquire_vendor_keyguard_ignorelist); + mBiometricStrength = biometricStrength; } @Override public void start(@NonNull ClientMonitorCallback callback) { super.start(callback); mState = STATE_STARTED; + mAuthSessionCoordinator.authStartedFor(getTargetUserId(), getSensorId(), getRequestId()); } @NonNull @@ -138,7 +152,7 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> if (mSensorPrivacyManager != null && mSensorPrivacyManager .isSensorPrivacyEnabled(SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE, - SensorPrivacyManager.Sensors.CAMERA)) { + SensorPrivacyManager.Sensors.CAMERA)) { onError(BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE, 0 /* vendorCode */); mCallback.onClientFinished(this, false /* success */); @@ -207,6 +221,9 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> 0 /* error */, 0 /* vendorError */, getTargetUserId())); + mAuthSessionCoordinator + .authenticatedFor(getTargetUserId(), mBiometricStrength, getSensorId(), + getRequestId()); } @Override @@ -222,7 +239,8 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> if (error == BiometricConstants.BIOMETRIC_ERROR_RE_ENROLL) { BiometricNotificationUtils.showReEnrollmentNotification(getContext()); } - + mAuthSessionCoordinator.authEndedFor(getTargetUserId(), mBiometricStrength, getSensorId(), + getRequestId()); super.onError(error, vendorCode); } @@ -283,6 +301,8 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> } catch (RemoteException e) { Slog.e(TAG, "Remote exception", e); } + mAuthSessionCoordinator.lockOutTimed(getTargetUserId(), mBiometricStrength, getSensorId(), + durationMillis, getRequestId()); } @Override @@ -298,5 +318,7 @@ class FaceAuthenticationClient extends AuthenticationClient<AidlSession> } catch (RemoteException e) { Slog.e(TAG, "Remote exception", e); } + mAuthSessionCoordinator.lockedOutFor(getTargetUserId(), mBiometricStrength, getSensorId(), + getRequestId()); } } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java index 6bff179e8eb7..b60f9d80d425 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceProvider.java @@ -414,6 +414,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { boolean allowBackgroundAuthentication, boolean isKeyguardBypassEnabled) { mHandler.post(() -> { final boolean isStrongBiometric = Utils.isStrongBiometric(sensorId); + final int biometricStrength = Utils.getCurrentStrength(sensorId); final FaceAuthenticationClient client = new FaceAuthenticationClient( mContext, mSensors.get(sensorId).getLazySession(), token, requestId, callback, userId, operationId, restricted, opPackageName, cookie, @@ -421,7 +422,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { createLogger(BiometricsProtoEnums.ACTION_AUTHENTICATE, statsClient), mBiometricContext, isStrongBiometric, mUsageStats, mSensors.get(sensorId).getLockoutCache(), - allowBackgroundAuthentication, isKeyguardBypassEnabled); + allowBackgroundAuthentication, isKeyguardBypassEnabled, biometricStrength); scheduleForSensor(sensorId, client); }); } @@ -490,7 +491,8 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { createLogger(BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN), mBiometricContext, hardwareAuthToken, - mSensors.get(sensorId).getLockoutCache(), mLockoutResetDispatcher); + mSensors.get(sensorId).getLockoutCache(), mLockoutResetDispatcher, + Utils.getCurrentStrength(sensorId)); scheduleForSensor(sensorId, client); }); @@ -623,6 +625,9 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider { } pw.println(dump); pw.println("HAL deaths since last reboot: " + performanceTracker.getHALDeathCount()); + pw.println("---AuthSessionCoordinator logs begin---"); + pw.println(mBiometricContext.getAuthSessionCoordinator()); + pw.println("---AuthSessionCoordinator logs end ---"); mSensors.get(sensorId).getScheduler().dump(pw); mUsageStats.print(pw); diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java index bf7a62aadc28..32bed48aec95 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceResetLockoutClient.java @@ -18,6 +18,7 @@ package com.android.server.biometrics.sensors.face.aidl; import android.annotation.NonNull; import android.content.Context; +import android.hardware.biometrics.BiometricManager.Authenticators; import android.hardware.biometrics.face.IFace; import android.hardware.keymaster.HardwareAuthToken; import android.os.RemoteException; @@ -48,17 +49,20 @@ public class FaceResetLockoutClient extends HalClientMonitor<AidlSession> implem private final HardwareAuthToken mHardwareAuthToken; private final LockoutCache mLockoutCache; private final LockoutResetDispatcher mLockoutResetDispatcher; + private final int mBiometricStrength; FaceResetLockoutClient(@NonNull Context context, @NonNull Supplier<AidlSession> lazyDaemon, int userId, String owner, int sensorId, @NonNull BiometricLogger logger, @NonNull BiometricContext biometricContext, @NonNull byte[] hardwareAuthToken, @NonNull LockoutCache lockoutTracker, - @NonNull LockoutResetDispatcher lockoutResetDispatcher) { + @NonNull LockoutResetDispatcher lockoutResetDispatcher, + @Authenticators.Types int biometricStrength) { super(context, lazyDaemon, null /* token */, null /* listener */, userId, owner, 0 /* cookie */, sensorId, logger, biometricContext); mHardwareAuthToken = HardwareAuthTokenUtils.toHardwareAuthToken(hardwareAuthToken); mLockoutCache = lockoutTracker; mLockoutResetDispatcher = lockoutResetDispatcher; + mBiometricStrength = biometricStrength; } @Override @@ -85,6 +89,8 @@ public class FaceResetLockoutClient extends HalClientMonitor<AidlSession> implem void onLockoutCleared() { resetLocalLockoutStateToNone(getSensorId(), getTargetUserId(), mLockoutCache, mLockoutResetDispatcher); + getBiometricContext().getAuthSessionCoordinator() + .resetLockoutFor(getTargetUserId(), mBiometricStrength, getRequestId()); mCallback.onClientFinished(this, true /* success */); } diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java index 5e6a025e5229..2e5663db57b5 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClient.java @@ -16,6 +16,7 @@ package com.android.server.biometrics.sensors.fingerprint.aidl; +import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_START; import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ACQUIRED_VENDOR; import android.annotation.NonNull; @@ -26,6 +27,7 @@ import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricConstants; import android.hardware.biometrics.BiometricFingerprintConstants; import android.hardware.biometrics.BiometricFingerprintConstants.FingerprintAcquired; +import android.hardware.biometrics.BiometricManager.Authenticators; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.fingerprint.PointerContext; @@ -45,6 +47,7 @@ import com.android.server.biometrics.log.BiometricContext; import com.android.server.biometrics.log.BiometricLogger; import com.android.server.biometrics.log.CallbackWithProbe; import com.android.server.biometrics.log.Probe; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; import com.android.server.biometrics.sensors.AuthenticationClient; import com.android.server.biometrics.sensors.BiometricNotificationUtils; import com.android.server.biometrics.sensors.ClientMonitorCallback; @@ -57,6 +60,7 @@ import com.android.server.biometrics.sensors.SensorOverlays; import com.android.server.biometrics.sensors.fingerprint.PowerPressHandler; import com.android.server.biometrics.sensors.fingerprint.Udfps; +import java.time.Clock; import java.util.ArrayList; import java.util.function.Supplier; @@ -81,14 +85,18 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> private final Handler mHandler; private final int mSkipWaitForPowerAcquireMessage; private final int mSkipWaitForPowerVendorAcquireMessage; + private final int mBiometricStrength; private final long mFingerUpIgnoresPower = 500; + private final AuthSessionCoordinator mAuthSessionCoordinator; @Nullable private ICancellationSignal mCancellationSignal; private boolean mIsPointerDown; private long mWaitForAuthKeyguard; private long mWaitForAuthBp; private long mIgnoreAuthFor; + private long mSideFpsLastAcquireStartTime; private Runnable mAuthSuccessRunnable; + private final Clock mClock; FingerprintAuthenticationClient( @NonNull Context context, @@ -112,7 +120,9 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> @Nullable ISidefpsController sidefpsController, boolean allowBackgroundAuthentication, @NonNull FingerprintSensorPropertiesInternal sensorProps, - @NonNull Handler handler) { + @NonNull Handler handler, + @Authenticators.Types int biometricStrength, + @NonNull Clock clock) { super( context, lazyDaemon, @@ -154,6 +164,10 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> mSkipWaitForPowerVendorAcquireMessage = context.getResources().getInteger( R.integer.config_sidefpsSkipWaitForPowerVendorAcquireMessage); + mBiometricStrength = biometricStrength; + mAuthSessionCoordinator = biometricContext.getAuthSessionCoordinator(); + mSideFpsLastAcquireStartTime = -1; + mClock = clock; if (mSensorProps.isAnySidefpsType()) { if (Build.isDebuggable()) { @@ -180,6 +194,8 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> } else { mState = STATE_STARTED; } + mAuthSessionCoordinator.authStartedFor(getTargetUserId(), getSensorId(), + getRequestId()); } @NonNull @@ -193,6 +209,8 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> protected void handleLifecycleAfterAuth(boolean authenticated) { if (authenticated) { mCallback.onClientFinished(this, true /* success */); + mAuthSessionCoordinator.authenticatedFor( + getTargetUserId(), mBiometricStrength, getSensorId(), getRequestId()); } } @@ -235,8 +253,14 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> return; } delay = isKeyguard() ? mWaitForAuthKeyguard : mWaitForAuthBp; - Slog.i(TAG, "(sideFPS) Auth succeeded, sideFps waiting for power for: " - + delay + "ms"); + + if (mSideFpsLastAcquireStartTime != -1) { + delay = Math.max(0, + delay - (mClock.millis() - mSideFpsLastAcquireStartTime)); + } + + Slog.i(TAG, "(sideFPS) Auth succeeded, sideFps " + + "waiting for power until: " + delay + "ms"); } if (mHandler.hasMessages(MESSAGE_FINGER_UP)) { @@ -260,13 +284,15 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> mSensorOverlays.ifUdfps(controller -> controller.onAcquired(getSensorId(), acquiredInfo)); super.onAcquired(acquiredInfo, vendorCode); if (mSensorProps.isAnySidefpsType()) { + if (acquiredInfo == FINGERPRINT_ACQUIRED_START) { + mSideFpsLastAcquireStartTime = mClock.millis(); + } final boolean shouldLookForVendor = mSkipWaitForPowerAcquireMessage == FINGERPRINT_ACQUIRED_VENDOR; final boolean acquireMessageMatch = acquiredInfo == mSkipWaitForPowerAcquireMessage; final boolean vendorMessageMatch = vendorCode == mSkipWaitForPowerVendorAcquireMessage; final boolean ignorePowerPress = - (acquireMessageMatch && !shouldLookForVendor) || (shouldLookForVendor - && acquireMessageMatch && vendorMessageMatch); + acquireMessageMatch && (!shouldLookForVendor || vendorMessageMatch); if (ignorePowerPress) { Slog.d(TAG, "(sideFPS) onFingerUp"); @@ -294,6 +320,8 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> } mSensorOverlays.hide(getSensorId()); + mAuthSessionCoordinator.authEndedFor(getTargetUserId(), mBiometricStrength, getSensorId(), + getRequestId()); } @Override @@ -450,6 +478,8 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> mSensorOverlays.hide(getSensorId()); mCallback.onClientFinished(this, false /* success */); + mAuthSessionCoordinator.lockOutTimed(getTargetUserId(), mBiometricStrength, getSensorId(), + durationMillis, getRequestId()); } @Override @@ -473,6 +503,8 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> mSensorOverlays.hide(getSensorId()); mCallback.onClientFinished(this, false /* success */); + mAuthSessionCoordinator.lockedOutFor(getTargetUserId(), mBiometricStrength, getSensorId(), + getRequestId()); } @Override @@ -485,6 +517,8 @@ class FingerprintAuthenticationClient extends AuthenticationClient<AidlSession> mHandler.removeMessages(MESSAGE_AUTH_SUCCESS); // Do not call onError() as that will send an additional callback to coex. onErrorInternal(BiometricConstants.BIOMETRIC_ERROR_POWER_PRESSED, 0, true); + mAuthSessionCoordinator.authEndedFor(getTargetUserId(), + mBiometricStrength, getSensorId(), getRequestId()); } mHandler.removeMessages(MESSAGE_IGNORE_AUTH); mHandler.postDelayed(() -> { diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java index 3fe6332fcaa0..650894db431a 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java @@ -47,6 +47,7 @@ import android.os.IBinder; import android.os.Looper; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.SystemClock; import android.os.UserManager; import android.util.Slog; import android.util.SparseArray; @@ -328,7 +329,8 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi createLogger(BiometricsProtoEnums.ACTION_UNKNOWN, BiometricsProtoEnums.CLIENT_UNKNOWN), mBiometricContext, hardwareAuthToken, - mSensors.get(sensorId).getLockoutCache(), mLockoutResetDispatcher); + mSensors.get(sensorId).getLockoutCache(), mLockoutResetDispatcher, + Utils.getCurrentStrength(sensorId)); scheduleForSensor(sensorId, client); }); } @@ -447,7 +449,9 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi mBiometricContext, isStrongBiometric, mTaskStackListener, mSensors.get(sensorId).getLockoutCache(), mUdfpsOverlayController, mSidefpsController, allowBackgroundAuthentication, - mSensors.get(sensorId).getSensorProperties(), mHandler); + mSensors.get(sensorId).getSensorProperties(), mHandler, + Utils.getCurrentStrength(sensorId), + SystemClock.elapsedRealtimeClock()); scheduleForSensor(sensorId, client, mBiometricStateCallback); }); } @@ -702,6 +706,9 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi } pw.println(dump); pw.println("HAL deaths since last reboot: " + performanceTracker.getHALDeathCount()); + pw.println("---AuthSessionCoordinator logs begin---"); + pw.println(mBiometricContext.getAuthSessionCoordinator()); + pw.println("---AuthSessionCoordinator logs end ---"); mSensors.get(sensorId).getScheduler().dump(pw); } diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java index c8148df9ea71..22f504cf5664 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintResetLockoutClient.java @@ -18,6 +18,7 @@ package com.android.server.biometrics.sensors.fingerprint.aidl; import android.annotation.NonNull; import android.content.Context; +import android.hardware.biometrics.BiometricManager.Authenticators; import android.hardware.biometrics.fingerprint.IFingerprint; import android.hardware.keymaster.HardwareAuthToken; import android.os.RemoteException; @@ -48,17 +49,20 @@ class FingerprintResetLockoutClient extends HalClientMonitor<AidlSession> implem private final HardwareAuthToken mHardwareAuthToken; private final LockoutCache mLockoutCache; private final LockoutResetDispatcher mLockoutResetDispatcher; + private final int mBiometricStrength; FingerprintResetLockoutClient(@NonNull Context context, @NonNull Supplier<AidlSession> lazyDaemon, int userId, String owner, int sensorId, @NonNull BiometricLogger biometricLogger, @NonNull BiometricContext biometricContext, @NonNull byte[] hardwareAuthToken, @NonNull LockoutCache lockoutTracker, - @NonNull LockoutResetDispatcher lockoutResetDispatcher) { + @NonNull LockoutResetDispatcher lockoutResetDispatcher, + @Authenticators.Types int biometricStrength) { super(context, lazyDaemon, null /* token */, null /* listener */, userId, owner, 0 /* cookie */, sensorId, biometricLogger, biometricContext); mHardwareAuthToken = HardwareAuthTokenUtils.toHardwareAuthToken(hardwareAuthToken); mLockoutCache = lockoutTracker; mLockoutResetDispatcher = lockoutResetDispatcher; + mBiometricStrength = biometricStrength; } @Override @@ -89,6 +93,8 @@ class FingerprintResetLockoutClient extends HalClientMonitor<AidlSession> implem void onLockoutCleared() { resetLocalLockoutStateToNone(getSensorId(), getTargetUserId(), mLockoutCache, mLockoutResetDispatcher); + getBiometricContext().getAuthSessionCoordinator() + .resetLockoutFor(getTargetUserId(), mBiometricStrength, getRequestId()); mCallback.onClientFinished(this, true /* success */); } diff --git a/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java b/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java index 0770062cd4d3..6a010424db13 100644 --- a/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java +++ b/services/core/java/com/android/server/broadcastradio/IRadioServiceAidlImpl.java @@ -29,6 +29,8 @@ import android.os.ServiceManager; import android.util.IndentingPrintWriter; import android.util.Log; +import com.android.internal.annotations.VisibleForTesting; +import com.android.server.broadcastradio.aidl.BroadcastRadioServiceImpl; import com.android.server.utils.Slogf; import java.io.FileDescriptor; @@ -47,7 +49,7 @@ final class IRadioServiceAidlImpl extends IRadioService.Stub { private static final List<String> SERVICE_NAMES = Arrays.asList( IBroadcastRadio.DESCRIPTOR + "/amfm", IBroadcastRadio.DESCRIPTOR + "/dab"); - private final com.android.server.broadcastradio.aidl.BroadcastRadioServiceImpl mHalAidl; + private final BroadcastRadioServiceImpl mHalAidl; private final BroadcastRadioService mService; /** @@ -65,10 +67,15 @@ final class IRadioServiceAidlImpl extends IRadioService.Stub { } IRadioServiceAidlImpl(BroadcastRadioService service, ArrayList<String> serviceList) { + this(service, new BroadcastRadioServiceImpl(serviceList)); Slogf.i(TAG, "Initialize BroadcastRadioServiceAidl(%s)", service); - mService = Objects.requireNonNull(service); - mHalAidl = - new com.android.server.broadcastradio.aidl.BroadcastRadioServiceImpl(serviceList); + } + + @VisibleForTesting + IRadioServiceAidlImpl(BroadcastRadioService service, BroadcastRadioServiceImpl halAidl) { + mService = Objects.requireNonNull(service, "Broadcast radio service cannot be null"); + mHalAidl = Objects.requireNonNull(halAidl, + "Broadcast radio service implementation for AIDL HAL cannot be null"); } @Override @@ -96,8 +103,8 @@ final class IRadioServiceAidlImpl extends IRadioService.Stub { if (isDebugEnabled()) { Slogf.d(TAG, "Adding announcement listener for %s", Arrays.toString(enabledTypes)); } - Objects.requireNonNull(enabledTypes); - Objects.requireNonNull(listener); + Objects.requireNonNull(enabledTypes, "Enabled announcement types cannot be null"); + Objects.requireNonNull(listener, "Announcement listener cannot be null"); mService.enforcePolicyAccess(); return mHalAidl.addAnnouncementListener(enabledTypes, listener); diff --git a/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java b/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java index 28b6d02581be..a8e4034e3f86 100644 --- a/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java +++ b/services/core/java/com/android/server/broadcastradio/IRadioServiceHidlImpl.java @@ -27,6 +27,7 @@ import android.util.IndentingPrintWriter; import android.util.Log; import android.util.Slog; +import com.android.internal.annotations.VisibleForTesting; import com.android.server.broadcastradio.hal2.AnnouncementAggregator; import java.io.FileDescriptor; @@ -53,7 +54,7 @@ final class IRadioServiceHidlImpl extends IRadioService.Stub { private final List<RadioManager.ModuleProperties> mV1Modules; IRadioServiceHidlImpl(BroadcastRadioService service) { - mService = Objects.requireNonNull(service); + mService = Objects.requireNonNull(service, "broadcast radio service cannot be null"); mHal1 = new com.android.server.broadcastradio.hal1.BroadcastRadioService(mLock); mV1Modules = mHal1.loadModules(); OptionalInt max = mV1Modules.stream().mapToInt(RadioManager.ModuleProperties::getId).max(); @@ -61,6 +62,18 @@ final class IRadioServiceHidlImpl extends IRadioService.Stub { max.isPresent() ? max.getAsInt() + 1 : 0, mLock); } + @VisibleForTesting + IRadioServiceHidlImpl(BroadcastRadioService service, + com.android.server.broadcastradio.hal1.BroadcastRadioService hal1, + com.android.server.broadcastradio.hal2.BroadcastRadioService hal2) { + mService = Objects.requireNonNull(service, "Broadcast radio service cannot be null"); + mHal1 = Objects.requireNonNull(hal1, + "Broadcast radio service implementation for HIDL 1 HAL cannot be null"); + mV1Modules = mHal1.loadModules(); + mHal2 = Objects.requireNonNull(hal2, + "Broadcast radio service implementation for HIDL 2 HAL cannot be null"); + } + @Override public List<RadioManager.ModuleProperties> listModules() { mService.enforcePolicyAccess(); @@ -95,8 +108,8 @@ final class IRadioServiceHidlImpl extends IRadioService.Stub { if (isDebugEnabled()) { Slog.d(TAG, "Adding announcement listener for " + Arrays.toString(enabledTypes)); } - Objects.requireNonNull(enabledTypes); - Objects.requireNonNull(listener); + Objects.requireNonNull(enabledTypes, "Enabled announcement types cannot be null"); + Objects.requireNonNull(listener, "Announcement listener cannot be null"); mService.enforcePolicyAccess(); synchronized (mLock) { diff --git a/services/core/java/com/android/server/display/BrightnessTracker.java b/services/core/java/com/android/server/display/BrightnessTracker.java index 6de08aed9687..1686cb2b246d 100644 --- a/services/core/java/com/android/server/display/BrightnessTracker.java +++ b/services/core/java/com/android/server/display/BrightnessTracker.java @@ -220,6 +220,11 @@ public class BrightnessTracker { } private void backgroundStart(float initialBrightness) { + synchronized (mDataCollectionLock) { + if (mStarted) { + return; + } + } if (DEBUG) { Slog.d(TAG, "Background start"); } @@ -250,6 +255,11 @@ public class BrightnessTracker { /** Stop listening for events */ void stop() { + synchronized (mDataCollectionLock) { + if (!mStarted) { + return; + } + } if (DEBUG) { Slog.d(TAG, "Stop"); } diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index da7d99513b9a..5eb15e09f09e 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -40,6 +40,7 @@ import static android.os.Process.ROOT_UID; import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.RequiresPermission; import android.annotation.UserIdInt; import android.app.AppOpsManager; import android.app.compat.CompatChanges; @@ -101,6 +102,7 @@ import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; +import android.provider.DeviceConfig; import android.provider.Settings; import android.sysprop.DisplayProperties; import android.text.TextUtils; @@ -202,8 +204,6 @@ public final class DisplayManagerService extends SystemService { private static final String FORCE_WIFI_DISPLAY_ENABLE = "persist.debug.wfd.enable"; private static final String PROP_DEFAULT_DISPLAY_TOP_INSET = "persist.sys.displayinset.top"; - private static final String PROP_USE_NEW_DISPLAY_POWER_CONTROLLER = - "persist.sys.use_new_display_power_controller"; private static final long WAIT_FOR_DEFAULT_DISPLAY_TIMEOUT = 10000; // This value needs to be in sync with the threshold // in RefreshRateConfigs::getFrameRateDivisor. @@ -1802,9 +1802,13 @@ public final class DisplayManagerService extends SystemService { if (displayDevice == null) { return; } - mPersistentDataStore.setUserPreferredResolution( - displayDevice, resolutionWidth, resolutionHeight); - mPersistentDataStore.setUserPreferredRefreshRate(displayDevice, refreshRate); + try { + mPersistentDataStore.setUserPreferredResolution( + displayDevice, resolutionWidth, resolutionHeight); + mPersistentDataStore.setUserPreferredRefreshRate(displayDevice, refreshRate); + } finally { + mPersistentDataStore.saveIfNeeded(); + } } private void setUserPreferredModeForDisplayLocked(int displayId, Display.Mode mode) { @@ -2599,6 +2603,7 @@ public final class DisplayManagerService extends SystemService { mLogicalDisplayMapper.forEachLocked(this::addDisplayPowerControllerLocked); } + @RequiresPermission(Manifest.permission.READ_DEVICE_CONFIG) private void addDisplayPowerControllerLocked(LogicalDisplay display) { if (mPowerHandler == null) { // initPowerManagement has not yet been called. @@ -2612,7 +2617,8 @@ public final class DisplayManagerService extends SystemService { display, mSyncRoot); final DisplayPowerControllerInterface displayPowerController; - if (SystemProperties.getInt(PROP_USE_NEW_DISPLAY_POWER_CONTROLLER, 0) == 1) { + if (DeviceConfig.getBoolean("display_manager", + "use_newly_structured_display_power_controller", false)) { displayPowerController = new DisplayPowerController2( mContext, /* injector= */ null, mDisplayPowerCallbacks, mPowerHandler, mSensorManager, mDisplayBlanker, display, mBrightnessTracker, brightnessSetting, diff --git a/services/core/java/com/android/server/display/PersistentDataStore.java b/services/core/java/com/android/server/display/PersistentDataStore.java index b9a0738d15c4..a11f1721a4b9 100644 --- a/services/core/java/com/android/server/display/PersistentDataStore.java +++ b/services/core/java/com/android/server/display/PersistentDataStore.java @@ -75,6 +75,11 @@ import java.util.Objects; * </brightness-curve> * </brightness-configuration> * </brightness-configurations> + * <display-mode>0< + * <resolution-width>1080</resolution-width> + * <resolution-height>1920</resolution-height> + * <refresh-rate>60</refresh-rate> + * </display-mode> * </display> * </display-states> * <stable-device-values> @@ -121,6 +126,10 @@ final class PersistentDataStore { private static final String ATTR_PACKAGE_NAME = "package-name"; private static final String ATTR_TIME_STAMP = "timestamp"; + private static final String TAG_RESOLUTION_WIDTH = "resolution-width"; + private static final String TAG_RESOLUTION_HEIGHT = "resolution-height"; + private static final String TAG_REFRESH_RATE = "refresh-rate"; + // Remembered Wifi display devices. private ArrayList<WifiDisplay> mRememberedWifiDisplays = new ArrayList<WifiDisplay>(); @@ -696,6 +705,18 @@ final class PersistentDataStore { case TAG_BRIGHTNESS_CONFIGURATIONS: mDisplayBrightnessConfigurations.loadFromXml(parser); break; + case TAG_RESOLUTION_WIDTH: + String width = parser.nextText(); + mWidth = Integer.parseInt(width); + break; + case TAG_RESOLUTION_HEIGHT: + String height = parser.nextText(); + mHeight = Integer.parseInt(height); + break; + case TAG_REFRESH_RATE: + String refreshRate = parser.nextText(); + mRefreshRate = Float.parseFloat(refreshRate); + break; } } } @@ -712,6 +733,18 @@ final class PersistentDataStore { serializer.startTag(null, TAG_BRIGHTNESS_CONFIGURATIONS); mDisplayBrightnessConfigurations.saveToXml(serializer); serializer.endTag(null, TAG_BRIGHTNESS_CONFIGURATIONS); + + serializer.startTag(null, TAG_RESOLUTION_WIDTH); + serializer.text(Integer.toString(mWidth)); + serializer.endTag(null, TAG_RESOLUTION_WIDTH); + + serializer.startTag(null, TAG_RESOLUTION_HEIGHT); + serializer.text(Integer.toString(mHeight)); + serializer.endTag(null, TAG_RESOLUTION_HEIGHT); + + serializer.startTag(null, TAG_REFRESH_RATE); + serializer.text(Float.toString(mRefreshRate)); + serializer.endTag(null, TAG_REFRESH_RATE); } public void dump(final PrintWriter pw, final String prefix) { @@ -719,6 +752,8 @@ final class PersistentDataStore { pw.println(prefix + "BrightnessValue=" + mBrightness); pw.println(prefix + "DisplayBrightnessConfigurations: "); mDisplayBrightnessConfigurations.dump(pw, prefix); + pw.println(prefix + "Resolution=" + mWidth + " " + mHeight); + pw.println(prefix + "RefreshRate=" + mRefreshRate); } } diff --git a/services/core/java/com/android/server/dreams/DreamController.java b/services/core/java/com/android/server/dreams/DreamController.java index b8af1bfcc254..819b719dd22e 100644 --- a/services/core/java/com/android/server/dreams/DreamController.java +++ b/services/core/java/com/android/server/dreams/DreamController.java @@ -16,6 +16,9 @@ package com.android.server.dreams; +import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM; + +import android.app.ActivityTaskManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -34,8 +37,6 @@ import android.os.UserHandle; import android.service.dreams.DreamService; import android.service.dreams.IDreamService; import android.util.Slog; -import android.view.IWindowManager; -import android.view.WindowManagerGlobal; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -60,7 +61,7 @@ final class DreamController { private final Context mContext; private final Handler mHandler; private final Listener mListener; - private final IWindowManager mIWindowManager; + private final ActivityTaskManager mActivityTaskManager; private long mDreamStartTime; private String mSavedStopReason; @@ -93,7 +94,7 @@ final class DreamController { mContext = context; mHandler = handler; mListener = listener; - mIWindowManager = WindowManagerGlobal.getWindowManagerService(); + mActivityTaskManager = mContext.getSystemService(ActivityTaskManager.class); mCloseNotificationShadeIntent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); mCloseNotificationShadeIntent.putExtra("reason", "dream"); } @@ -229,6 +230,8 @@ final class DreamController { } oldDream.releaseWakeLockIfNeeded(); + mActivityTaskManager.removeRootTasksWithActivityTypes(new int[] {ACTIVITY_TYPE_DREAM}); + mHandler.post(() -> mListener.onDreamStopped(oldDream.mToken)); } finally { Trace.traceEnd(Trace.TRACE_TAG_POWER); diff --git a/services/core/java/com/android/server/hdmi/HdmiCecController.java b/services/core/java/com/android/server/hdmi/HdmiCecController.java index 5aa3fa4db4f1..5c1b33cb3120 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecController.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecController.java @@ -19,20 +19,25 @@ package com.android.server.hdmi; import android.annotation.NonNull; import android.annotation.Nullable; import android.hardware.hdmi.HdmiPortInfo; -import android.hardware.tv.cec.V1_0.CecMessage; +import android.hardware.tv.cec.CecMessage; +import android.hardware.tv.cec.IHdmiCec; +import android.hardware.tv.cec.IHdmiCecCallback; import android.hardware.tv.cec.V1_0.HotplugEvent; -import android.hardware.tv.cec.V1_0.IHdmiCec; import android.hardware.tv.cec.V1_0.IHdmiCec.getPhysicalAddressCallback; -import android.hardware.tv.cec.V1_0.IHdmiCecCallback; +import android.hardware.tv.cec.V1_0.OptionKey; import android.hardware.tv.cec.V1_0.Result; import android.hardware.tv.cec.V1_0.SendMessageResult; +import android.hardware.tv.hdmi.IHdmi; +import android.hardware.tv.hdmi.IHdmiCallback; import android.icu.util.IllformedLocaleException; import android.icu.util.ULocale; import android.os.Binder; import android.os.Handler; +import android.os.IBinder; import android.os.IHwBinder; import android.os.Looper; import android.os.RemoteException; +import android.os.ServiceManager; import android.stats.hdmi.HdmiStatsEnums; import android.util.Slog; @@ -170,8 +175,14 @@ final class HdmiCecController { * returns {@code null}. */ static HdmiCecController create(HdmiControlService service, HdmiCecAtomWriter atomWriter) { - HdmiCecController controller = createWithNativeWrapper(service, new NativeWrapperImpl11(), - atomWriter); + HdmiCecController controller = + createWithNativeWrapper(service, new NativeWrapperImplAidl(), atomWriter); + if (controller != null) { + return controller; + } + HdmiLogger.warning("Unable to use CEC and HDMI AIDL HALs"); + + controller = createWithNativeWrapper(service, new NativeWrapperImpl11(), atomWriter); if (controller != null) { return controller; } @@ -362,16 +373,43 @@ final class HdmiCecController { } /** - * Set an option to CEC HAL. + * Configures the TV panel device wakeup behaviour in standby mode when it receives an OTP + * (One Touch Play) from a source device. + * + * @param value If true, the TV device will wake up when OTP is received and if false, the TV + * device will not wake up for an OTP. + */ + @ServiceThreadOnly + void enableWakeupByOtp(boolean enabled) { + assertRunOnServiceThread(); + HdmiLogger.debug("enableWakeupByOtp: %b", enabled); + mNativeWrapperImpl.enableWakeupByOtp(enabled); + } + + /** + * Switch to enable or disable CEC on the device. + * + * @param value If true, the device will have all CEC functionalities and if false, the device + * will not perform any CEC functions. + */ + @ServiceThreadOnly + void enableCec(boolean enabled) { + assertRunOnServiceThread(); + HdmiLogger.debug("enableCec: %b", enabled); + mNativeWrapperImpl.enableCec(enabled); + } + + /** + * Configures the module that processes CEC messages - the Android framework or the HAL. * - * @param flag key of option - * @param enabled whether to enable/disable the given option. + * @param value If true, the Android framework will actively process CEC messages and if false, + * only the HAL will process the CEC messages. */ @ServiceThreadOnly - void setOption(int flag, boolean enabled) { + void enableSystemCecControl(boolean enabled) { assertRunOnServiceThread(); - HdmiLogger.debug("setOption: [flag:%d, enabled:%b]", flag, enabled); - mNativeWrapperImpl.nativeSetOption(flag, enabled); + HdmiLogger.debug("enableSystemCecControl: %b", enabled); + mNativeWrapperImpl.enableSystemCecControl(enabled); } /** @@ -829,12 +867,233 @@ final class HdmiCecController { int nativeGetVersion(); int nativeGetVendorId(); HdmiPortInfo[] nativeGetPortInfos(); - void nativeSetOption(int flag, boolean enabled); + + void enableWakeupByOtp(boolean enabled); + + void enableCec(boolean enabled); + + void enableSystemCecControl(boolean enabled); + void nativeSetLanguage(String language); void nativeEnableAudioReturnChannel(int port, boolean flag); boolean nativeIsConnected(int port); } + private static final class NativeWrapperImplAidl + implements NativeWrapper, IBinder.DeathRecipient { + private IHdmiCec mHdmiCec; + private IHdmi mHdmi; + @Nullable private HdmiCecCallback mCallback; + + private final Object mLock = new Object(); + + @Override + public String nativeInit() { + return connectToHal() ? mHdmiCec.toString() + " " + mHdmi.toString() : null; + } + + boolean connectToHal() { + mHdmiCec = + IHdmiCec.Stub.asInterface( + ServiceManager.getService(IHdmiCec.DESCRIPTOR + "/default")); + if (mHdmiCec == null) { + HdmiLogger.error("Could not initialize HDMI CEC AIDL HAL"); + return false; + } + try { + mHdmiCec.asBinder().linkToDeath(this, 0); + } catch (RemoteException e) { + HdmiLogger.error("Couldn't link to death : ", e); + } + + mHdmi = + IHdmi.Stub.asInterface( + ServiceManager.getService(IHdmi.DESCRIPTOR + "/default")); + if (mHdmi == null) { + HdmiLogger.error("Could not initialize HDMI AIDL HAL"); + return false; + } + try { + mHdmi.asBinder().linkToDeath(this, 0); + } catch (RemoteException e) { + HdmiLogger.error("Couldn't link to death : ", e); + } + return true; + } + + @Override + public void binderDied() { + // One of the services died, try to reconnect to both. + mHdmiCec.asBinder().unlinkToDeath(this, 0); + mHdmi.asBinder().unlinkToDeath(this, 0); + HdmiLogger.error("HDMI or CEC service died, reconnecting"); + connectToHal(); + // Reconnect the callback + if (mCallback != null) { + setCallback(mCallback); + } + } + + @Override + public void setCallback(HdmiCecCallback callback) { + mCallback = callback; + try { + // Create an AIDL callback that can callback onCecMessage + mHdmiCec.setCallback(new HdmiCecCallbackAidl(callback)); + } catch (RemoteException e) { + HdmiLogger.error("Couldn't initialise tv.cec callback : ", e); + } + try { + // Create an AIDL callback that can callback onHotplugEvent + mHdmi.setCallback(new HdmiCallbackAidl(callback)); + } catch (RemoteException e) { + HdmiLogger.error("Couldn't initialise tv.hdmi callback : ", e); + } + } + + @Override + public int nativeSendCecCommand(int srcAddress, int dstAddress, byte[] body) { + CecMessage message = new CecMessage(); + message.initiator = (byte) (srcAddress & 0xF); + message.destination = (byte) (dstAddress & 0xF); + message.body = body; + try { + return mHdmiCec.sendMessage(message); + } catch (RemoteException e) { + HdmiLogger.error("Failed to send CEC message : ", e); + return SendMessageResult.FAIL; + } + } + + @Override + public int nativeAddLogicalAddress(int logicalAddress) { + try { + return mHdmiCec.addLogicalAddress((byte) logicalAddress); + } catch (RemoteException e) { + HdmiLogger.error("Failed to add a logical address : ", e); + return Result.FAILURE_INVALID_ARGS; + } + } + + @Override + public void nativeClearLogicalAddress() { + try { + mHdmiCec.clearLogicalAddress(); + } catch (RemoteException e) { + HdmiLogger.error("Failed to clear logical address : ", e); + } + } + + @Override + public int nativeGetPhysicalAddress() { + try { + return mHdmiCec.getPhysicalAddress(); + } catch (RemoteException e) { + HdmiLogger.error("Failed to get physical address : ", e); + return INVALID_PHYSICAL_ADDRESS; + } + } + + @Override + public int nativeGetVersion() { + try { + return mHdmiCec.getCecVersion(); + } catch (RemoteException e) { + HdmiLogger.error("Failed to get cec version : ", e); + return Result.FAILURE_UNKNOWN; + } + } + + @Override + public int nativeGetVendorId() { + try { + return mHdmiCec.getVendorId(); + } catch (RemoteException e) { + HdmiLogger.error("Failed to get vendor id : ", e); + return Result.FAILURE_UNKNOWN; + } + } + + @Override + public void enableWakeupByOtp(boolean enabled) { + try { + mHdmiCec.enableWakeupByOtp(enabled); + } catch (RemoteException e) { + HdmiLogger.error("Failed call to enableWakeupByOtp : ", e); + } + } + + @Override + public void enableCec(boolean enabled) { + try { + mHdmiCec.enableCec(enabled); + } catch (RemoteException e) { + HdmiLogger.error("Failed call to enableCec : ", e); + } + } + + @Override + public void enableSystemCecControl(boolean enabled) { + try { + mHdmiCec.enableSystemCecControl(enabled); + } catch (RemoteException e) { + HdmiLogger.error("Failed call to enableSystemCecControl : ", e); + } + } + + @Override + public void nativeSetLanguage(String language) { + try { + mHdmiCec.setLanguage(language); + } catch (RemoteException e) { + HdmiLogger.error("Failed to set language : ", e); + } + } + + @Override + public void nativeEnableAudioReturnChannel(int port, boolean flag) { + try { + mHdmiCec.enableAudioReturnChannel(port, flag); + } catch (RemoteException e) { + HdmiLogger.error("Failed to enable/disable ARC : ", e); + } + } + + @Override + public HdmiPortInfo[] nativeGetPortInfos() { + try { + android.hardware.tv.hdmi.HdmiPortInfo[] hdmiPortInfos = mHdmi.getPortInfo(); + HdmiPortInfo[] hdmiPortInfo = new HdmiPortInfo[hdmiPortInfos.length]; + int i = 0; + for (android.hardware.tv.hdmi.HdmiPortInfo portInfo : hdmiPortInfos) { + hdmiPortInfo[i] = + new HdmiPortInfo( + portInfo.portId, + portInfo.type, + portInfo.physicalAddress, + portInfo.cecSupported, + false, + portInfo.arcSupported); + i++; + } + return hdmiPortInfo; + } catch (RemoteException e) { + HdmiLogger.error("Failed to get port information : ", e); + return null; + } + } + + @Override + public boolean nativeIsConnected(int port) { + try { + return mHdmi.isConnected(port); + } catch (RemoteException e) { + HdmiLogger.error("Failed to get connection info : ", e); + return false; + } + } + } + private static final class NativeWrapperImpl11 implements NativeWrapper, IHwBinder.DeathRecipient, getPhysicalAddressCallback { private android.hardware.tv.cec.V1_1.IHdmiCec mHdmiCec; @@ -985,8 +1244,7 @@ final class HdmiCecController { } } - @Override - public void nativeSetOption(int flag, boolean enabled) { + private void nativeSetOption(int flag, boolean enabled) { try { mHdmiCec.setOption(flag, enabled); } catch (RemoteException e) { @@ -995,6 +1253,21 @@ final class HdmiCecController { } @Override + public void enableWakeupByOtp(boolean enabled) { + nativeSetOption(OptionKey.WAKEUP, enabled); + } + + @Override + public void enableCec(boolean enabled) { + nativeSetOption(OptionKey.ENABLE_CEC, enabled); + } + + @Override + public void enableSystemCecControl(boolean enabled) { + nativeSetOption(OptionKey.SYSTEM_CEC_CONTROL, enabled); + } + + @Override public void nativeSetLanguage(String language) { try { mHdmiCec.setLanguage(language); @@ -1038,7 +1311,7 @@ final class HdmiCecController { boolean connectToHal() { try { - mHdmiCec = IHdmiCec.getService(true); + mHdmiCec = android.hardware.tv.cec.V1_0.IHdmiCec.getService(true); try { mHdmiCec.linkToDeath(this, HDMI_CEC_HAL_DEATH_COOKIE); } catch (RemoteException e) { @@ -1063,7 +1336,8 @@ final class HdmiCecController { @Override public int nativeSendCecCommand(int srcAddress, int dstAddress, byte[] body) { - CecMessage message = new CecMessage(); + android.hardware.tv.cec.V1_0.CecMessage message = + new android.hardware.tv.cec.V1_0.CecMessage(); message.initiator = srcAddress; message.destination = dstAddress; message.body = new ArrayList<>(body.length); @@ -1151,8 +1425,7 @@ final class HdmiCecController { } } - @Override - public void nativeSetOption(int flag, boolean enabled) { + private void nativeSetOption(int flag, boolean enabled) { try { mHdmiCec.setOption(flag, enabled); } catch (RemoteException e) { @@ -1161,6 +1434,21 @@ final class HdmiCecController { } @Override + public void enableWakeupByOtp(boolean enabled) { + nativeSetOption(OptionKey.WAKEUP, enabled); + } + + @Override + public void enableCec(boolean enabled) { + nativeSetOption(OptionKey.ENABLE_CEC, enabled); + } + + @Override + public void enableSystemCecControl(boolean enabled) { + nativeSetOption(OptionKey.SYSTEM_CEC_CONTROL, enabled); + } + + @Override public void nativeSetLanguage(String language) { try { mHdmiCec.setLanguage(language); @@ -1221,7 +1509,8 @@ final class HdmiCecController { } } - private static final class HdmiCecCallback10 extends IHdmiCecCallback.Stub { + private static final class HdmiCecCallback10 + extends android.hardware.tv.cec.V1_0.IHdmiCecCallback.Stub { private final HdmiCecCallback mHdmiCecCallback; HdmiCecCallback10(HdmiCecCallback hdmiCecCallback) { @@ -1229,7 +1518,8 @@ final class HdmiCecController { } @Override - public void onCecMessage(CecMessage message) throws RemoteException { + public void onCecMessage(android.hardware.tv.cec.V1_0.CecMessage message) + throws RemoteException { byte[] body = new byte[message.body.size()]; for (int i = 0; i < message.body.size(); i++) { body[i] = message.body.get(i); @@ -1262,7 +1552,8 @@ final class HdmiCecController { } @Override - public void onCecMessage(CecMessage message) throws RemoteException { + public void onCecMessage(android.hardware.tv.cec.V1_0.CecMessage message) + throws RemoteException { byte[] body = new byte[message.body.size()]; for (int i = 0; i < message.body.size(); i++) { body[i] = message.body.get(i); @@ -1276,6 +1567,52 @@ final class HdmiCecController { } } + private static final class HdmiCecCallbackAidl extends IHdmiCecCallback.Stub { + private final HdmiCecCallback mHdmiCecCallback; + + HdmiCecCallbackAidl(HdmiCecCallback hdmiCecCallback) { + mHdmiCecCallback = hdmiCecCallback; + } + + @Override + public void onCecMessage(CecMessage message) throws RemoteException { + mHdmiCecCallback.onCecMessage(message.initiator, message.destination, message.body); + } + + @Override + public synchronized String getInterfaceHash() throws android.os.RemoteException { + return IHdmiCecCallback.Stub.HASH; + } + + @Override + public int getInterfaceVersion() throws android.os.RemoteException { + return IHdmiCecCallback.Stub.VERSION; + } + } + + private static final class HdmiCallbackAidl extends IHdmiCallback.Stub { + private final HdmiCecCallback mHdmiCecCallback; + + HdmiCallbackAidl(HdmiCecCallback hdmiCecCallback) { + mHdmiCecCallback = hdmiCecCallback; + } + + @Override + public void onHotplugEvent(boolean connected, int portId) throws RemoteException { + mHdmiCecCallback.onHotplugEvent(portId, connected); + } + + @Override + public synchronized String getInterfaceHash() throws android.os.RemoteException { + return IHdmiCallback.Stub.HASH; + } + + @Override + public int getInterfaceVersion() throws android.os.RemoteException { + return IHdmiCallback.Stub.VERSION; + } + } + public abstract static class Dumpable { protected final long mTime; diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 3ee35036e9fd..1ae1b5b5185d 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -56,7 +56,6 @@ import android.hardware.hdmi.IHdmiMhlVendorCommandListener; import android.hardware.hdmi.IHdmiRecordListener; import android.hardware.hdmi.IHdmiSystemAudioModeChangeListener; import android.hardware.hdmi.IHdmiVendorCommandListener; -import android.hardware.tv.cec.V1_0.OptionKey; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.media.AudioAttributes; import android.media.AudioDeviceAttributes; @@ -656,7 +655,7 @@ public class HdmiControlService extends SystemService { if (mHdmiControlEnabled == HdmiControlManager.HDMI_CEC_CONTROL_ENABLED) { initializeCec(INITIATED_BY_BOOT_UP); } else { - mCecController.setOption(OptionKey.ENABLE_CEC, false); + mCecController.enableCec(false); } mMhlDevices = Collections.emptyList(); @@ -730,10 +729,11 @@ public class HdmiControlService extends SystemService { @Override public void onChange(String setting) { if (isTvDeviceEnabled()) { - setCecOption(OptionKey.WAKEUP, tv().getAutoWakeup()); + mCecController.enableWakeupByOtp(tv().getAutoWakeup()); } } - }, mServiceThreadExecutor); + }, + mServiceThreadExecutor); } /** Returns true if the device screen is off */ @@ -854,7 +854,7 @@ public class HdmiControlService extends SystemService { mWakeUpMessageReceived = false; if (isTvDeviceEnabled()) { - mCecController.setOption(OptionKey.WAKEUP, tv().getAutoWakeup()); + mCecController.enableWakeupByOtp(tv().getAutoWakeup()); } int reason = -1; switch (initiatedBy) { @@ -988,7 +988,7 @@ public class HdmiControlService extends SystemService { mCecVersion = Math.max(HdmiControlManager.HDMI_CEC_VERSION_1_4_B, Math.min(settingsCecVersion, supportedCecVersion)); - mCecController.setOption(OptionKey.SYSTEM_CEC_CONTROL, true); + mCecController.enableSystemCecControl(true); mCecController.setLanguage(mMenuLanguage); initializeLocalDevices(initiatedBy); } @@ -3424,7 +3424,7 @@ public class HdmiControlService extends SystemService { device.onStandby(mStandbyMessageReceived, standbyAction); } if (!isAudioSystemDevice()) { - mCecController.setOption(OptionKey.SYSTEM_CEC_CONTROL, false); + mCecController.enableSystemCecControl(false); mMhlController.setOption(OPTION_MHL_SERVICE_CONTROL, DISABLED); } } @@ -3573,12 +3573,6 @@ public class HdmiControlService extends SystemService { } @ServiceThreadOnly - void setCecOption(int key, boolean value) { - assertRunOnServiceThread(); - mCecController.setOption(key, value); - } - - @ServiceThreadOnly void setControlEnabled(@HdmiControlManager.HdmiCecControl int enabled) { assertRunOnServiceThread(); @@ -3612,8 +3606,8 @@ public class HdmiControlService extends SystemService { @ServiceThreadOnly private void enableHdmiControlService() { - mCecController.setOption(OptionKey.ENABLE_CEC, true); - mCecController.setOption(OptionKey.SYSTEM_CEC_CONTROL, true); + mCecController.enableCec(true); + mCecController.enableSystemCecControl(true); mMhlController.setOption(OPTION_MHL_ENABLE, ENABLED); initializeCec(INITIATED_BY_ENABLE_CEC); @@ -3621,21 +3615,23 @@ public class HdmiControlService extends SystemService { @ServiceThreadOnly private void disableHdmiControlService() { - disableDevices(new PendingActionClearedCallback() { - @Override - public void onCleared(HdmiCecLocalDevice device) { - assertRunOnServiceThread(); - mCecController.flush(new Runnable() { + disableDevices( + new PendingActionClearedCallback() { @Override - public void run() { - mCecController.setOption(OptionKey.ENABLE_CEC, false); - mCecController.setOption(OptionKey.SYSTEM_CEC_CONTROL, false); - mMhlController.setOption(OPTION_MHL_ENABLE, DISABLED); - clearLocalDevices(); + public void onCleared(HdmiCecLocalDevice device) { + assertRunOnServiceThread(); + mCecController.flush( + new Runnable() { + @Override + public void run() { + mCecController.enableCec(false); + mCecController.enableSystemCecControl(false); + mMhlController.setOption(OPTION_MHL_ENABLE, DISABLED); + clearLocalDevices(); + } + }); } }); - } - }); } @ServiceThreadOnly diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 76331fd6089c..76495b17c984 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -58,7 +58,6 @@ import android.Manifest; import android.accessibilityservice.AccessibilityService; import android.annotation.AnyThread; import android.annotation.BinderThread; -import android.annotation.ColorInt; import android.annotation.DrawableRes; import android.annotation.DurationMillisLong; import android.annotation.EnforcePermission; @@ -69,9 +68,6 @@ import android.annotation.UiThread; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManagerInternal; -import android.app.Notification; -import android.app.NotificationManager; -import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentProvider; @@ -94,7 +90,6 @@ import android.inputmethodservice.InputMethodService; import android.media.AudioManagerInternal; import android.net.Uri; import android.os.Binder; -import android.os.Bundle; import android.os.Debug; import android.os.Handler; import android.os.IBinder; @@ -170,8 +165,6 @@ import com.android.internal.inputmethod.SoftInputShowHideReason; import com.android.internal.inputmethod.StartInputFlags; import com.android.internal.inputmethod.StartInputReason; import com.android.internal.inputmethod.UnbindReason; -import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; -import com.android.internal.notification.SystemNotificationChannels; import com.android.internal.os.TransferPipe; import com.android.internal.util.ArrayUtils; import com.android.internal.util.ConcurrentUtils; @@ -255,13 +248,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub private static final String HANDLER_THREAD_NAME = "android.imms"; /** - * A protected broadcast intent action for internal use for {@link PendingIntent} in - * the notification. - */ - private static final String ACTION_SHOW_INPUT_METHOD_PICKER = - "com.android.server.inputmethod.InputMethodManagerService.SHOW_INPUT_METHOD_PICKER"; - - /** * When set, {@link #startInputUncheckedLocked} will return * {@link InputBindResult#NO_EDITOR} instead of starting an IME connection * unless {@link StartInputFlags#IS_TEXT_EDITOR} is set. This behavior overrides @@ -334,13 +320,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub @GuardedBy("ImfLock.class") private int mDisplayIdToShowIme = INVALID_DISPLAY; - // Ongoing notification - private NotificationManager mNotificationManager; @Nullable private StatusBarManagerInternal mStatusBarManagerInternal; - private final Notification.Builder mImeSwitcherNotification; - private final PendingIntent mImeSwitchPendingIntent; private boolean mShowOngoingImeSwitcherForPhones; - private boolean mNotificationShown; @GuardedBy("ImfLock.class") private final HandwritingModeController mHwController; @GuardedBy("ImfLock.class") @@ -1253,17 +1234,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub return; } else if (Intent.ACTION_LOCALE_CHANGED.equals(action)) { onActionLocaleChanged(); - } else if (ACTION_SHOW_INPUT_METHOD_PICKER.equals(action)) { - // ACTION_SHOW_INPUT_METHOD_PICKER action is a protected-broadcast and it is - // guaranteed to be send only from the system, so that there is no need for extra - // security check such as - // {@link #canShowInputMethodPickerLocked(IInputMethodClient)}. - mHandler.obtainMessage( - MSG_SHOW_IM_SUBTYPE_PICKER, - // TODO(b/120076400): Design and implement IME switcher for heterogeneous - // navbar configuration. - InputMethodManager.SHOW_IM_PICKER_MODE_INCLUDE_AUXILIARY_SUBTYPES, - DEFAULT_DISPLAY).sendToTarget(); } else { Slog.w(TAG, "Unexpected intent " + intent); } @@ -1720,27 +1690,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub mSlotIme = mContext.getString(com.android.internal.R.string.status_bar_ime); - Bundle extras = new Bundle(); - extras.putBoolean(Notification.EXTRA_ALLOW_DURING_SETUP, true); - @ColorInt final int accentColor = mContext.getColor( - com.android.internal.R.color.system_notification_accent_color); - mImeSwitcherNotification = - new Notification.Builder(mContext, SystemNotificationChannels.VIRTUAL_KEYBOARD) - .setSmallIcon(com.android.internal.R.drawable.ic_notification_ime_default) - .setWhen(0) - .setOngoing(true) - .addExtras(extras) - .setCategory(Notification.CATEGORY_SYSTEM) - .setColor(accentColor); - - Intent intent = new Intent(ACTION_SHOW_INPUT_METHOD_PICKER) - .setPackage(mContext.getPackageName()); - mImeSwitchPendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, - PendingIntent.FLAG_IMMUTABLE); - mShowOngoingImeSwitcherForPhones = false; - mNotificationShown = false; final int userId = mActivityManagerInternal.getCurrentUserId(); mLastSwitchUserId = userId; @@ -1939,7 +1890,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub final int currentUserId = mSettings.getCurrentUserId(); mSettings.switchCurrentUser(currentUserId, !mUserManagerInternal.isUserUnlockingOrUnlocked(currentUserId)); - mNotificationManager = mContext.getSystemService(NotificationManager.class); mStatusBarManagerInternal = LocalServices.getService(StatusBarManagerInternal.class); hideStatusBarIconLocked(); @@ -1977,7 +1927,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub broadcastFilterForSystemUser.addAction(Intent.ACTION_USER_ADDED); broadcastFilterForSystemUser.addAction(Intent.ACTION_USER_REMOVED); broadcastFilterForSystemUser.addAction(Intent.ACTION_LOCALE_CHANGED); - broadcastFilterForSystemUser.addAction(ACTION_SHOW_INPUT_METHOD_PICKER); mContext.registerReceiver(new ImmsBroadcastReceiverForSystemUser(), broadcastFilterForSystemUser); @@ -3159,41 +3108,6 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub mStatusBarManagerInternal.setImeWindowStatus(mCurTokenDisplayId, getCurTokenLocked(), vis, backDisposition, needsToShowImeSwitcher); } - final InputMethodInfo imi = mMethodMap.get(getSelectedMethodIdLocked()); - if (imi != null && needsToShowImeSwitcher) { - // Used to load label - final CharSequence title = mRes.getText( - com.android.internal.R.string.select_input_method); - final int currentUserId = mSettings.getCurrentUserId(); - final Context userAwareContext = mContext.getUserId() == currentUserId - ? mContext - : mContext.createContextAsUser(UserHandle.of(currentUserId), 0 /* flags */); - final CharSequence summary = InputMethodUtils.getImeAndSubtypeDisplayName( - userAwareContext, imi, mCurrentSubtype); - mImeSwitcherNotification.setContentTitle(title) - .setContentText(summary) - .setContentIntent(mImeSwitchPendingIntent); - // TODO(b/120076400): Figure out what is the best behavior - if ((mNotificationManager != null) - && !mWindowManagerInternal.hasNavigationBar(DEFAULT_DISPLAY)) { - if (DEBUG) { - Slog.d(TAG, "--- show notification: label = " + summary); - } - mNotificationManager.notifyAsUser(null, - SystemMessage.NOTE_SELECT_INPUT_METHOD, - mImeSwitcherNotification.build(), UserHandle.ALL); - mNotificationShown = true; - } - } else { - if (mNotificationShown && mNotificationManager != null) { - if (DEBUG) { - Slog.d(TAG, "--- hide notification"); - } - mNotificationManager.cancelAsUser(null, - SystemMessage.NOTE_SELECT_INPUT_METHOD, UserHandle.ALL); - mNotificationShown = false; - } - } } finally { Binder.restoreCallingIdentity(ident); } diff --git a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java index c7ff8caf176b..ebf9237d61ea 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java @@ -179,16 +179,6 @@ final class InputMethodUtils { } } - static CharSequence getImeAndSubtypeDisplayName(Context context, InputMethodInfo imi, - InputMethodSubtype subtype) { - final CharSequence imiLabel = imi.loadLabel(context.getPackageManager()); - return subtype != null - ? TextUtils.concat(subtype.getDisplayName(context, - imi.getPackageName(), imi.getServiceInfo().applicationInfo), - (TextUtils.isEmpty(imiLabel) ? "" : " - " + imiLabel)) - : imiLabel; - } - /** * Returns true if a package name belongs to a UID. * diff --git a/services/core/java/com/android/server/locales/LocaleManagerService.java b/services/core/java/com/android/server/locales/LocaleManagerService.java index fc7be7ff8d1c..364f6db28f03 100644 --- a/services/core/java/com/android/server/locales/LocaleManagerService.java +++ b/services/core/java/com/android/server/locales/LocaleManagerService.java @@ -25,6 +25,7 @@ import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManagerInternal; import android.app.ILocaleManager; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -38,6 +39,8 @@ import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ShellCallback; import android.os.UserHandle; +import android.provider.Settings; +import android.text.TextUtils; import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; @@ -357,17 +360,20 @@ public class LocaleManagerService extends SystemService { false /* allowAll */, ActivityManagerInternal.ALLOW_NON_FULL, "getApplicationLocales", /* callerPackage= */ null); - // This function handles three types of query operations: + // This function handles four types of query operations: // 1.) A normal, non-privileged app querying its own locale. - // 2.) The installer of the given app querying locales of a package installed - // by said installer. - // 3.) A privileged system service querying locales of another package. - // The least privileged case is a normal app performing a query, so check that first and - // get locales if the package name is owned by the app. Next check if the calling app - // is the installer of the given app and get locales. If neither conditions matched, - // check if the caller has the necessary permission and fetch locales. + // 2.) The installer of the given app querying locales of a package installed by said + // installer. + // 3.) The current input method querying locales of another package. + // 4.) A privileged system service querying locales of another package. + // The least privileged case is a normal app performing a query, so check that first and get + // locales if the package name is owned by the app. Next check if the calling app is the + // installer of the given app and get locales. Finally check if the calling app is the + // current input method. If neither conditions matched, check if the caller has the + // necessary permission and fetch locales. if (!isPackageOwnedByCaller(appPackageName, userId) - && !isCallerInstaller(appPackageName, userId)) { + && !isCallerInstaller(appPackageName, userId) + && !isCallerFromCurrentInputMethod(userId)) { enforceReadAppSpecificLocalesPermission(); } final long token = Binder.clearCallingIdentity(); @@ -412,6 +418,26 @@ public class LocaleManagerService extends SystemService { return false; } + /** + * Checks if the calling app is the current input method. + */ + private boolean isCallerFromCurrentInputMethod(int userId) { + String currentInputMethod = Settings.Secure.getStringForUser( + mContext.getContentResolver(), + Settings.Secure.DEFAULT_INPUT_METHOD, + userId); + if (!TextUtils.isEmpty(currentInputMethod)) { + String inputMethodPkgName = ComponentName + .unflattenFromString(currentInputMethod) + .getPackageName(); + int inputMethodUid = getPackageUid(inputMethodPkgName, userId); + return inputMethodUid >= 0 && UserHandle.isSameApp(Binder.getCallingUid(), + inputMethodUid); + } + + return false; + } + private void enforceReadAppSpecificLocalesPermission() { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.READ_APP_SPECIFIC_LOCALES, diff --git a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java index e653f0466863..6f637b83a694 100644 --- a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java @@ -1447,7 +1447,9 @@ public class GnssLocationProvider extends AbstractLocationProvider implements * @return the cell ID or -1 if invalid */ private static long getCidFromCellIdentity(CellIdentity id) { - if (id == null) return -1; + if (id == null) { + return -1; + } long cid = -1; switch(id.getType()) { case CellInfo.TYPE_GSM: cid = ((CellIdentityGsm) id).getCid(); break; @@ -1522,7 +1524,8 @@ public class GnssLocationProvider extends AbstractLocationProvider implements for (CellInfo ci : cil) { int status = ci.getCellConnectionStatus(); - if (status == CellInfo.CONNECTION_PRIMARY_SERVING + if (ci.isRegistered() + || status == CellInfo.CONNECTION_PRIMARY_SERVING || status == CellInfo.CONNECTION_SECONDARY_SERVING) { CellIdentity c = ci.getCellIdentity(); int t = getCellType(ci); diff --git a/services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java b/services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java index 07e9fe6ad541..6c4c829b051d 100644 --- a/services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java +++ b/services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java @@ -115,6 +115,16 @@ public final class GnssMeasurementsProvider extends if (request.getIntervalMillis() == GnssMeasurementRequest.PASSIVE_INTERVAL) { return true; } + // The HAL doc does not specify if consecutive start() calls will be allowed. + // Some vendors may ignore the 2nd start() call if stop() is not called. + // Thus, here we always call stop() before calling start() to avoid being ignored. + if (mGnssNative.stopMeasurementCollection()) { + if (D) { + Log.d(TAG, "stopping gnss measurements"); + } + } else { + Log.e(TAG, "error stopping gnss measurements"); + } if (mGnssNative.startMeasurementCollection(request.isFullTracking(), request.isCorrelationVectorOutputsEnabled(), request.getIntervalMillis())) { diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java index c6f89750e87c..be1ade8818f9 100644 --- a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +++ b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java @@ -84,12 +84,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider } public void dump(PrintWriter pw, String prefix) { - pw.println(prefix + "Proxy"); - pw.println(prefix + " mUserId=" + mUserId); - pw.println(prefix + " mRunning=" + mRunning); - pw.println(prefix + " mBound=" + mBound); - pw.println(prefix + " mActiveConnection=" + mActiveConnection); - pw.println(prefix + " mConnectionReady=" + mConnectionReady); + pw.println(prefix + getDebugString()); } public void setManagerScanning(boolean managerScanning) { @@ -494,7 +489,16 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider @Override public String toString() { - return "Service connection " + mComponentName.flattenToShortString(); + return getDebugString(); + } + + private String getDebugString() { + return TextUtils.formatSimple( + "ProviderServiceProxy - package: %s, bound: %b, connection (active:%b, ready:%b)", + mComponentName.getPackageName(), + mBound, + mActiveConnection != null, + mConnectionReady); } private final class Connection implements DeathRecipient { diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderWatcher.java b/services/core/java/com/android/server/media/MediaRoute2ProviderWatcher.java index c8697b48b515..46bccaf314d9 100644 --- a/services/core/java/com/android/server/media/MediaRoute2ProviderWatcher.java +++ b/services/core/java/com/android/server/media/MediaRoute2ProviderWatcher.java @@ -63,10 +63,15 @@ final class MediaRoute2ProviderWatcher { } public void dump(PrintWriter pw, String prefix) { - pw.println(prefix + "Watcher"); - pw.println(prefix + " mUserId=" + mUserId); - pw.println(prefix + " mRunning=" + mRunning); - pw.println(prefix + " mProxies.size()=" + mProxies.size()); + pw.println(prefix + "MediaRoute2ProviderWatcher"); + prefix += " "; + if (mProxies.isEmpty()) { + pw.println(prefix + "<no provider service proxies>"); + } else { + for (MediaRoute2ProviderServiceProxy proxy : mProxies) { + proxy.dump(pw, prefix); + } + } } public void start() { diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index 909c1a143b8d..77dbde13889b 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -151,10 +151,7 @@ class MediaRouter2ServiceImpl { mContext.registerReceiver(mScreenOnOffReceiver, screenOnOffIntentFilter); } - //////////////////////////////////////////////////////////////// - //// Calls from MediaRouter2 - //// - Should not have @NonNull/@Nullable on any arguments - //////////////////////////////////////////////////////////////// + // Methods that implement MediaRouter2 operations. @NonNull public void enforceMediaContentControlPermission() { @@ -242,7 +239,7 @@ class MediaRouter2ServiceImpl { } } - public void registerRouter2(IMediaRouter2 router, String packageName) { + public void registerRouter2(@NonNull IMediaRouter2 router, @NonNull String packageName) { Objects.requireNonNull(router, "router must not be null"); if (TextUtils.isEmpty(packageName)) { throw new IllegalArgumentException("packageName must not be empty"); @@ -269,7 +266,7 @@ class MediaRouter2ServiceImpl { } } - public void unregisterRouter2(IMediaRouter2 router) { + public void unregisterRouter2(@NonNull IMediaRouter2 router) { Objects.requireNonNull(router, "router must not be null"); final long token = Binder.clearCallingIdentity(); @@ -282,8 +279,8 @@ class MediaRouter2ServiceImpl { } } - public void setDiscoveryRequestWithRouter2(IMediaRouter2 router, - RouteDiscoveryPreference preference) { + public void setDiscoveryRequestWithRouter2(@NonNull IMediaRouter2 router, + @NonNull RouteDiscoveryPreference preference) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(preference, "preference must not be null"); @@ -302,8 +299,8 @@ class MediaRouter2ServiceImpl { } } - public void setRouteVolumeWithRouter2(IMediaRouter2 router, - MediaRoute2Info route, int volume) { + public void setRouteVolumeWithRouter2(@NonNull IMediaRouter2 router, + @NonNull MediaRoute2Info route, int volume) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(route, "route must not be null"); @@ -317,9 +314,9 @@ class MediaRouter2ServiceImpl { } } - public void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, - long managerRequestId, RoutingSessionInfo oldSession, - MediaRoute2Info route, Bundle sessionHints) { + public void requestCreateSessionWithRouter2(@NonNull IMediaRouter2 router, int requestId, + long managerRequestId, @NonNull RoutingSessionInfo oldSession, + @NonNull MediaRoute2Info route, Bundle sessionHints) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(oldSession, "oldSession must not be null"); Objects.requireNonNull(route, "route must not be null"); @@ -335,8 +332,8 @@ class MediaRouter2ServiceImpl { } } - public void selectRouteWithRouter2(IMediaRouter2 router, String uniqueSessionId, - MediaRoute2Info route) { + public void selectRouteWithRouter2(@NonNull IMediaRouter2 router, + @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(route, "route must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { @@ -353,8 +350,8 @@ class MediaRouter2ServiceImpl { } } - public void deselectRouteWithRouter2(IMediaRouter2 router, String uniqueSessionId, - MediaRoute2Info route) { + public void deselectRouteWithRouter2(@NonNull IMediaRouter2 router, + @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(route, "route must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { @@ -371,8 +368,8 @@ class MediaRouter2ServiceImpl { } } - public void transferToRouteWithRouter2(IMediaRouter2 router, String uniqueSessionId, - MediaRoute2Info route) { + public void transferToRouteWithRouter2(@NonNull IMediaRouter2 router, + @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(route, "route must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { @@ -389,8 +386,8 @@ class MediaRouter2ServiceImpl { } } - public void setSessionVolumeWithRouter2(IMediaRouter2 router, String uniqueSessionId, - int volume) { + public void setSessionVolumeWithRouter2(@NonNull IMediaRouter2 router, + @NonNull String uniqueSessionId, int volume) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(uniqueSessionId, "uniqueSessionId must not be null"); @@ -404,7 +401,8 @@ class MediaRouter2ServiceImpl { } } - public void releaseSessionWithRouter2(IMediaRouter2 router, String uniqueSessionId) { + public void releaseSessionWithRouter2(@NonNull IMediaRouter2 router, + @NonNull String uniqueSessionId) { Objects.requireNonNull(router, "router must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { throw new IllegalArgumentException("uniqueSessionId must not be empty"); @@ -420,13 +418,10 @@ class MediaRouter2ServiceImpl { } } - //////////////////////////////////////////////////////////////// - //// Calls from MediaRouter2Manager - //// - Should not have @NonNull/@Nullable on any arguments - //////////////////////////////////////////////////////////////// + // Methods that implement MediaRouter2Manager operations. @NonNull - public List<RoutingSessionInfo> getRemoteSessions(IMediaRouter2Manager manager) { + public List<RoutingSessionInfo> getRemoteSessions(@NonNull IMediaRouter2Manager manager) { Objects.requireNonNull(manager, "manager must not be null"); final long token = Binder.clearCallingIdentity(); try { @@ -438,7 +433,8 @@ class MediaRouter2ServiceImpl { } } - public void registerManager(IMediaRouter2Manager manager, String packageName) { + public void registerManager(@NonNull IMediaRouter2Manager manager, + @NonNull String packageName) { Objects.requireNonNull(manager, "manager must not be null"); if (TextUtils.isEmpty(packageName)) { throw new IllegalArgumentException("packageName must not be empty"); @@ -458,7 +454,7 @@ class MediaRouter2ServiceImpl { } } - public void unregisterManager(IMediaRouter2Manager manager) { + public void unregisterManager(@NonNull IMediaRouter2Manager manager) { Objects.requireNonNull(manager, "manager must not be null"); final long token = Binder.clearCallingIdentity(); @@ -471,7 +467,7 @@ class MediaRouter2ServiceImpl { } } - public void startScan(IMediaRouter2Manager manager) { + public void startScan(@NonNull IMediaRouter2Manager manager) { Objects.requireNonNull(manager, "manager must not be null"); final long token = Binder.clearCallingIdentity(); try { @@ -483,7 +479,7 @@ class MediaRouter2ServiceImpl { } } - public void stopScan(IMediaRouter2Manager manager) { + public void stopScan(@NonNull IMediaRouter2Manager manager) { Objects.requireNonNull(manager, "manager must not be null"); final long token = Binder.clearCallingIdentity(); try { @@ -495,8 +491,8 @@ class MediaRouter2ServiceImpl { } } - public void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, - MediaRoute2Info route, int volume) { + public void setRouteVolumeWithManager(@NonNull IMediaRouter2Manager manager, int requestId, + @NonNull MediaRoute2Info route, int volume) { Objects.requireNonNull(manager, "manager must not be null"); Objects.requireNonNull(route, "route must not be null"); @@ -510,10 +506,11 @@ class MediaRouter2ServiceImpl { } } - public void requestCreateSessionWithManager(IMediaRouter2Manager manager, int requestId, - RoutingSessionInfo oldSession, MediaRoute2Info route) { + public void requestCreateSessionWithManager(@NonNull IMediaRouter2Manager manager, + int requestId, @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route) { Objects.requireNonNull(manager, "manager must not be null"); Objects.requireNonNull(oldSession, "oldSession must not be null"); + Objects.requireNonNull(route, "route must not be null"); final long token = Binder.clearCallingIdentity(); try { @@ -525,8 +522,8 @@ class MediaRouter2ServiceImpl { } } - public void selectRouteWithManager(IMediaRouter2Manager manager, int requestId, - String uniqueSessionId, MediaRoute2Info route) { + public void selectRouteWithManager(@NonNull IMediaRouter2Manager manager, int requestId, + @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { Objects.requireNonNull(manager, "manager must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { throw new IllegalArgumentException("uniqueSessionId must not be empty"); @@ -543,8 +540,8 @@ class MediaRouter2ServiceImpl { } } - public void deselectRouteWithManager(IMediaRouter2Manager manager, int requestId, - String uniqueSessionId, MediaRoute2Info route) { + public void deselectRouteWithManager(@NonNull IMediaRouter2Manager manager, int requestId, + @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { Objects.requireNonNull(manager, "manager must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { throw new IllegalArgumentException("uniqueSessionId must not be empty"); @@ -561,8 +558,8 @@ class MediaRouter2ServiceImpl { } } - public void transferToRouteWithManager(IMediaRouter2Manager manager, int requestId, - String uniqueSessionId, MediaRoute2Info route) { + public void transferToRouteWithManager(@NonNull IMediaRouter2Manager manager, int requestId, + @NonNull String uniqueSessionId, @NonNull MediaRoute2Info route) { Objects.requireNonNull(manager, "manager must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { throw new IllegalArgumentException("uniqueSessionId must not be empty"); @@ -579,8 +576,8 @@ class MediaRouter2ServiceImpl { } } - public void setSessionVolumeWithManager(IMediaRouter2Manager manager, int requestId, - String uniqueSessionId, int volume) { + public void setSessionVolumeWithManager(@NonNull IMediaRouter2Manager manager, int requestId, + @NonNull String uniqueSessionId, int volume) { Objects.requireNonNull(manager, "manager must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { throw new IllegalArgumentException("uniqueSessionId must not be empty"); @@ -596,8 +593,8 @@ class MediaRouter2ServiceImpl { } } - public void releaseSessionWithManager(IMediaRouter2Manager manager, int requestId, - String uniqueSessionId) { + public void releaseSessionWithManager(@NonNull IMediaRouter2Manager manager, int requestId, + @NonNull String uniqueSessionId) { Objects.requireNonNull(manager, "manager must not be null"); if (TextUtils.isEmpty(uniqueSessionId)) { throw new IllegalArgumentException("uniqueSessionId must not be empty"); @@ -628,8 +625,9 @@ class MediaRouter2ServiceImpl { mUserRecords.valueAt(i).dump(pw, indent + " "); } } else { - pw.println(indent + "<no user records>"); + pw.println(indent + " <no user records>"); } + mEventLogger.dump(pw, indent); } } @@ -680,11 +678,6 @@ class MediaRouter2ServiceImpl { return mUserManagerInternal.getProfileParentId(userId) == mCurrentActiveUserId; } - //////////////////////////////////////////////////////////////// - //// ***Locked methods related to MediaRouter2 - //// - Should have @NonNull/@Nullable on all arguments - //////////////////////////////////////////////////////////////// - @GuardedBy("mLock") private void registerRouter2Locked(@NonNull IMediaRouter2 router, int uid, int pid, @NonNull String packageName, int userId, boolean hasConfigureWifiDisplayPermission, @@ -725,8 +718,12 @@ class MediaRouter2ServiceImpl { return; } - mEventLogger.log(EventLogger.StringEvent.from("unregisterRouter2", - "router id: %d", routerRecord.mRouterId)); + mEventLogger.log( + EventLogger.StringEvent.from( + "unregisterRouter2", + "package: %s, router id: %d", + routerRecord.mPackageName, + routerRecord.mRouterId)); UserRecord userRecord = routerRecord.mUserRecord; userRecord.mRouterRecords.remove(routerRecord); @@ -955,11 +952,6 @@ class MediaRouter2ServiceImpl { DUMMY_REQUEST_ID, routerRecord, uniqueSessionId)); } - //////////////////////////////////////////////////////////// - //// ***Locked methods related to MediaRouter2Manager - //// - Should have @NonNull/@Nullable on all arguments - //////////////////////////////////////////////////////////// - private List<RoutingSessionInfo> getRemoteSessionsLocked( @NonNull IMediaRouter2Manager manager) { final IBinder binder = manager.asBinder(); @@ -1034,9 +1026,12 @@ class MediaRouter2ServiceImpl { UserRecord userRecord = managerRecord.mUserRecord; mEventLogger.log( - EventLogger.StringEvent.from("unregisterManager", - "userId: %d, managerId: %d", - userRecord.mUserId, managerRecord.mManagerId)); + EventLogger.StringEvent.from( + "unregisterManager", + "package: %s, userId: %d, managerId: %d", + managerRecord.mPackageName, + userRecord.mUserId, + managerRecord.mManagerId)); userRecord.mManagerRecords.remove(managerRecord); managerRecord.dispose(); @@ -1094,8 +1089,8 @@ class MediaRouter2ServiceImpl { } private void requestCreateSessionWithManagerLocked(int requestId, - @NonNull IMediaRouter2Manager manager, - @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route) { + @NonNull IMediaRouter2Manager manager, @NonNull RoutingSessionInfo oldSession, + @NonNull MediaRoute2Info route) { ManagerRecord managerRecord = mAllManagerRecords.get(manager.asBinder()); if (managerRecord == null) { return; @@ -1242,8 +1237,7 @@ class MediaRouter2ServiceImpl { } private void releaseSessionWithManagerLocked(int requestId, - @NonNull IMediaRouter2Manager manager, - @NonNull String uniqueSessionId) { + @NonNull IMediaRouter2Manager manager, @NonNull String uniqueSessionId) { final IBinder binder = manager.asBinder(); ManagerRecord managerRecord = mAllManagerRecords.get(binder); @@ -1266,11 +1260,6 @@ class MediaRouter2ServiceImpl { uniqueRequestId, routerRecord, uniqueSessionId)); } - //////////////////////////////////////////////////////////// - //// ***Locked methods used by both router2 and manager - //// - Should have @NonNull/@Nullable on all arguments - //////////////////////////////////////////////////////////// - @GuardedBy("mLock") private UserRecord getOrCreateUserRecordLocked(int userId) { UserRecord userRecord = mUserRecords.get(userId); @@ -1375,8 +1364,6 @@ class MediaRouter2ServiceImpl { if (!mHandler.runWithScissors(() -> mHandler.dump(pw, indent), 1000)) { pw.println(indent + "<could not dump handler state>"); } - - mEventLogger.dump(pw, indent); } } diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java index 511026e71d23..0f6192aa1020 100644 --- a/services/core/java/com/android/server/media/MediaRouterService.java +++ b/services/core/java/com/android/server/media/MediaRouterService.java @@ -62,6 +62,7 @@ import android.util.Slog; import android.util.SparseArray; import android.util.TimeUtils; +import com.android.internal.annotations.GuardedBy; import com.android.internal.util.DumpUtils; import com.android.server.LocalServices; import com.android.server.Watchdog; @@ -107,9 +108,14 @@ public final class MediaRouterService extends IMediaRouterService.Stub private final Object mLock = new Object(); private final UserManagerInternal mUserManagerInternal; + + @GuardedBy("mLock") private final SparseArray<UserRecord> mUserRecords = new SparseArray<>(); + @GuardedBy("mLock") private final ArrayMap<IBinder, ClientRecord> mAllClientRecords = new ArrayMap<>(); + @GuardedBy("mLock") private int mCurrentActiveUserId = -1; + private final IAudioService mAudioService; private final AudioPlayerStateMonitor mAudioPlayerStateMonitor; private final Handler mHandler = new Handler(); @@ -682,6 +688,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void registerClientLocked(IMediaRouterClient client, int uid, int pid, String packageName, int userId, boolean trusted) { final IBinder binder = client.asBinder(); @@ -711,6 +718,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void registerClientGroupIdLocked(IMediaRouterClient client, String groupId) { final IBinder binder = client.asBinder(); ClientRecord clientRecord = mAllClientRecords.get(binder); @@ -735,6 +743,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void unregisterClientLocked(IMediaRouterClient client, boolean died) { ClientRecord clientRecord = mAllClientRecords.remove(client.asBinder()); if (clientRecord != null) { @@ -749,6 +758,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private MediaRouterClientState getStateLocked(IMediaRouterClient client) { ClientRecord clientRecord = mAllClientRecords.get(client.asBinder()); if (clientRecord != null) { @@ -757,6 +767,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub return null; } + @GuardedBy("mLock") private void setDiscoveryRequestLocked(IMediaRouterClient client, int routeTypes, boolean activeScan) { final IBinder binder = client.asBinder(); @@ -781,6 +792,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void setSelectedRouteLocked(IMediaRouterClient client, String routeId, boolean explicit) { ClientRecord clientRecord = mAllClientRecords.get(client.asBinder()); @@ -831,6 +843,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void requestSetVolumeLocked(IMediaRouterClient client, String routeId, int volume) { final IBinder binder = client.asBinder(); @@ -841,6 +854,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void requestUpdateVolumeLocked(IMediaRouterClient client, String routeId, int direction) { final IBinder binder = client.asBinder(); @@ -851,6 +865,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void initializeUserLocked(UserRecord userRecord) { if (DEBUG) { Slog.d(TAG, userRecord + ": Initialized"); @@ -860,6 +875,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub } } + @GuardedBy("mLock") private void disposeUserIfNeededLocked(UserRecord userRecord) { // If there are no records left and the user is no longer current then go ahead // and purge the user record and all of its associated state. If the user is current @@ -878,16 +894,19 @@ public final class MediaRouterService extends IMediaRouterService.Stub * Returns {@code true} if the given {@code userId} corresponds to the active user or a profile * of the active user, returns {@code false} otherwise. */ + @GuardedBy("mLock") private boolean isUserActiveLocked(int userId) { return mUserManagerInternal.getProfileParentId(userId) == mCurrentActiveUserId; } + @GuardedBy("mLock") private void initializeClientLocked(ClientRecord clientRecord) { if (DEBUG) { Slog.d(TAG, clientRecord + ": Registered"); } } + @GuardedBy("mLock") private void disposeClientLocked(ClientRecord clientRecord, boolean died) { if (DEBUG) { if (died) { diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 77fea09b5ecc..f459c0e5eeb4 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -61,6 +61,7 @@ import static android.content.pm.PackageManager.FEATURE_LEANBACK; import static android.content.pm.PackageManager.FEATURE_TELECOM; import static android.content.pm.PackageManager.FEATURE_TELEVISION; import static android.content.pm.PackageManager.MATCH_ALL; +import static android.content.pm.PackageManager.MATCH_ANY_USER; import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE; import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE; import static android.content.pm.PackageManager.PERMISSION_GRANTED; @@ -10700,10 +10701,18 @@ public class NotificationManagerService extends SystemService { private final ArraySet<ManagedServiceInfo> mLightTrimListeners = new ArraySet<>(); ArrayMap<Pair<ComponentName, Integer>, NotificationListenerFilter> mRequestedNotificationListeners = new ArrayMap<>(); + private final boolean mIsHeadlessSystemUserMode; public NotificationListeners(Context context, Object lock, UserProfiles userProfiles, IPackageManager pm) { + this(context, lock, userProfiles, pm, UserManager.isHeadlessSystemUserMode()); + } + + @VisibleForTesting + public NotificationListeners(Context context, Object lock, UserProfiles userProfiles, + IPackageManager pm, boolean isHeadlessSystemUserMode) { super(context, lock, userProfiles, pm); + this.mIsHeadlessSystemUserMode = isHeadlessSystemUserMode; } @Override @@ -10728,10 +10737,16 @@ public class NotificationManagerService extends SystemService { if (TextUtils.isEmpty(listeners[i])) { continue; } + int packageQueryFlags = MATCH_DIRECT_BOOT_AWARE | MATCH_DIRECT_BOOT_UNAWARE; + // In the headless system user mode, packages might not be installed for the + // system user. Match packages for any user since apps can be installed only for + // non-system users and would be considering uninstalled for the system user. + if (mIsHeadlessSystemUserMode) { + packageQueryFlags += MATCH_ANY_USER; + } ArraySet<ComponentName> approvedListeners = - this.queryPackageForServices(listeners[i], - MATCH_DIRECT_BOOT_AWARE - | MATCH_DIRECT_BOOT_UNAWARE, USER_SYSTEM); + this.queryPackageForServices(listeners[i], packageQueryFlags, + USER_SYSTEM); for (int k = 0; k < approvedListeners.size(); k++) { ComponentName cn = approvedListeners.valueAt(k); addDefaultComponentOrPackage(cn.flattenToString()); diff --git a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java index 8e672c3b32c5..17bb39c945bd 100644 --- a/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java +++ b/services/core/java/com/android/server/om/OverlayManagerServiceImpl.java @@ -166,6 +166,14 @@ final class OverlayManagerServiceImpl { CollectionUtils.addAll(updatedTargets, removeOverlaysForUser( (info) -> !userPackages.containsKey(info.packageName), newUserId)); + final ArraySet<String> overlaidByOthers = new ArraySet<>(); + for (AndroidPackage androidPackage : userPackages.values()) { + final String overlayTarget = androidPackage.getOverlayTarget(); + if (!TextUtils.isEmpty(overlayTarget)) { + overlaidByOthers.add(overlayTarget); + } + } + // Update the state of all installed packages containing overlays, and initialize new // overlays that are not currently in the settings. for (int i = 0, n = userPackages.size(); i < n; i++) { @@ -175,8 +183,10 @@ final class OverlayManagerServiceImpl { updatePackageOverlays(pkg, newUserId, 0 /* flags */)); // When a new user is switched to for the first time, package manager must be - // informed of the overlay paths for all packages installed in the user. - updatedTargets.add(new PackageAndUser(pkg.getPackageName(), newUserId)); + // informed of the overlay paths for all overlaid packages installed in the user. + if (overlaidByOthers.contains(pkg.getPackageName())) { + updatedTargets.add(new PackageAndUser(pkg.getPackageName(), newUserId)); + } } catch (OperationFailedException e) { Slog.e(TAG, "failed to initialize overlays of '" + pkg.getPackageName() + "' for user " + newUserId + "", e); diff --git a/services/core/java/com/android/server/pm/Computer.java b/services/core/java/com/android/server/pm/Computer.java index a4e295b4f7df..bf00a33d7d20 100644 --- a/services/core/java/com/android/server/pm/Computer.java +++ b/services/core/java/com/android/server/pm/Computer.java @@ -203,6 +203,12 @@ public interface Computer extends PackageDataSnapshot { boolean filterSharedLibPackage(@Nullable PackageStateInternal ps, int uid, int userId, long flags); boolean isCallerSameApp(String packageName, int uid); + /** + * Returns true if the package name and the uid represent the same app. + * + * @param resolveIsolatedUid if true, resolves an isolated uid into the real uid. + */ + boolean isCallerSameApp(String packageName, int uid, boolean resolveIsolatedUid); boolean isComponentVisibleToInstantApp(@Nullable ComponentName component); boolean isComponentVisibleToInstantApp(@Nullable ComponentName component, @PackageManager.ComponentType int type); diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java index 5d479d52d6cc..86b8272dbe00 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java @@ -2209,11 +2209,19 @@ public class ComputerEngine implements Computer { } public final boolean isCallerSameApp(String packageName, int uid) { + return isCallerSameApp(packageName, uid, false /* resolveIsolatedUid */); + } + + @Override + public final boolean isCallerSameApp(String packageName, int uid, boolean resolveIsolatedUid) { if (Process.isSdkSandboxUid(uid)) { return (packageName != null && packageName.equals(mService.getSdkSandboxPackageName())); } AndroidPackage pkg = mPackages.get(packageName); + if (resolveIsolatedUid && Process.isIsolated(uid)) { + uid = getIsolatedOwner(uid); + } return pkg != null && UserHandle.getAppId(uid) == pkg.getUid(); } diff --git a/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java b/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java index 3f82923763e2..7752fdffb1d7 100644 --- a/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java +++ b/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java @@ -89,8 +89,8 @@ public class CrossProfileIntentResolverEngine { /** * Resolves intent in directly linked profiles and return list of {@link CrossProfileDomainInfo} - * which contains {@link ResolveInfo}. This would also recursively call profiles not directly - * linked. + * which contains {@link ResolveInfo}. This would also iteratively call profiles not directly + * linked using Breadth First Search. * * It first finds {@link CrossProfileIntentFilter} configured in current profile to find list of * target user profiles that can serve current intent request. It uses corresponding strategy @@ -117,7 +117,23 @@ public class CrossProfileIntentResolverEngine { List<CrossProfileIntentFilter> matchingFilters = computer.getMatchingCrossProfileIntentFilters(intent, resolvedType, userId); - if (matchingFilters == null || matchingFilters.isEmpty()) return crossProfileDomainInfos; + if (matchingFilters == null || matchingFilters.isEmpty()) { + /** if intent is web intent, checking if parent profile should handle the intent even + if there is no matching filter. The configuration is based on user profile + restriction android.os.UserManager#ALLOW_PARENT_PROFILE_APP_LINKING **/ + if (intent.hasWebURI()) { + UserInfo parent = computer.getProfileParent(userId); + if (parent != null) { + CrossProfileDomainInfo generalizedCrossProfileDomainInfo = computer + .getCrossProfileDomainPreferredLpr(intent, resolvedType, flags, userId, + parent.id); + if (generalizedCrossProfileDomainInfo != null) { + crossProfileDomainInfos.add(generalizedCrossProfileDomainInfo); + } + } + } + return crossProfileDomainInfos; + } UserManagerInternal umInternal = LocalServices.getService(UserManagerInternal.class); UserInfo sourceUserInfo = umInternal.getUserInfo(userId); diff --git a/services/core/java/com/android/server/pm/DexOptHelper.java b/services/core/java/com/android/server/pm/DexOptHelper.java index 3f04264714e4..c4f6836eba7b 100644 --- a/services/core/java/com/android/server/pm/DexOptHelper.java +++ b/services/core/java/com/android/server/pm/DexOptHelper.java @@ -18,6 +18,7 @@ package com.android.server.pm; import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER; +import static com.android.server.LocalManagerRegistry.ManagerNotFoundException; import static com.android.server.pm.ApexManager.ActiveApexInfo; import static com.android.server.pm.InstructionSets.getAppDexInstructionSets; import static com.android.server.pm.PackageManagerService.DEBUG_DEXOPT; @@ -34,6 +35,7 @@ import static com.android.server.pm.PackageManagerServiceUtils.REMOVE_IF_NULL_PK import android.Manifest; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.app.ActivityManager; import android.app.AppGlobals; @@ -56,9 +58,16 @@ import android.util.Slog; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import com.android.internal.logging.MetricsLogger; +import com.android.server.LocalManagerRegistry; +import com.android.server.art.ArtManagerLocal; +import com.android.server.art.model.ArtFlags; +import com.android.server.art.model.OptimizeParams; +import com.android.server.art.model.OptimizeResult; +import com.android.server.pm.PackageDexOptimizer.DexOptResult; import com.android.server.pm.dex.DexManager; import com.android.server.pm.dex.DexoptOptions; import com.android.server.pm.pkg.AndroidPackage; +import com.android.server.pm.pkg.PackageState; import com.android.server.pm.pkg.PackageStateInternal; import dalvik.system.DexFile; @@ -72,11 +81,15 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Predicate; -final class DexOptHelper { +/** + * Helper class for dex optimization operations in PackageManagerService. + */ +public final class DexOptHelper { private static final long SEVEN_DAYS_IN_MILLISECONDS = 7 * 24 * 60 * 60 * 1000; private final PackageManagerService mPm; @@ -405,11 +418,12 @@ final class DexOptHelper { * {@link PackageDexOptimizer#DEX_OPT_CANCELLED} * {@link PackageDexOptimizer#DEX_OPT_FAILED} */ - @PackageDexOptimizer.DexOptResult + @DexOptResult /* package */ int performDexOptWithStatus(DexoptOptions options) { return performDexOptTraced(options); } + @DexOptResult private int performDexOptTraced(DexoptOptions options) { Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "dexopt"); try { @@ -421,7 +435,13 @@ final class DexOptHelper { // Run dexopt on a given package. Returns true if dexopt did not fail, i.e. // if the package can now be considered up to date for the given filter. + @DexOptResult private int performDexOptInternal(DexoptOptions options) { + Optional<Integer> artSrvRes = performDexOptWithArtService(options); + if (artSrvRes.isPresent()) { + return artSrvRes.get(); + } + AndroidPackage p; PackageSetting pkgSetting; synchronized (mPm.mLock) { @@ -446,8 +466,74 @@ final class DexOptHelper { } } - private int performDexOptInternalWithDependenciesLI(AndroidPackage p, - @NonNull PackageStateInternal pkgSetting, DexoptOptions options) { + /** + * Performs dexopt on the given package using ART Service. + * + * @return a {@link DexOptResult}, or empty if the request isn't supported so that it is + * necessary to fall back to the legacy code paths. + */ + private Optional<Integer> performDexOptWithArtService(DexoptOptions options) { + ArtManagerLocal artManager = getArtManagerLocal(); + if (artManager == null) { + return Optional.empty(); + } + + try (PackageManagerLocal.FilteredSnapshot snapshot = + getPackageManagerLocal().withFilteredSnapshot()) { + PackageState ops = snapshot.getPackageState(options.getPackageName()); + if (ops == null) { + return Optional.of(PackageDexOptimizer.DEX_OPT_FAILED); + } + AndroidPackage oap = ops.getAndroidPackage(); + if (oap == null) { + return Optional.of(PackageDexOptimizer.DEX_OPT_FAILED); + } + if (oap.isApex()) { + return Optional.of(PackageDexOptimizer.DEX_OPT_SKIPPED); + } + + // TODO(b/245301593): Delete the conditional when ART Service supports + // FLAG_SHOULD_INCLUDE_DEPENDENCIES and we can just set it unconditionally. + /*@OptimizeFlags*/ int extraFlags = ops.getUsesLibraries().isEmpty() + ? 0 + : ArtFlags.FLAG_SHOULD_INCLUDE_DEPENDENCIES; + + OptimizeParams params = options.convertToOptimizeParams(extraFlags); + if (params == null) { + return Optional.empty(); + } + + // TODO(b/251903639): Either remove controlDexOptBlocking, or don't ignore it here. + OptimizeResult result; + try { + result = artManager.optimizePackage(snapshot, options.getPackageName(), params); + } catch (UnsupportedOperationException e) { + reportArtManagerFallback(options.getPackageName(), e.toString()); + return Optional.empty(); + } + + // TODO(b/251903639): Move this to ArtManagerLocal.addOptimizePackageDoneCallback when + // it is implemented. + for (OptimizeResult.PackageOptimizeResult pkgRes : result.getPackageOptimizeResults()) { + PackageState ps = snapshot.getPackageState(pkgRes.getPackageName()); + AndroidPackage ap = ps != null ? ps.getAndroidPackage() : null; + if (ap != null) { + CompilerStats.PackageStats stats = mPm.getOrCreateCompilerPackageStats(ap); + for (OptimizeResult.DexContainerFileOptimizeResult dexRes : + pkgRes.getDexContainerFileOptimizeResults()) { + stats.setCompileTime( + dexRes.getDexContainerFile(), dexRes.getDex2oatWallTimeMillis()); + } + } + } + + return Optional.of(convertToDexOptResult(result)); + } + } + + @DexOptResult + private int performDexOptInternalWithDependenciesLI( + AndroidPackage p, @NonNull PackageStateInternal pkgSetting, DexoptOptions options) { // System server gets a special path. if (PLATFORM_PACKAGE_NAME.equals(p.getPackageName())) { return mPm.getDexManager().dexoptSystemServer(options); @@ -514,10 +600,20 @@ final class DexOptHelper { // Whoever is calling forceDexOpt wants a compiled package. // Don't use profiles since that may cause compilation to be skipped. - final int res = performDexOptInternalWithDependenciesLI(pkg, packageState, - new DexoptOptions(packageName, REASON_CMDLINE, - getDefaultCompilerFilter(), null /* splitName */, - DexoptOptions.DEXOPT_FORCE | DexoptOptions.DEXOPT_BOOT_COMPLETE)); + DexoptOptions options = new DexoptOptions(packageName, REASON_CMDLINE, + getDefaultCompilerFilter(), null /* splitName */, + DexoptOptions.DEXOPT_FORCE | DexoptOptions.DEXOPT_BOOT_COMPLETE); + + // performDexOptWithArtService ignores the snapshot and takes its own, so it can race with + // the package checks above, but at worst the effect is only a bit less friendly error + // below. + Optional<Integer> artSrvRes = performDexOptWithArtService(options); + int res; + if (artSrvRes.isPresent()) { + res = artSrvRes.get(); + } else { + res = performDexOptInternalWithDependenciesLI(pkg, packageState, options); + } Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); if (res != PackageDexOptimizer.DEX_OPT_PERFORMED) { @@ -800,4 +896,59 @@ final class DexOptHelper { } return false; } + + private @NonNull PackageManagerLocal getPackageManagerLocal() { + try { + return LocalManagerRegistry.getManagerOrThrow(PackageManagerLocal.class); + } catch (ManagerNotFoundException e) { + throw new RuntimeException(e); + } + } + + /** + * Called whenever we need to fall back from ART Service to the legacy dexopt code. + */ + public static void reportArtManagerFallback(String packageName, String reason) { + // STOPSHIP(b/251903639): Minimize these calls to avoid platform getting shipped with code + // paths that will always bypass ART Service. + Slog.i(TAG, "Falling back to old PackageManager dexopt for " + packageName + ": " + reason); + } + + /** + * Returns {@link ArtManagerLocal} if one is found and should be used for package optimization. + */ + private @Nullable ArtManagerLocal getArtManagerLocal() { + if (!"true".equals(SystemProperties.get("dalvik.vm.useartservice", ""))) { + return null; + } + try { + return LocalManagerRegistry.getManagerOrThrow(ArtManagerLocal.class); + } catch (ManagerNotFoundException e) { + throw new RuntimeException(e); + } + } + + /** + * Converts an ART Service {@link OptimizeResult} to {@link DexOptResult}. + * + * For interfacing {@link ArtManagerLocal} with legacy dex optimization code in PackageManager. + */ + @DexOptResult + private static int convertToDexOptResult(OptimizeResult result) { + /*@OptimizeStatus*/ int status = result.getFinalStatus(); + switch (status) { + case OptimizeResult.OPTIMIZE_SKIPPED: + return PackageDexOptimizer.DEX_OPT_SKIPPED; + case OptimizeResult.OPTIMIZE_FAILED: + return PackageDexOptimizer.DEX_OPT_FAILED; + case OptimizeResult.OPTIMIZE_PERFORMED: + return PackageDexOptimizer.DEX_OPT_PERFORMED; + case OptimizeResult.OPTIMIZE_CANCELLED: + return PackageDexOptimizer.DEX_OPT_CANCELLED; + default: + throw new IllegalArgumentException("OptimizeResult for " + + result.getPackageOptimizeResults().get(0).getPackageName() + + " has unsupported status " + status); + } + } } diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index d25bca76245b..2a2410fd1767 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -652,12 +652,6 @@ public class PackageDexOptimizer { @DexOptResult private int dexOptSecondaryDexPathLI(ApplicationInfo info, String path, PackageDexUsage.DexUseInfo dexUseInfo, DexoptOptions options) { - if (options.isDexoptOnlySharedDex() && !dexUseInfo.isUsedByOtherApps()) { - // We are asked to optimize only the dex files used by other apps and this is not - // on of them: skip it. - return DEX_OPT_SKIPPED; - } - String compilerFilter = getRealCompilerFilter(info, options.getCompilerFilter(), dexUseInfo.isUsedByOtherApps()); // Get the dexopt flags after getRealCompilerFilter to make sure we get the correct flags. diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 8fed153825db..6e54d0bbd656 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -5242,25 +5242,30 @@ public class PackageManagerService implements PackageSender, TestUtilityService Map<String, String> classLoaderContextMap, String loaderIsa) { int callingUid = Binder.getCallingUid(); - if (PackageManagerService.PLATFORM_PACKAGE_NAME.equals(loadingPackageName) - && callingUid != Process.SYSTEM_UID) { + + // TODO(b/254043366): System server should not report its own dex load because there's + // nothing ART can do with it. + + Computer snapshot = snapshot(); + + // System server should be able to report dex load on behalf of other apps. E.g., it + // could potentially resend the notifications in order to migrate the existing dex load + // info to ART Service. + if (!PackageManagerServiceUtils.isSystemOrRoot() + && !snapshot.isCallerSameApp( + loadingPackageName, callingUid, true /* resolveIsolatedUid */)) { Slog.w(PackageManagerService.TAG, - "Non System Server process reporting dex loads as system server. uid=" - + callingUid); - // Do not record dex loads from processes pretending to be system server. - // Only the system server should be assigned the package "android", so reject calls - // that don't satisfy the constraint. - // - // notifyDexLoad is a PM API callable from the app process. So in theory, apps could - // craft calls to this API and pretend to be system server. Doing so poses no - // particular danger for dex load reporting or later dexopt, however it is a - // sensible check to do in order to verify the expectations. + TextUtils.formatSimple( + "Invalid dex load report. loadingPackageName=%s, uid=%d", + loadingPackageName, callingUid)); return; } + // TODO(b/254043366): Call `ArtManagerLocal.notifyDexLoad`. + int userId = UserHandle.getCallingUserId(); - ApplicationInfo ai = snapshot().getApplicationInfo(loadingPackageName, /*flags*/ 0, - userId); + ApplicationInfo ai = + snapshot.getApplicationInfo(loadingPackageName, /*flags*/ 0, userId); if (ai == null) { Slog.w(PackageManagerService.TAG, "Loading a package that does not exist for the calling user. package=" + loadingPackageName + ", user=" + userId); diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 60f247843bb7..21191919c8e0 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -2633,6 +2633,9 @@ public class UserManagerService extends IUserManager.Stub { /** @return a specific user restriction that's in effect currently. */ @Override public boolean hasUserRestriction(String restrictionKey, @UserIdInt int userId) { + if (!userExists(userId)) { + return false; + } checkManageOrInteractPermissionIfCallerInOtherProfileGroup(userId, "hasUserRestriction"); return mLocalService.hasUserRestriction(restrictionKey, userId); } @@ -5516,6 +5519,13 @@ public class UserManagerService extends IUserManager.Stub { private void removeUserState(final @UserIdInt int userId) { Slog.i(LOG_TAG, "Removing user state of user " + userId); + + // Cleanup lock settings. This must happen before destroyUserKey(), since the user's DE + // storage must still be accessible for the lock settings state to be properly cleaned up. + mLockPatternUtils.removeUser(userId); + + // Evict and destroy the user's CE and DE encryption keys. At this point, the user's CE and + // DE storage is made inaccessible, except to delete its contents. try { mContext.getSystemService(StorageManager.class).destroyUserKey(userId); } catch (IllegalStateException e) { @@ -5523,9 +5533,6 @@ public class UserManagerService extends IUserManager.Stub { Slog.i(LOG_TAG, "Destroying key for user " + userId + " failed, continuing anyway", e); } - // Cleanup lock settings - mLockPatternUtils.removeUser(userId); - // Cleanup package manager settings mPm.cleanUpUser(this, userId); diff --git a/services/core/java/com/android/server/pm/dex/ArtManagerService.java b/services/core/java/com/android/server/pm/dex/ArtManagerService.java index 6bc323e4444e..37f7ac2d5c82 100644 --- a/services/core/java/com/android/server/pm/dex/ArtManagerService.java +++ b/services/core/java/com/android/server/pm/dex/ArtManagerService.java @@ -339,6 +339,11 @@ public class ArtManagerService extends android.content.pm.dex.IArtManager.Stub { String classpath = String.join(":", Os.getenv("BOOTCLASSPATH"), Os.getenv("SYSTEMSERVERCLASSPATH")); + final String standaloneSystemServerJars = Os.getenv("STANDALONE_SYSTEMSERVER_JARS"); + if (standaloneSystemServerJars != null) { + classpath = String.join(":", classpath, standaloneSystemServerJars); + } + // Create the snapshot. createProfileSnapshot(BOOT_IMAGE_ANDROID_PACKAGE, BOOT_IMAGE_PROFILE_NAME, classpath, /*appId*/ -1, callback); diff --git a/services/core/java/com/android/server/pm/dex/DexoptOptions.java b/services/core/java/com/android/server/pm/dex/DexoptOptions.java index ea233161b4af..f5557c417f1b 100644 --- a/services/core/java/com/android/server/pm/dex/DexoptOptions.java +++ b/services/core/java/com/android/server/pm/dex/DexoptOptions.java @@ -18,6 +18,16 @@ package com.android.server.pm.dex; import static com.android.server.pm.PackageManagerServiceCompilerMapping.getCompilerFilterForReason; +import android.annotation.Nullable; + +import com.android.server.art.ReasonMapping; +import com.android.server.art.model.ArtFlags; +import com.android.server.art.model.OptimizeParams; +import com.android.server.pm.DexOptHelper; +import com.android.server.pm.PackageManagerService; + +import dalvik.system.DexFile; + /** * Options used for dexopt invocations. */ @@ -40,10 +50,6 @@ public final class DexoptOptions { // will only consider the primary apk. public static final int DEXOPT_ONLY_SECONDARY_DEX = 1 << 3; - // When set, dexopt will optimize only dex files that are used by other apps. - // Currently, this flag is ignored for primary apks. - public static final int DEXOPT_ONLY_SHARED_DEX = 1 << 4; - // When set, dexopt will attempt to scale down the optimizations previously applied in order // save disk space. public static final int DEXOPT_DOWNGRADE = 1 << 5; @@ -105,7 +111,6 @@ public final class DexoptOptions { DEXOPT_FORCE | DEXOPT_BOOT_COMPLETE | DEXOPT_ONLY_SECONDARY_DEX | - DEXOPT_ONLY_SHARED_DEX | DEXOPT_DOWNGRADE | DEXOPT_AS_SHARED_LIBRARY | DEXOPT_IDLE_BACKGROUND_JOB | @@ -146,10 +151,6 @@ public final class DexoptOptions { return (mFlags & DEXOPT_ONLY_SECONDARY_DEX) != 0; } - public boolean isDexoptOnlySharedDex() { - return (mFlags & DEXOPT_ONLY_SHARED_DEX) != 0; - } - public boolean isDowngrade() { return (mFlags & DEXOPT_DOWNGRADE) != 0; } @@ -198,4 +199,133 @@ public final class DexoptOptions { mSplitName, mFlags); } + + /** + * Returns an {@link OptimizeParams} instance corresponding to this object, for use with + * {@link com.android.server.art.ArtManagerLocal}. + * + * @param extraFlags extra {@link ArtFlags#OptimizeFlags} to set in the returned + * {@code OptimizeParams} beyond those converted from this object + * @return null if the settings cannot be accurately represented, and hence the old + * PackageManager/installd code paths need to be used. + */ + public @Nullable OptimizeParams convertToOptimizeParams(/*@OptimizeFlags*/ int extraFlags) { + if (mSplitName != null) { + DexOptHelper.reportArtManagerFallback( + mPackageName, "Request to optimize only split " + mSplitName); + return null; + } + + /*@OptimizeFlags*/ int flags = extraFlags; + if ((mFlags & DEXOPT_CHECK_FOR_PROFILES_UPDATES) == 0 + && DexFile.isProfileGuidedCompilerFilter(mCompilerFilter)) { + // ART Service doesn't support bypassing this, so not setting this flag is not + // supported. + DexOptHelper.reportArtManagerFallback(mPackageName, + "DEXOPT_CHECK_FOR_PROFILES_UPDATES not set with profile compiler filter"); + return null; + } + if ((mFlags & DEXOPT_FORCE) != 0) { + flags |= ArtFlags.FLAG_FORCE; + } + if ((mFlags & DEXOPT_ONLY_SECONDARY_DEX) != 0) { + flags |= ArtFlags.FLAG_FOR_SECONDARY_DEX; + } else { + flags |= ArtFlags.FLAG_FOR_PRIMARY_DEX; + } + if ((mFlags & DEXOPT_DOWNGRADE) != 0) { + flags |= ArtFlags.FLAG_SHOULD_DOWNGRADE; + } + if ((mFlags & DEXOPT_INSTALL_WITH_DEX_METADATA_FILE) == 0) { + // ART Service cannot be instructed to ignore a DM file if present, so not setting this + // flag is not supported. + DexOptHelper.reportArtManagerFallback( + mPackageName, "DEXOPT_INSTALL_WITH_DEX_METADATA_FILE not set"); + return null; + } + + /*@PriorityClassApi*/ int priority; + // Replicates logic in RunDex2Oat::PrepareCompilerRuntimeAndPerfConfigFlags in installd. + if ((mFlags & DEXOPT_BOOT_COMPLETE) != 0) { + if ((mFlags & DEXOPT_FOR_RESTORE) != 0) { + priority = ArtFlags.PRIORITY_INTERACTIVE_FAST; + } else { + // TODO(b/251903639): Repurpose DEXOPT_IDLE_BACKGROUND_JOB to choose new + // dalvik.vm.background-dex2oat-* properties. + priority = ArtFlags.PRIORITY_INTERACTIVE; + } + } else { + priority = ArtFlags.PRIORITY_BOOT; + } + + // The following flags in mFlags are ignored: + // + // - DEXOPT_AS_SHARED_LIBRARY: It's implicit with ART Service since it always looks at + // <uses-library> rather than actual dependencies. + // + // We don't require it to be set either. It's safe when switching between old and new + // code paths since the only effect is that some packages may be unnecessarily compiled + // without user profiles. + // + // - DEXOPT_IDLE_BACKGROUND_JOB: Its only effect is to allow the debug variant dex2oatd to + // be used, but ART Service never uses that (cf. Artd::GetDex2Oat in artd.cc). + + String reason; + switch (mCompilationReason) { + case PackageManagerService.REASON_FIRST_BOOT: + reason = ReasonMapping.REASON_FIRST_BOOT; + break; + case PackageManagerService.REASON_BOOT_AFTER_OTA: + reason = ReasonMapping.REASON_BOOT_AFTER_OTA; + break; + case PackageManagerService.REASON_POST_BOOT: + // This reason will go away with the legacy dexopt code. + DexOptHelper.reportArtManagerFallback( + mPackageName, "Unsupported compilation reason REASON_POST_BOOT"); + return null; + case PackageManagerService.REASON_INSTALL: + reason = ReasonMapping.REASON_INSTALL; + break; + case PackageManagerService.REASON_INSTALL_FAST: + reason = ReasonMapping.REASON_INSTALL_FAST; + break; + case PackageManagerService.REASON_INSTALL_BULK: + reason = ReasonMapping.REASON_INSTALL_BULK; + break; + case PackageManagerService.REASON_INSTALL_BULK_SECONDARY: + reason = ReasonMapping.REASON_INSTALL_BULK_SECONDARY; + break; + case PackageManagerService.REASON_INSTALL_BULK_DOWNGRADED: + reason = ReasonMapping.REASON_INSTALL_BULK_DOWNGRADED; + break; + case PackageManagerService.REASON_INSTALL_BULK_SECONDARY_DOWNGRADED: + reason = ReasonMapping.REASON_INSTALL_BULK_SECONDARY_DOWNGRADED; + break; + case PackageManagerService.REASON_BACKGROUND_DEXOPT: + reason = ReasonMapping.REASON_BG_DEXOPT; + break; + case PackageManagerService.REASON_INACTIVE_PACKAGE_DOWNGRADE: + reason = ReasonMapping.REASON_INACTIVE; + break; + case PackageManagerService.REASON_CMDLINE: + reason = ReasonMapping.REASON_CMDLINE; + break; + case PackageManagerService.REASON_SHARED: + case PackageManagerService.REASON_AB_OTA: + // REASON_SHARED shouldn't go into this code path - it's only used at lower levels + // in PackageDexOptimizer. + // TODO(b/251921228): OTA isn't supported, so REASON_AB_OTA shouldn't come this way + // either. + throw new UnsupportedOperationException( + "ART Service unsupported compilation reason " + mCompilationReason); + default: + throw new IllegalArgumentException( + "Invalid compilation reason " + mCompilationReason); + } + + return new OptimizeParams.Builder(reason, flags) + .setCompilerFilter(mCompilerFilter) + .setPriorityClass(priority) + .build(); + } } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index ae998067fa03..d39b64936bb3 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -2999,8 +2999,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { if ((metaState & KeyEvent.META_META_MASK) == 0) { return key_not_consumed; } - // Share the same behavior with KEYCODE_LANGUAGE_SWITCH. - case KeyEvent.KEYCODE_LANGUAGE_SWITCH: if (down && repeatCount == 0) { int direction = (metaState & KeyEvent.META_SHIFT_MASK) != 0 ? -1 : 1; mWindowManagerFuncs.switchKeyboardLayout(event.getDeviceId(), direction); diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 5abc875a697f..d8b1120c624d 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -42,8 +42,6 @@ import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.SynchronousUserSwitchObserver; -import android.compat.annotation.ChangeId; -import android.compat.annotation.EnabledSince; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; @@ -64,7 +62,6 @@ import android.os.BatteryManager; import android.os.BatteryManagerInternal; import android.os.BatterySaverPolicyConfig; import android.os.Binder; -import android.os.Build; import android.os.Handler; import android.os.HandlerExecutor; import android.os.IBinder; @@ -127,7 +124,6 @@ import com.android.server.UiThread; import com.android.server.UserspaceRebootLogger; import com.android.server.Watchdog; import com.android.server.am.BatteryStatsService; -import com.android.server.compat.PlatformCompat; import com.android.server.lights.LightsManager; import com.android.server.lights.LogicalLight; import com.android.server.policy.WindowManagerPolicy; @@ -284,17 +280,6 @@ public final class PowerManagerService extends SystemService */ private static final long ENHANCED_DISCHARGE_PREDICTION_BROADCAST_MIN_DELAY_MS = 60 * 1000L; - /** - * Apps targeting Android U and above need to define - * {@link android.Manifest.permission#TURN_SCREEN_ON} in their manifest for - * {@link android.os.PowerManager#ACQUIRE_CAUSES_WAKEUP} to have any effect. - * Note that most applications should use {@link android.R.attr#turnScreenOn} or - * {@link android.app.Activity#setTurnScreenOn(boolean)} instead, as this prevents the - * previous foreground app from being resumed first when the screen turns on. - */ - @ChangeId - @EnabledSince(targetSdkVersion = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) - public static final long REQUIRE_TURN_SCREEN_ON_PERMISSION = 216114297L; /** Reason ID for holding display suspend blocker. */ private static final String HOLDING_DISPLAY_SUSPEND_BLOCKER = "holding display"; @@ -318,7 +303,6 @@ public final class PowerManagerService extends SystemService private final SystemPropertiesWrapper mSystemProperties; private final Clock mClock; private final Injector mInjector; - private final PlatformCompat mPlatformCompat; private AppOpsManager mAppOpsManager; private LightsManager mLightsManager; @@ -1012,11 +996,6 @@ public final class PowerManagerService extends SystemService public void set(String key, String val) { SystemProperties.set(key, val); } - - @Override - public boolean getBoolean(String key, boolean def) { - return SystemProperties.getBoolean(key, def); - } }; } @@ -1053,10 +1032,6 @@ public final class PowerManagerService extends SystemService AppOpsManager createAppOpsManager(Context context) { return context.getSystemService(AppOpsManager.class); } - - PlatformCompat createPlatformCompat(Context context) { - return context.getSystemService(PlatformCompat.class); - } } final Constants mConstants; @@ -1114,8 +1089,6 @@ public final class PowerManagerService extends SystemService mAppOpsManager = injector.createAppOpsManager(mContext); - mPlatformCompat = injector.createPlatformCompat(mContext); - mPowerGroupWakefulnessChangeListener = new PowerGroupWakefulnessChangeListener(); // Save brightness values: @@ -1626,28 +1599,14 @@ public final class PowerManagerService extends SystemService } if (mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_TURN_SCREEN_ON, opUid, opPackageName) == AppOpsManager.MODE_ALLOWED) { - if (mPlatformCompat.isChangeEnabledByPackageName(REQUIRE_TURN_SCREEN_ON_PERMISSION, - opPackageName, UserHandle.getUserId(opUid))) { - if (mContext.checkCallingOrSelfPermission( - android.Manifest.permission.TURN_SCREEN_ON) - == PackageManager.PERMISSION_GRANTED) { - if (DEBUG_SPEW) { - Slog.d(TAG, "Allowing device wake-up from app " + opPackageName); - } - return true; - } - } else { - // android.permission.TURN_SCREEN_ON has only been introduced in Android U, only - // check for appOp for apps targeting lower SDK versions - if (DEBUG_SPEW) { - Slog.d(TAG, "Allowing device wake-up from app with " - + "REQUIRE_TURN_SCREEN_ON_PERMISSION disabled " + opPackageName); - } + if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.TURN_SCREEN_ON) + == PackageManager.PERMISSION_GRANTED) { + Slog.i(TAG, "Allowing device wake-up from app " + opPackageName); return true; } } - if (PowerProperties.permissionless_turn_screen_on().orElse(true)) { - Slog.d(TAG, "Device wake-up will be denied without android.permission.TURN_SCREEN_ON"); + if (PowerProperties.permissionless_turn_screen_on().orElse(false)) { + Slog.d(TAG, "Device wake-up allowed by debug.power.permissionless_turn_screen_on"); return true; } Slog.w(TAG, "Not allowing device wake-up for " + opPackageName); @@ -6768,6 +6727,11 @@ public final class PowerManagerService extends SystemService public void nap(long eventTime, boolean allowWake) { napInternal(eventTime, Process.SYSTEM_UID, allowWake); } + + @Override + public boolean isAmbientDisplaySuppressed() { + return mAmbientDisplaySuppressionController.isSuppressed(); + } } /** diff --git a/services/core/java/com/android/server/power/SystemPropertiesWrapper.java b/services/core/java/com/android/server/power/SystemPropertiesWrapper.java index c68f9c63b13b..1acf798eb099 100644 --- a/services/core/java/com/android/server/power/SystemPropertiesWrapper.java +++ b/services/core/java/com/android/server/power/SystemPropertiesWrapper.java @@ -48,19 +48,4 @@ interface SystemPropertiesWrapper { * SELinux. libc will log the underlying reason. */ void set(@NonNull String key, @Nullable String val); - - /** - * Get the value for the given {@code key}, returned as a boolean. - * Values 'n', 'no', '0', 'false' or 'off' are considered false. - * Values 'y', 'yes', '1', 'true' or 'on' are considered true. - * (case sensitive). - * If the key does not exist, or has any other value, then the default - * result is returned. - * - * @param key the key to lookup - * @param def a default value to return - * @return the key parsed as a boolean, or def if the key isn't found or is - * not able to be parsed as a boolean. - */ - boolean getBoolean(@NonNull String key, boolean def); } diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java index edd1ef36deda..ad1ff72f653c 100644 --- a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java +++ b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java @@ -946,8 +946,12 @@ public class TunerResourceManagerService extends SystemService implements IBinde int inUseLowestPriorityFrHandle = TunerResourceManager.INVALID_RESOURCE_HANDLE; // Priority max value is 1000 int currentLowestPriority = MAX_CLIENT_PRIORITY + 1; + // If the desired frontend id was specified, we only need to check the frontend. + boolean hasDesiredFrontend = request.desiredId != TunerFrontendRequest.DEFAULT_DESIRED_ID; for (FrontendResource fr : getFrontendResources().values()) { - if (fr.getType() == request.frontendType) { + int frontendId = getResourceIdFromHandle(fr.getHandle()); + if (fr.getType() == request.frontendType + && (!hasDesiredFrontend || frontendId == request.desiredId)) { if (!fr.isInUse()) { // Unused resource cannot be acquired if the max is already reached, but // TRM still has to look for the reclaim candidate diff --git a/services/core/java/com/android/server/vibrator/VibrationStepConductor.java b/services/core/java/com/android/server/vibrator/VibrationStepConductor.java index 8ac4fd4860bb..141be702ee13 100644 --- a/services/core/java/com/android/server/vibrator/VibrationStepConductor.java +++ b/services/core/java/com/android/server/vibrator/VibrationStepConductor.java @@ -65,6 +65,9 @@ final class VibrationStepConductor implements IBinder.DeathRecipient { public final DeviceVibrationEffectAdapter deviceEffectAdapter; public final VibrationThread.VibratorManagerHooks vibratorManagerHooks; + // Not guarded by lock because they're not modified by this conductor, it's used here only to + // check immutable attributes. The status and other mutable states are changed by the service or + // by the vibrator steps. private final Vibration mVibration; private final SparseArray<VibratorController> mVibrators = new SparseArray<>(); @@ -412,6 +415,16 @@ final class VibrationStepConductor implements IBinder.DeathRecipient { } } + /** Returns true if a cancellation signal was sent via {@link #notifyCancelled}. */ + public boolean wasNotifiedToCancel() { + if (Build.IS_DEBUGGABLE) { + expectIsVibrationThread(false); + } + synchronized (mLock) { + return mSignalCancel != null; + } + } + @GuardedBy("mLock") private boolean hasPendingNotifySignalLocked() { if (Build.IS_DEBUGGABLE) { diff --git a/services/core/java/com/android/server/vibrator/VibratorManagerService.java b/services/core/java/com/android/server/vibrator/VibratorManagerService.java index 8514e272e250..8613b5027d57 100644 --- a/services/core/java/com/android/server/vibrator/VibratorManagerService.java +++ b/services/core/java/com/android/server/vibrator/VibratorManagerService.java @@ -864,8 +864,8 @@ public class VibratorManagerService extends IVibratorManagerService.Stub { } Vibration currentVibration = mCurrentVibration.getVibration(); - if (currentVibration.hasEnded()) { - // Current vibration is finishing up, it should not block incoming vibrations. + if (currentVibration.hasEnded() || mCurrentVibration.wasNotifiedToCancel()) { + // Current vibration has ended or is cancelling, should not block incoming vibrations. return null; } diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index e197319707e3..5f420bfc7151 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -1166,7 +1166,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub try { connection.mService.attach(connection, mToken, TYPE_WALLPAPER, false, wpdData.mWidth, wpdData.mHeight, - wpdData.mPadding, mDisplayId); + wpdData.mPadding, mDisplayId, FLAG_SYSTEM | FLAG_LOCK); } catch (RemoteException e) { Slog.w(TAG, "Failed attaching wallpaper on display", e); if (wallpaper != null && !wallpaper.wallpaperUpdating diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java index 214a2c197a5c..3c457e1cc277 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java @@ -2578,6 +2578,9 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { // activity lifecycle transaction to make sure the override pending app // transition will be applied immediately. targetActivity.applyOptionsAnimation(); + if (activityOptions != null && activityOptions.getLaunchCookie() != null) { + targetActivity.mLaunchCookie = activityOptions.getLaunchCookie(); + } } finally { mActivityMetricsLogger.notifyActivityLaunched(launchingState, START_TASK_TO_FRONT, false /* newActivityCreated */, diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java index e9774479233d..30399ed15f7e 100644 --- a/services/core/java/com/android/server/wm/BackNavigationController.java +++ b/services/core/java/com/android/server/wm/BackNavigationController.java @@ -588,6 +588,7 @@ class BackNavigationController { ProtoLog.d(WM_DEBUG_BACK_PREVIEW, "Setting Activity.mLauncherTaskBehind to true. Activity=%s", activity); + activity.mTaskSupervisor.mStoppingActivities.remove(activity); activity.getDisplayContent().ensureActivitiesVisible(null /* starting */, 0 /* configChanges */, false /* preserveWindows */, true); } diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java index 32feb6c98b24..c206a15503de 100644 --- a/services/core/java/com/android/server/wm/WindowManagerInternal.java +++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java @@ -613,15 +613,6 @@ public abstract class WindowManagerInternal { @NonNull IBinder imeTargetWindowToken); /** - * Returns the presence of a software navigation bar on the specified display. - * - * @param displayId the id of display to check if there is a software navigation bar. - * @return {@code true} if there is a software navigation. {@code false} otherwise, including - * the case when the specified display does not exist. - */ - public abstract boolean hasNavigationBar(int displayId); - - /** * Returns true when the hardware keyboard is available. */ public abstract boolean isHardKeyboardAvailable(); diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index c17af3093e51..c9d3dac104de 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -7917,11 +7917,6 @@ public class WindowManagerService extends IWindowManager.Stub } @Override - public boolean hasNavigationBar(int displayId) { - return WindowManagerService.this.hasNavigationBar(displayId); - } - - @Override public boolean isHardKeyboardAvailable() { synchronized (mGlobalLock) { return mHardKeyboardAvailable; @@ -8703,11 +8698,12 @@ public class WindowManagerService extends IWindowManager.Stub h.ownerPid = callingPid; if (region == null) { - h.replaceTouchableRegionWithCrop = true; + h.replaceTouchableRegionWithCrop(null); } else { h.touchableRegion.set(region); + h.replaceTouchableRegionWithCrop = false; + h.setTouchableRegionCrop(surface); } - h.setTouchableRegionCrop(null /* use the input surface's bounds */); final SurfaceControl.Transaction t = mTransactionFactory.get(); t.setInputWindowInfo(surface, h); diff --git a/services/core/jni/com_android_server_SystemServer.cpp b/services/core/jni/com_android_server_SystemServer.cpp index bfd80054ffd2..b171a075578c 100644 --- a/services/core/jni/com_android_server_SystemServer.cpp +++ b/services/core/jni/com_android_server_SystemServer.cpp @@ -109,8 +109,13 @@ static void android_server_SystemServer_startHidlServices(JNIEnv* env, jobject / LOG_ALWAYS_FATAL_IF(env->GetJavaVM(&vm) != JNI_OK, "Cannot get Java VM"); sp<ISensorManager> sensorService = new SensorManager(vm); - err = sensorService->registerAsService(); - LOG_ALWAYS_FATAL_IF(err != OK, "Cannot register %s: %d", ISensorManager::descriptor, err); + if (IServiceManager::Transport::HWBINDER == + hardware::defaultServiceManager1_2()->getTransport(ISensorManager::descriptor, "default")) { + err = sensorService->registerAsService(); + LOG_ALWAYS_FATAL_IF(err != OK, "Cannot register %s: %d", ISensorManager::descriptor, err); + } else { + ALOGW("%s is deprecated. Skipping registration.", ISensorManager::descriptor); + } sp<ISchedulingPolicyService> schedulingService = new SchedulingPolicyService(); if (IServiceManager::Transport::HWBINDER == diff --git a/services/core/jni/gnss/AGnssRil.cpp b/services/core/jni/gnss/AGnssRil.cpp index 424ffd463713..34e4976dcca0 100644 --- a/services/core/jni/gnss/AGnssRil.cpp +++ b/services/core/jni/gnss/AGnssRil.cpp @@ -55,13 +55,13 @@ jboolean AGnssRil::setRefLocation(jint type, jint mcc, jint mnc, jint lac, jlong case IAGnssRil::AGnssRefLocationType::UMTS_CELLID: case IAGnssRil::AGnssRefLocationType::LTE_CELLID: case IAGnssRil::AGnssRefLocationType::NR_CELLID: - location.cellID.mcc = mcc; - location.cellID.mnc = mnc; - location.cellID.lac = lac; - location.cellID.cid = cid; - location.cellID.tac = tac; - location.cellID.pcid = pcid; - location.cellID.arfcn = arfcn; + location.cellID.mcc = static_cast<int>(mcc); + location.cellID.mnc = static_cast<int>(mnc); + location.cellID.lac = static_cast<int>(lac); + location.cellID.cid = static_cast<long>(cid); + location.cellID.tac = static_cast<int>(tac); + location.cellID.pcid = static_cast<int>(pcid); + location.cellID.arfcn = static_cast<int>(arfcn); break; default: ALOGE("Unknown cellid (%s:%d).", __FUNCTION__, __LINE__); @@ -106,20 +106,24 @@ jboolean AGnssRil_V1_0::setSetId(jint type, const jstring& setid_string) { return checkHidlReturn(result, "IAGnssRil_V1_0 setSetId() failed."); } -jboolean AGnssRil_V1_0::setRefLocation(jint type, jint mcc, jint mnc, jint lac, jlong cid, jint, - jint, jint) { +jboolean AGnssRil_V1_0::setRefLocation(jint type, jint mcc, jint mnc, jint lac, jlong cid, jint tac, + jint pcid, jint) { IAGnssRil_V1_0::AGnssRefLocation location; - switch (static_cast<IAGnssRil_V1_0::AGnssRefLocationType>(type)) { + location.type = static_cast<IAGnssRil_V1_0::AGnssRefLocationType>(type); + + switch (location.type) { case IAGnssRil_V1_0::AGnssRefLocationType::GSM_CELLID: case IAGnssRil_V1_0::AGnssRefLocationType::UMTS_CELLID: - location.type = static_cast<IAGnssRil_V1_0::AGnssRefLocationType>(type); - location.cellID.mcc = mcc; - location.cellID.mnc = mnc; - location.cellID.lac = lac; - location.cellID.cid = cid; + case IAGnssRil_V1_0::AGnssRefLocationType::LTE_CELLID: + location.cellID.mcc = static_cast<uint16_t>(mcc); + location.cellID.mnc = static_cast<uint16_t>(mnc); + location.cellID.lac = static_cast<uint16_t>(lac); + location.cellID.cid = static_cast<uint32_t>(cid); + location.cellID.tac = static_cast<uint16_t>(tac); + location.cellID.pcid = static_cast<uint16_t>(pcid); break; default: - ALOGE("Neither a GSM nor a UMTS cellid (%s:%d).", __FUNCTION__, __LINE__); + ALOGE("Unknown cellid (%s:%d).", __FUNCTION__, __LINE__); return JNI_FALSE; break; } diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java b/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java index f45f62682f1c..aa19241e77dd 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java @@ -17,6 +17,11 @@ package com.android.server.credentials; import android.annotation.NonNull; +import android.app.AppGlobals; +import android.content.ComponentName; +import android.content.pm.PackageManager; +import android.content.pm.ServiceInfo; +import android.os.RemoteException; import android.util.Log; import com.android.server.infra.AbstractPerUserSystemService; @@ -24,7 +29,7 @@ import com.android.server.infra.AbstractPerUserSystemService; /** * Per-user implementation of {@link CredentialManagerService} */ -public class CredentialManagerServiceImpl extends +public final class CredentialManagerServiceImpl extends AbstractPerUserSystemService<CredentialManagerServiceImpl, CredentialManagerService> { private static final String TAG = "CredManSysServiceImpl"; @@ -34,6 +39,20 @@ public class CredentialManagerServiceImpl extends super(master, lock, userId); } + @Override // from PerUserSystemService + protected ServiceInfo newServiceInfoLocked(@NonNull ComponentName serviceComponent) + throws PackageManager.NameNotFoundException { + ServiceInfo si; + try { + si = AppGlobals.getPackageManager().getServiceInfo(serviceComponent, + PackageManager.GET_META_DATA, mUserId); + } catch (RemoteException e) { + throw new PackageManager.NameNotFoundException( + "Could not get service for " + serviceComponent); + } + return si; + } + /** * Unimplemented getCredentials */ diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java index 86915da75467..b7e66f23a706 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java @@ -39,6 +39,8 @@ import android.app.AppOpsManager; import android.app.BroadcastOptions; import android.content.Intent; import android.content.IntentFilter; +import android.media.AudioManager; +import android.os.Bundle; import android.os.HandlerThread; import android.os.UserHandle; import android.provider.Settings; @@ -140,7 +142,7 @@ public class BroadcastQueueModernImplTest { private BroadcastRecord makeBroadcastRecord(Intent intent, BroadcastOptions options, List receivers, boolean ordered) { return new BroadcastRecord(mImpl, intent, mProcess, PACKAGE_RED, null, 21, 42, false, null, - null, null, null, AppOpsManager.OP_NONE, options, receivers, null, + null, null, null, AppOpsManager.OP_NONE, options, receivers, null, null, Activity.RESULT_OK, null, null, ordered, false, false, UserHandle.USER_SYSTEM, false, null, false, null); } @@ -289,20 +291,30 @@ public class BroadcastQueueModernImplTest { final BroadcastProcessQueue queue = new BroadcastProcessQueue(mConstants, PACKAGE_GREEN, getUidForPackage(PACKAGE_GREEN)); + // enqueue a bg-priority broadcast then a fg-priority one + final Intent timezone = new Intent(Intent.ACTION_TIMEZONE_CHANGED); + final BroadcastRecord timezoneRecord = makeBroadcastRecord(timezone); + queue.enqueueOrReplaceBroadcast(timezoneRecord, 0, 0); + final Intent airplane = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); airplane.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); final BroadcastRecord airplaneRecord = makeBroadcastRecord(airplane); queue.enqueueOrReplaceBroadcast(airplaneRecord, 0, 0); + // verify that: + // (a) the queue is immediately runnable by existence of a fg-priority broadcast + // (b) the next one up is the fg-priority broadcast despite its later enqueue time queue.setProcessCached(false); assertTrue(queue.isRunnable()); assertEquals(airplaneRecord.enqueueTime, queue.getRunnableAt()); assertEquals(ProcessList.SCHED_GROUP_DEFAULT, queue.getPreferredSchedulingGroupLocked()); + assertEquals(queue.peekNextBroadcastRecord(), airplaneRecord); queue.setProcessCached(true); assertTrue(queue.isRunnable()); assertEquals(airplaneRecord.enqueueTime, queue.getRunnableAt()); assertEquals(ProcessList.SCHED_GROUP_DEFAULT, queue.getPreferredSchedulingGroupLocked()); + assertEquals(queue.peekNextBroadcastRecord(), airplaneRecord); } /** @@ -386,4 +398,86 @@ public class BroadcastQueueModernImplTest { assertEquals(Intent.ACTION_SCREEN_OFF, queue.getActive().intent.getAction()); assertTrue(queue.isEmpty()); } + + /** + * Verify that sending a broadcast with DELIVERY_GROUP_POLICY_MOST_RECENT works as expected. + */ + @Test + public void testDeliveryGroupPolicy_mostRecent() { + final Intent timeTick = new Intent(Intent.ACTION_TIME_TICK); + final BroadcastOptions optionsTimeTick = BroadcastOptions.makeBasic(); + optionsTimeTick.setDeliveryGroupPolicy(BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT); + + final Intent musicVolumeChanged = new Intent(AudioManager.VOLUME_CHANGED_ACTION); + musicVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, + AudioManager.STREAM_MUSIC); + final BroadcastOptions optionsMusicVolumeChanged = BroadcastOptions.makeBasic(); + optionsMusicVolumeChanged.setDeliveryGroupPolicy( + BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT); + optionsMusicVolumeChanged.setDeliveryGroupKey("audio", + String.valueOf(AudioManager.STREAM_MUSIC)); + + final Intent alarmVolumeChanged = new Intent(AudioManager.VOLUME_CHANGED_ACTION); + alarmVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, + AudioManager.STREAM_ALARM); + final BroadcastOptions optionsAlarmVolumeChanged = BroadcastOptions.makeBasic(); + optionsAlarmVolumeChanged.setDeliveryGroupPolicy( + BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT); + optionsAlarmVolumeChanged.setDeliveryGroupKey("audio", + String.valueOf(AudioManager.STREAM_ALARM)); + + // Halt all processing so that we get a consistent view + mHandlerThread.getLooper().getQueue().postSyncBarrier(); + + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(timeTick, optionsTimeTick)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(musicVolumeChanged, + optionsMusicVolumeChanged)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(alarmVolumeChanged, + optionsAlarmVolumeChanged)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(musicVolumeChanged, + optionsMusicVolumeChanged)); + + final BroadcastProcessQueue queue = mImpl.getProcessQueue(PACKAGE_GREEN, + getUidForPackage(PACKAGE_GREEN)); + // Verify that the older musicVolumeChanged has been removed. + verifyPendingRecords(queue, + List.of(timeTick, alarmVolumeChanged, musicVolumeChanged)); + + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(timeTick, optionsTimeTick)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(alarmVolumeChanged, + optionsAlarmVolumeChanged)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(musicVolumeChanged, + optionsMusicVolumeChanged)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(alarmVolumeChanged, + optionsAlarmVolumeChanged)); + // Verify that the older alarmVolumeChanged has been removed. + verifyPendingRecords(queue, + List.of(timeTick, musicVolumeChanged, alarmVolumeChanged)); + + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(timeTick, optionsTimeTick)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(musicVolumeChanged, + optionsMusicVolumeChanged)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(alarmVolumeChanged, + optionsAlarmVolumeChanged)); + mImpl.enqueueBroadcastLocked(makeBroadcastRecord(timeTick, optionsTimeTick)); + // Verify that the older timeTick has been removed. + verifyPendingRecords(queue, + List.of(musicVolumeChanged, alarmVolumeChanged, timeTick)); + } + + private void verifyPendingRecords(BroadcastProcessQueue queue, + List<Intent> intents) { + for (int i = 0; i < intents.size(); i++) { + queue.makeActiveNextPending(); + final Intent actualIntent = queue.getActive().intent; + final Intent expectedIntent = intents.get(i); + final String errMsg = "actual=" + actualIntent + ", expected=" + expectedIntent + + ", actual_extras=" + actualIntent.getExtras() + + ", expected_extras=" + expectedIntent.getExtras(); + assertTrue(errMsg, actualIntent.filterEquals(expectedIntent)); + assertTrue(errMsg, Bundle.kindofEquals( + actualIntent.getExtras(), expectedIntent.getExtras())); + } + assertTrue(queue.isEmpty()); + } } diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java index 076fce959a77..d9a26c68f3ed 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java @@ -113,6 +113,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; import java.util.function.UnaryOperator; /** @@ -154,10 +155,11 @@ public class BroadcastQueueTest { private BroadcastQueue mQueue; /** - * When enabled {@link ActivityManagerService#startProcessLocked} will fail - * by returning {@code null}; otherwise it will spawn a new mock process. + * Desired behavior of the next + * {@link ActivityManagerService#startProcessLocked} call. */ - private boolean mFailStartProcess; + private AtomicReference<ProcessStartBehavior> mNextProcessStartBehavior = new AtomicReference<>( + ProcessStartBehavior.SUCCESS); /** * Map from PID to registered registered runtime receivers. @@ -216,16 +218,46 @@ public class BroadcastQueueTest { doAnswer((invocation) -> { Log.v(TAG, "Intercepting startProcessLocked() for " + Arrays.toString(invocation.getArguments())); - if (mFailStartProcess) { + final ProcessStartBehavior behavior = mNextProcessStartBehavior + .getAndSet(ProcessStartBehavior.SUCCESS); + if (behavior == ProcessStartBehavior.FAIL_NULL) { return null; } final String processName = invocation.getArgument(0); final ApplicationInfo ai = invocation.getArgument(1); final ProcessRecord res = makeActiveProcessRecord(ai, processName, ProcessBehavior.NORMAL, UnaryOperator.identity()); + final ProcessRecord deliverRes; + switch (behavior) { + case SUCCESS_PREDECESSOR: + case FAIL_TIMEOUT_PREDECESSOR: + // Create a different process that will be linked to the + // returned process via a predecessor/successor relationship + mActiveProcesses.remove(res); + deliverRes = makeActiveProcessRecord(ai, processName, + ProcessBehavior.NORMAL, UnaryOperator.identity()); + deliverRes.mPredecessor = res; + res.mSuccessor = deliverRes; + break; + default: + deliverRes = res; + break; + } mHandlerThread.getThreadHandler().post(() -> { synchronized (mAms) { - mQueue.onApplicationAttachedLocked(res); + switch (behavior) { + case SUCCESS: + case SUCCESS_PREDECESSOR: + mQueue.onApplicationAttachedLocked(deliverRes); + break; + case FAIL_TIMEOUT: + case FAIL_TIMEOUT_PREDECESSOR: + mActiveProcesses.remove(deliverRes); + mQueue.onApplicationTimeoutLocked(deliverRes); + break; + default: + throw new UnsupportedOperationException(); + } } }); return res; @@ -281,9 +313,10 @@ public class BroadcastQueueTest { // Verify that all processes have finished handling broadcasts for (ProcessRecord app : mActiveProcesses) { - assertTrue(app.toShortString(), app.mReceivers.numberOfCurReceivers() == 0); - assertTrue(app.toShortString(), mQueue.getPreferredSchedulingGroupLocked(app) - == ProcessList.SCHED_GROUP_UNDEFINED); + assertEquals(app.toShortString(), 0, + app.mReceivers.numberOfCurReceivers()); + assertEquals(app.toShortString(), ProcessList.SCHED_GROUP_UNDEFINED, + mQueue.getPreferredSchedulingGroupLocked(app)); } } @@ -325,6 +358,19 @@ public class BroadcastQueueTest { } } + private enum ProcessStartBehavior { + /** Process starts successfully */ + SUCCESS, + /** Process starts successfully via predecessor */ + SUCCESS_PREDECESSOR, + /** Process fails by reporting timeout */ + FAIL_TIMEOUT, + /** Process fails by reporting timeout via predecessor */ + FAIL_TIMEOUT_PREDECESSOR, + /** Process fails by immediately returning null */ + FAIL_NULL, + } + private enum ProcessBehavior { /** Process broadcasts normally */ NORMAL, @@ -503,12 +549,6 @@ public class BroadcastQueueTest { receivers, false, null, null, userId); } - private BroadcastRecord makeOrderedBroadcastRecord(Intent intent, ProcessRecord callerApp, - List<Object> receivers, IIntentReceiver orderedResultTo, Bundle orderedExtras) { - return makeBroadcastRecord(intent, callerApp, BroadcastOptions.makeBasic(), - receivers, true, orderedResultTo, orderedExtras, UserHandle.USER_SYSTEM); - } - private BroadcastRecord makeBroadcastRecord(Intent intent, ProcessRecord callerApp, BroadcastOptions options, List<Object> receivers) { return makeBroadcastRecord(intent, callerApp, options, @@ -516,12 +556,24 @@ public class BroadcastQueueTest { } private BroadcastRecord makeBroadcastRecord(Intent intent, ProcessRecord callerApp, + List<Object> receivers, IIntentReceiver resultTo) { + return makeBroadcastRecord(intent, callerApp, BroadcastOptions.makeBasic(), + receivers, false, resultTo, null, UserHandle.USER_SYSTEM); + } + + private BroadcastRecord makeOrderedBroadcastRecord(Intent intent, ProcessRecord callerApp, + List<Object> receivers, IIntentReceiver resultTo, Bundle resultExtras) { + return makeBroadcastRecord(intent, callerApp, BroadcastOptions.makeBasic(), + receivers, true, resultTo, resultExtras, UserHandle.USER_SYSTEM); + } + + private BroadcastRecord makeBroadcastRecord(Intent intent, ProcessRecord callerApp, BroadcastOptions options, List<Object> receivers, boolean ordered, - IIntentReceiver orderedResultTo, Bundle orderedExtras, int userId) { + IIntentReceiver resultTo, Bundle resultExtras, int userId) { return new BroadcastRecord(mQueue, intent, callerApp, callerApp.info.packageName, null, callerApp.getPid(), callerApp.info.uid, false, null, null, null, null, - AppOpsManager.OP_NONE, options, receivers, orderedResultTo, Activity.RESULT_OK, - null, orderedExtras, ordered, false, false, userId, false, null, + AppOpsManager.OP_NONE, options, receivers, callerApp, resultTo, + Activity.RESULT_OK, null, resultExtras, ordered, false, false, userId, false, null, false, null); } @@ -956,18 +1008,16 @@ public class BroadcastQueueTest { final ProcessRecord callerApp = makeActiveProcessRecord(PACKAGE_RED); // Send broadcast while process starts are failing - mFailStartProcess = true; + mNextProcessStartBehavior.set(ProcessStartBehavior.FAIL_NULL); final Intent airplane = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); enqueueBroadcast(makeBroadcastRecord(airplane, callerApp, - List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN), - makeManifestReceiver(PACKAGE_YELLOW, CLASS_YELLOW)))); + List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN)))); // Confirm that queue goes idle, with no processes waitForIdle(); assertEquals(1, mActiveProcesses.size()); // Send more broadcasts with working process starts - mFailStartProcess = false; final Intent timezone = new Intent(Intent.ACTION_TIMEZONE_CHANGED); enqueueBroadcast(makeBroadcastRecord(timezone, callerApp, List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN), @@ -981,7 +1031,6 @@ public class BroadcastQueueTest { final ProcessRecord receiverYellowApp = mAms.getProcessRecordLocked(PACKAGE_YELLOW, getUidForPackage(PACKAGE_YELLOW)); verifyScheduleReceiver(never(), receiverGreenApp, airplane); - verifyScheduleReceiver(never(), receiverYellowApp, airplane); verifyScheduleReceiver(times(1), receiverGreenApp, timezone); verifyScheduleReceiver(times(1), receiverYellowApp, timezone); } @@ -1071,6 +1120,52 @@ public class BroadcastQueueTest { new ComponentName(PACKAGE_GREEN, CLASS_GREEN)); } + @Test + public void testCold_Success() throws Exception { + doCold(ProcessStartBehavior.SUCCESS); + } + + @Test + public void testCold_Success_Predecessor() throws Exception { + doCold(ProcessStartBehavior.SUCCESS_PREDECESSOR); + } + + @Test + public void testCold_Fail_Null() throws Exception { + doCold(ProcessStartBehavior.FAIL_NULL); + } + + @Test + public void testCold_Fail_Timeout() throws Exception { + doCold(ProcessStartBehavior.FAIL_TIMEOUT); + } + + @Test + public void testCold_Fail_Timeout_Predecessor() throws Exception { + doCold(ProcessStartBehavior.FAIL_TIMEOUT_PREDECESSOR); + } + + private void doCold(ProcessStartBehavior behavior) throws Exception { + final ProcessRecord callerApp = makeActiveProcessRecord(PACKAGE_RED); + + mNextProcessStartBehavior.set(behavior); + final Intent airplane = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); + enqueueBroadcast(makeBroadcastRecord(airplane, callerApp, + List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN)))); + waitForIdle(); + + // Regardless of success/failure of above, we should always be able to + // recover and begin sending future broadcasts + final Intent timezone = new Intent(Intent.ACTION_TIMEZONE_CHANGED); + enqueueBroadcast(makeBroadcastRecord(timezone, callerApp, + List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN)))); + waitForIdle(); + + final ProcessRecord receiverApp = mAms.getProcessRecordLocked(PACKAGE_GREEN, + getUidForPackage(PACKAGE_GREEN)); + verifyScheduleReceiver(receiverApp, timezone); + } + /** * Verify that we skip broadcasts to an app being backed up. */ @@ -1258,6 +1353,26 @@ public class BroadcastQueueTest { } /** + * Verify that we deliver results for unordered broadcasts. + */ + @Test + public void testUnordered_ResultTo() throws Exception { + final ProcessRecord callerApp = makeActiveProcessRecord(PACKAGE_RED); + final IApplicationThread callerThread = callerApp.getThread(); + + final IIntentReceiver resultTo = mock(IIntentReceiver.class); + final Intent airplane = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); + enqueueBroadcast(makeBroadcastRecord(airplane, callerApp, + List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN), + makeManifestReceiver(PACKAGE_BLUE, CLASS_BLUE)), resultTo)); + + waitForIdle(); + verify(callerThread).scheduleRegisteredReceiver(any(), argThat(filterEquals(airplane)), + eq(Activity.RESULT_OK), any(), any(), eq(false), + anyBoolean(), eq(UserHandle.USER_SYSTEM), anyInt()); + } + + /** * Verify that we're not surprised by a process attempting to finishing a * broadcast when none is in progress. */ @@ -1277,8 +1392,8 @@ public class BroadcastQueueTest { final BroadcastRecord r = new BroadcastRecord(mQueue, intent, callerApp, callerApp.info.packageName, null, callerApp.getPid(), callerApp.info.uid, false, null, null, null, null, AppOpsManager.OP_NONE, BroadcastOptions.makeBasic(), - List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN)), null, Activity.RESULT_OK, - null, null, false, false, false, UserHandle.USER_SYSTEM, true, + List.of(makeManifestReceiver(PACKAGE_GREEN, CLASS_GREEN)), null, null, + Activity.RESULT_OK, null, null, false, false, false, UserHandle.USER_SYSTEM, true, backgroundActivityStartsToken, false, null); enqueueBroadcast(r); diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastRecordTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastRecordTest.java index 161dfa0566fd..11573c57b382 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastRecordTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastRecordTest.java @@ -525,6 +525,7 @@ public class BroadcastRecordTest { 0 /* appOp */, null /* options */, new ArrayList<>(receivers), // Make a copy to not affect the original list. + null /* resultToApp */, null /* resultTo */, 0 /* resultCode */, null /* resultData */, diff --git a/services/tests/servicestests/src/com/android/server/backup/transport/BackupTransportClientTest.java b/services/tests/servicestests/src/com/android/server/backup/transport/BackupTransportClientTest.java index 581a2a71a9b6..2d7d46f83c47 100644 --- a/services/tests/servicestests/src/com/android/server/backup/transport/BackupTransportClientTest.java +++ b/services/tests/servicestests/src/com/android/server/backup/transport/BackupTransportClientTest.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import android.app.backup.BackupTransport; +import android.app.backup.IBackupManagerMonitor; import android.app.backup.RestoreDescription; import android.app.backup.RestoreSet; import android.content.Intent; @@ -254,6 +255,9 @@ public class BackupTransportClientTest { ITransportStatusCallback c) throws RemoteException {} @Override public void abortFullRestore(ITransportStatusCallback c) throws RemoteException {} @Override public void getTransportFlags(AndroidFuture<Integer> f) throws RemoteException {} + @Override + public void getBackupManagerMonitor(AndroidFuture<IBackupManagerMonitor> resultFuture) + throws RemoteException {} @Override public IBinder asBinder() { return null; } diff --git a/services/tests/servicestests/src/com/android/server/biometrics/log/BiometricContextProviderTest.java b/services/tests/servicestests/src/com/android/server/biometrics/log/BiometricContextProviderTest.java index dd7aeb72f7d2..58f338c7a5bb 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/log/BiometricContextProviderTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/log/BiometricContextProviderTest.java @@ -74,7 +74,7 @@ public class BiometricContextProviderTest { public void setup() throws RemoteException { when(mAmbientDisplayConfiguration.alwaysOnEnabled(anyInt())).thenReturn(true); mProvider = new BiometricContextProvider(mAmbientDisplayConfiguration, mStatusBarService, - null /* handler */); + null /* handler */, null /* authSessionCoordinator */); ArgumentCaptor<IBiometricContextListener> captor = ArgumentCaptor.forClass(IBiometricContextListener.class); verify(mStatusBarService).setBiometicContextListener(captor.capture()); diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthResultCoordinatorTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthResultCoordinatorTest.java index 47b4bf547ff8..c5a855732e0a 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthResultCoordinatorTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthResultCoordinatorTest.java @@ -16,6 +16,10 @@ package com.android.server.biometrics.sensors; +import static com.android.server.biometrics.sensors.AuthResultCoordinator.AUTHENTICATOR_DEFAULT; +import static com.android.server.biometrics.sensors.AuthResultCoordinator.AUTHENTICATOR_LOCKED; +import static com.android.server.biometrics.sensors.AuthResultCoordinator.AUTHENTICATOR_UNLOCKED; + import static com.google.common.truth.Truth.assertThat; import android.hardware.biometrics.BiometricManager; @@ -23,6 +27,8 @@ import android.hardware.biometrics.BiometricManager; import org.junit.Before; import org.junit.Test; +import java.util.Map; + public class AuthResultCoordinatorTest { private AuthResultCoordinator mAuthResultCoordinator; @@ -33,62 +39,107 @@ public class AuthResultCoordinatorTest { @Test public void testDefaultMessage() { - checkResult(mAuthResultCoordinator.getResult(), - AuthResult.FAILED, - BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE); + final Map<Integer, Integer> authMap = mAuthResultCoordinator.getResult(); + + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_STRONG)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_WEAK)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE)).isEqualTo( + AUTHENTICATOR_DEFAULT); } @Test public void testSingleMessageCoordinator() { mAuthResultCoordinator.authenticatedFor( BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE); - checkResult(mAuthResultCoordinator.getResult(), - AuthResult.AUTHENTICATED, - BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE); + + final Map<Integer, Integer> authMap = mAuthResultCoordinator.getResult(); + + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_STRONG)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_WEAK)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE)).isEqualTo( + AUTHENTICATOR_UNLOCKED); } @Test public void testLockout() { mAuthResultCoordinator.lockedOutFor( BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE); - checkResult(mAuthResultCoordinator.getResult(), - AuthResult.LOCKED_OUT, - BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE); + + final Map<Integer, Integer> authMap = mAuthResultCoordinator.getResult(); + + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_STRONG)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_WEAK)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE)).isEqualTo( + AUTHENTICATOR_LOCKED); } @Test - public void testHigherStrengthPrecedence() { + public void testConvenientLockout() { mAuthResultCoordinator.authenticatedFor( BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE); + + Map<Integer, Integer> authMap = mAuthResultCoordinator.getResult(); + + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_STRONG)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_WEAK)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE)).isEqualTo( + AUTHENTICATOR_UNLOCKED); + } + + @Test + public void testWeakLockout() { mAuthResultCoordinator.authenticatedFor( BiometricManager.Authenticators.BIOMETRIC_WEAK); - checkResult(mAuthResultCoordinator.getResult(), - AuthResult.AUTHENTICATED, - BiometricManager.Authenticators.BIOMETRIC_WEAK); + Map<Integer, Integer> authMap = mAuthResultCoordinator.getResult(); + + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_STRONG)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_WEAK)).isEqualTo( + AUTHENTICATOR_UNLOCKED); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE)).isEqualTo( + AUTHENTICATOR_UNLOCKED); + } + + @Test + public void testStrongLockout() { mAuthResultCoordinator.authenticatedFor( BiometricManager.Authenticators.BIOMETRIC_STRONG); - checkResult(mAuthResultCoordinator.getResult(), - AuthResult.AUTHENTICATED, - BiometricManager.Authenticators.BIOMETRIC_STRONG); + + final Map<Integer, Integer> authMap = mAuthResultCoordinator.getResult(); + + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_STRONG)).isEqualTo( + AUTHENTICATOR_UNLOCKED); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_WEAK)).isEqualTo( + AUTHENTICATOR_UNLOCKED); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE)).isEqualTo( + AUTHENTICATOR_UNLOCKED); } @Test - public void testAuthPrecedence() { + public void testAuthAndLockout() { mAuthResultCoordinator.authenticatedFor( BiometricManager.Authenticators.BIOMETRIC_WEAK); mAuthResultCoordinator.lockedOutFor( BiometricManager.Authenticators.BIOMETRIC_WEAK); - checkResult(mAuthResultCoordinator.getResult(), - AuthResult.AUTHENTICATED, - BiometricManager.Authenticators.BIOMETRIC_WEAK); - } + final Map<Integer, Integer> authMap = mAuthResultCoordinator.getResult(); + + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_STRONG)).isEqualTo( + AUTHENTICATOR_DEFAULT); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_WEAK)).isEqualTo( + AUTHENTICATOR_UNLOCKED | AUTHENTICATOR_LOCKED); + assertThat(authMap.get(BiometricManager.Authenticators.BIOMETRIC_CONVENIENCE)).isEqualTo( + AUTHENTICATOR_UNLOCKED | AUTHENTICATOR_LOCKED); - void checkResult(AuthResult res, int status, - @BiometricManager.Authenticators.Types int strength) { - assertThat(res.getStatus()).isEqualTo(status); - assertThat(res.getBiometricStrength()).isEqualTo(strength); } } diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java index 9bb0f58db520..6e4487548d64 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/AuthSessionCoordinatorTest.java @@ -22,12 +22,18 @@ import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMET import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.when; + import android.platform.test.annotations.Presubmit; import androidx.test.filters.SmallTest; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.time.Clock; @Presubmit @SmallTest @@ -36,20 +42,51 @@ public class AuthSessionCoordinatorTest { private static final int SECONDARY_USER = 10; private AuthSessionCoordinator mCoordinator; + @Mock + private Clock mClock; @Before public void setUp() throws Exception { - mCoordinator = new AuthSessionCoordinator(); + MockitoAnnotations.initMocks(this); + when(mClock.millis()).thenReturn(0L); + mCoordinator = new AuthSessionCoordinator(mClock); } @Test public void testUserUnlocked() { + mCoordinator.authStartedFor(PRIMARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.lockedOutFor(PRIMARY_USER, BIOMETRIC_STRONG, 1 /* sensorId */, + 0 /* requestId */); + assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); - mCoordinator.authStartedFor(PRIMARY_USER, 1); - mCoordinator.authenticatedFor(PRIMARY_USER, BIOMETRIC_WEAK, 1); + mCoordinator.authStartedFor(PRIMARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.authenticatedFor(PRIMARY_USER, BIOMETRIC_WEAK, 1 /* sensorId */, + 0 /* requestId */); + + assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); + assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); + } + + @Test + public void testUserLocked() { + mCoordinator.authStartedFor(PRIMARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.authStartedFor(PRIMARY_USER, 2 /* sensorId */, 0 /* requestId */); + mCoordinator.lockedOutFor(PRIMARY_USER, BIOMETRIC_STRONG, 1 /* sensorId */, + 0 /* requestId */); + mCoordinator.authenticatedFor(PRIMARY_USER, BIOMETRIC_WEAK, 2 /* sensorId */, + 0 /* requestId */); + + assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); + assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); + assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); + + mCoordinator.authStartedFor(PRIMARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.authenticatedFor(PRIMARY_USER, BIOMETRIC_WEAK, 1 /* sensorId */, + 0 /* requestId */); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); @@ -58,15 +95,16 @@ public class AuthSessionCoordinatorTest { @Test public void testUserCanAuthDuringLockoutOfSameSession() { - mCoordinator.resetLockoutFor(PRIMARY_USER, BIOMETRIC_STRONG); + mCoordinator.resetLockoutFor(PRIMARY_USER, BIOMETRIC_STRONG, 0 /* requestId */); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); - mCoordinator.authStartedFor(PRIMARY_USER, 1); - mCoordinator.authStartedFor(PRIMARY_USER, 2); - mCoordinator.lockedOutFor(PRIMARY_USER, BIOMETRIC_WEAK, 2); + mCoordinator.authStartedFor(PRIMARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.authStartedFor(PRIMARY_USER, 2 /* sensorId */, 0 /* requestId */); + mCoordinator.lockedOutFor(PRIMARY_USER, BIOMETRIC_WEAK, 2 /* sensorId */, + 0 /* requestId */); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); @@ -75,7 +113,15 @@ public class AuthSessionCoordinatorTest { @Test public void testMultiUserAuth() { - mCoordinator.resetLockoutFor(PRIMARY_USER, BIOMETRIC_STRONG); + mCoordinator.authStartedFor(PRIMARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.lockedOutFor(PRIMARY_USER, BIOMETRIC_STRONG, 1 /* sensorId */, + 0 /* requestId */); + + mCoordinator.authStartedFor(SECONDARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.lockedOutFor(SECONDARY_USER, BIOMETRIC_STRONG, 1 /* sensorId */, + 0 /* requestId */); + + mCoordinator.resetLockoutFor(PRIMARY_USER, BIOMETRIC_STRONG, 0 /* requestId */); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); @@ -85,9 +131,10 @@ public class AuthSessionCoordinatorTest { assertThat(mCoordinator.getCanAuthFor(SECONDARY_USER, BIOMETRIC_WEAK)).isFalse(); assertThat(mCoordinator.getCanAuthFor(SECONDARY_USER, BIOMETRIC_STRONG)).isFalse(); - mCoordinator.authStartedFor(PRIMARY_USER, 1); - mCoordinator.authStartedFor(PRIMARY_USER, 2); - mCoordinator.lockedOutFor(PRIMARY_USER, BIOMETRIC_WEAK, 2); + mCoordinator.authStartedFor(PRIMARY_USER, 1 /* sensorId */, 0 /* requestId */); + mCoordinator.authStartedFor(PRIMARY_USER, 2 /* sensorId */, 0 /* requestId */); + mCoordinator.lockedOutFor(PRIMARY_USER, BIOMETRIC_WEAK, 2 /* sensorId */, + 0 /* requestId */); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); assertThat(mCoordinator.getCanAuthFor(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/MultiBiometricLockoutStateTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/MultiBiometricLockoutStateTest.java index 8baa1ce3f6c6..0b10a7b35127 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/MultiBiometricLockoutStateTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/MultiBiometricLockoutStateTest.java @@ -22,6 +22,8 @@ import static android.hardware.biometrics.BiometricManager.Authenticators.BIOMET import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.when; + import android.platform.test.annotations.Presubmit; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; @@ -31,6 +33,10 @@ import androidx.test.filters.SmallTest; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.time.Clock; @SmallTest @Presubmit @@ -38,111 +44,155 @@ import org.junit.runner.RunWith; @TestableLooper.RunWithLooper(setAsMainLooper = true) public class MultiBiometricLockoutStateTest { private static final int PRIMARY_USER = 0; - private MultiBiometricLockoutState mCoordinator; - - private void unlockAllBiometrics() { - unlockAllBiometrics(mCoordinator, PRIMARY_USER); + private MultiBiometricLockoutState mLockoutState; + @Mock + private Clock mClock; + + private static void unlockAllBiometrics(MultiBiometricLockoutState lockoutState, int userId) { + lockoutState.setAuthenticatorTo(userId, BIOMETRIC_STRONG, true /* canAuthenticate */); + assertThat(lockoutState.canUserAuthenticate(userId, BIOMETRIC_STRONG)).isTrue(); + assertThat(lockoutState.canUserAuthenticate(userId, BIOMETRIC_WEAK)).isTrue(); + assertThat(lockoutState.canUserAuthenticate(userId, BIOMETRIC_CONVENIENCE)).isTrue(); } - private void lockoutAllBiometrics() { - lockoutAllBiometrics(mCoordinator, PRIMARY_USER); + private static void lockoutAllBiometrics(MultiBiometricLockoutState lockoutState, int userId) { + lockoutState.setAuthenticatorTo(userId, BIOMETRIC_STRONG, false /* canAuthenticate */); + assertThat(lockoutState.canUserAuthenticate(userId, BIOMETRIC_STRONG)).isFalse(); + assertThat(lockoutState.canUserAuthenticate(userId, BIOMETRIC_WEAK)).isFalse(); + assertThat(lockoutState.canUserAuthenticate(userId, BIOMETRIC_CONVENIENCE)).isFalse(); } - private static void unlockAllBiometrics(MultiBiometricLockoutState coordinator, int userId) { - coordinator.onUserUnlocked(userId, BIOMETRIC_STRONG); - assertThat(coordinator.canUserAuthenticate(userId, BIOMETRIC_STRONG)).isTrue(); - assertThat(coordinator.canUserAuthenticate(userId, BIOMETRIC_WEAK)).isTrue(); - assertThat(coordinator.canUserAuthenticate(userId, BIOMETRIC_CONVENIENCE)).isTrue(); + private void unlockAllBiometrics() { + unlockAllBiometrics(mLockoutState, PRIMARY_USER); } - private static void lockoutAllBiometrics(MultiBiometricLockoutState coordinator, int userId) { - coordinator.onUserLocked(userId, BIOMETRIC_STRONG); - assertThat(coordinator.canUserAuthenticate(userId, BIOMETRIC_STRONG)).isFalse(); - assertThat(coordinator.canUserAuthenticate(userId, BIOMETRIC_WEAK)).isFalse(); - assertThat(coordinator.canUserAuthenticate(userId, BIOMETRIC_CONVENIENCE)).isFalse(); + private void lockoutAllBiometrics() { + lockoutAllBiometrics(mLockoutState, PRIMARY_USER); } @Before public void setUp() throws Exception { - mCoordinator = new MultiBiometricLockoutState(); + MockitoAnnotations.initMocks(this); + when(mClock.millis()).thenReturn(0L); + mLockoutState = new MultiBiometricLockoutState(mClock); } @Test public void testInitialStateLockedOut() { - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); } @Test public void testConvenienceLockout() { unlockAllBiometrics(); - mCoordinator.onUserLocked(PRIMARY_USER, BIOMETRIC_CONVENIENCE); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); + mLockoutState.setAuthenticatorTo(PRIMARY_USER, BIOMETRIC_CONVENIENCE, + false /* canAuthenticate */); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat( + mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); } @Test public void testWeakLockout() { unlockAllBiometrics(); - mCoordinator.onUserLocked(PRIMARY_USER, BIOMETRIC_WEAK); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); + mLockoutState.setAuthenticatorTo(PRIMARY_USER, BIOMETRIC_WEAK, false /* canAuthenticate */); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); + assertThat( + mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); } @Test public void testStrongLockout() { - unlockAllBiometrics(); - mCoordinator.onUserLocked(PRIMARY_USER, BIOMETRIC_STRONG); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); + lockoutAllBiometrics(); + mLockoutState.setAuthenticatorTo(PRIMARY_USER, BIOMETRIC_STRONG, + false /* canAuthenticate */); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); + assertThat( + mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); } @Test public void testConvenienceUnlock() { lockoutAllBiometrics(); - mCoordinator.onUserUnlocked(PRIMARY_USER, BIOMETRIC_CONVENIENCE); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); + mLockoutState.setAuthenticatorTo(PRIMARY_USER, BIOMETRIC_CONVENIENCE, + true /* canAuthenticate */); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); } @Test public void testWeakUnlock() { lockoutAllBiometrics(); - mCoordinator.onUserUnlocked(PRIMARY_USER, BIOMETRIC_WEAK); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); + mLockoutState.setAuthenticatorTo(PRIMARY_USER, BIOMETRIC_WEAK, true /* canAuthenticate */); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); } @Test public void testStrongUnlock() { lockoutAllBiometrics(); - mCoordinator.onUserUnlocked(PRIMARY_USER, BIOMETRIC_STRONG); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); - assertThat(mCoordinator.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); + mLockoutState.setAuthenticatorTo(PRIMARY_USER, BIOMETRIC_STRONG, + true /* canAuthenticate */); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); } @Test public void multiUser_userOneDoesNotAffectUserTwo() { final int userOne = 1; final int userTwo = 2; - MultiBiometricLockoutState coordinator = new MultiBiometricLockoutState(); - lockoutAllBiometrics(coordinator, userOne); - lockoutAllBiometrics(coordinator, userTwo); - - coordinator.onUserUnlocked(userOne, BIOMETRIC_WEAK); - assertThat(coordinator.canUserAuthenticate(userOne, BIOMETRIC_STRONG)).isFalse(); - assertThat(coordinator.canUserAuthenticate(userOne, BIOMETRIC_WEAK)).isTrue(); - assertThat(coordinator.canUserAuthenticate(userOne, BIOMETRIC_CONVENIENCE)).isTrue(); - - assertThat(coordinator.canUserAuthenticate(userTwo, BIOMETRIC_STRONG)).isFalse(); - assertThat(coordinator.canUserAuthenticate(userTwo, BIOMETRIC_WEAK)).isFalse(); - assertThat(coordinator.canUserAuthenticate(userTwo, BIOMETRIC_CONVENIENCE)).isFalse(); + MultiBiometricLockoutState lockoutState = new MultiBiometricLockoutState(mClock); + lockoutAllBiometrics(lockoutState, userOne); + lockoutAllBiometrics(lockoutState, userTwo); + + lockoutState.setAuthenticatorTo(userOne, BIOMETRIC_WEAK, true /* canAuthenticate */); + assertThat(lockoutState.canUserAuthenticate(userOne, BIOMETRIC_STRONG)).isFalse(); + assertThat(lockoutState.canUserAuthenticate(userOne, BIOMETRIC_WEAK)).isTrue(); + assertThat(lockoutState.canUserAuthenticate(userOne, BIOMETRIC_CONVENIENCE)).isTrue(); + + assertThat(lockoutState.canUserAuthenticate(userTwo, BIOMETRIC_STRONG)).isFalse(); + assertThat(lockoutState.canUserAuthenticate(userTwo, BIOMETRIC_WEAK)).isFalse(); + assertThat(lockoutState.canUserAuthenticate(userTwo, BIOMETRIC_CONVENIENCE)).isFalse(); + } + + @Test + public void testTimedLockout() { + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); + + mLockoutState.increaseLockoutTime(PRIMARY_USER, BIOMETRIC_STRONG, + System.currentTimeMillis() + 1); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); + assertThat( + mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); + } + + @Test + public void testTimedLockoutAfterDuration() { + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); + + when(mClock.millis()).thenReturn(0L); + mLockoutState.increaseLockoutTime(PRIMARY_USER, BIOMETRIC_STRONG, 1); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isFalse(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isFalse(); + assertThat( + mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isFalse(); + + when(mClock.millis()).thenReturn(2L); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_STRONG)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_WEAK)).isTrue(); + assertThat(mLockoutState.canUserAuthenticate(PRIMARY_USER, BIOMETRIC_CONVENIENCE)).isTrue(); } } diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClientTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClientTest.java index f08d0ef67df3..2dc3583478fb 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClientTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClientTest.java @@ -44,6 +44,7 @@ import androidx.test.platform.app.InstrumentationRegistry; import com.android.server.biometrics.log.BiometricContext; import com.android.server.biometrics.log.BiometricLogger; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; import com.android.server.biometrics.sensors.ClientMonitorCallback; import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter; import com.android.server.biometrics.sensors.LockoutCache; @@ -95,6 +96,8 @@ public class FaceAuthenticationClientTest { private ActivityTaskManager mActivityTaskManager; @Mock private ICancellationSignal mCancellationSignal; + @Mock + private AuthSessionCoordinator mAuthSessionCoordinator; @Captor private ArgumentCaptor<OperationContext> mOperationContextCaptor; @@ -105,6 +108,7 @@ public class FaceAuthenticationClientTest { public void setup() { when(mBiometricContext.updateContext(any(), anyBoolean())).thenAnswer( i -> i.getArgument(0)); + when(mBiometricContext.getAuthSessionCoordinator()).thenReturn(mAuthSessionCoordinator); } @Test @@ -158,7 +162,8 @@ public class FaceAuthenticationClientTest { false /* requireConfirmation */, 9 /* sensorId */, mBiometricLogger, mBiometricContext, true /* isStrongBiometric */, mUsageStats, mLockoutCache, false /* allowBackgroundAuthentication */, - false /* isKeyguardBypassEnabled */, null /* sensorPrivacyManager */) { + false /* isKeyguardBypassEnabled */, null /* sensorPrivacyManager */, + 0 /* biometricStrength */) { @Override protected ActivityTaskManager getActivityTaskManager() { return mActivityTaskManager; diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/SensorTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/SensorTest.java index 518946aa761a..2afc4d7f8e40 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/SensorTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/aidl/SensorTest.java @@ -34,6 +34,7 @@ import androidx.test.filters.SmallTest; import com.android.server.biometrics.log.BiometricContext; import com.android.server.biometrics.log.BiometricLogger; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; import com.android.server.biometrics.sensors.BiometricScheduler; import com.android.server.biometrics.sensors.LockoutCache; import com.android.server.biometrics.sensors.LockoutResetDispatcher; @@ -71,6 +72,8 @@ public class SensorTest { private BiometricLogger mBiometricLogger; @Mock private BiometricContext mBiometricContext; + @Mock + private AuthSessionCoordinator mAuthSessionCoordinator; private final TestLooper mLooper = new TestLooper(); private final LockoutCache mLockoutCache = new LockoutCache(); @@ -84,6 +87,8 @@ public class SensorTest { when(mContext.getSystemService(Context.BIOMETRIC_SERVICE)).thenReturn(mBiometricService); + when(mBiometricContext.getAuthSessionCoordinator()).thenReturn(mAuthSessionCoordinator); + mScheduler = new UserAwareBiometricScheduler(TAG, new Handler(mLooper.getLooper()), BiometricScheduler.SENSOR_TYPE_FACE, @@ -107,7 +112,7 @@ public class SensorTest { mScheduler.scheduleClientMonitor(new FaceResetLockoutClient(mContext, () -> new AidlSession(1, mSession, USER_ID, mHalCallback), USER_ID, TAG, SENSOR_ID, mBiometricLogger, mBiometricContext, - HAT, mLockoutCache, mLockoutResetDispatcher)); + HAT, mLockoutCache, mLockoutResetDispatcher, 0 /* biometricStrength */)); mLooper.dispatchAll(); verifyNotLocked(); diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java index a5c181d53286..1b5db0a35449 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintAuthenticationClientTest.java @@ -41,6 +41,7 @@ import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.fingerprint.ISession; import android.hardware.biometrics.fingerprint.PointerContext; import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.hardware.fingerprint.ISidefpsController; import android.hardware.fingerprint.IUdfpsOverlayController; @@ -59,6 +60,7 @@ import com.android.server.biometrics.log.BiometricContext; import com.android.server.biometrics.log.BiometricLogger; import com.android.server.biometrics.log.CallbackWithProbe; import com.android.server.biometrics.log.Probe; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; import com.android.server.biometrics.sensors.ClientMonitorCallback; import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter; import com.android.server.biometrics.sensors.LockoutCache; @@ -73,6 +75,7 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; +import java.time.Clock; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; @@ -128,6 +131,10 @@ public class FingerprintAuthenticationClientTest { private ICancellationSignal mCancellationSignal; @Mock private Probe mLuxProbe; + @Mock + private AuthSessionCoordinator mAuthSessionCoordinator; + @Mock + private Clock mClock; @Captor private ArgumentCaptor<OperationContext> mOperationContextCaptor; @Captor @@ -139,6 +146,7 @@ public class FingerprintAuthenticationClientTest { @Before public void setup() { mContext.addMockSystemService(BiometricManager.class, mBiometricManager); + when(mBiometricContext.getAuthSessionCoordinator()).thenReturn(mAuthSessionCoordinator); when(mBiometricLogger.getAmbientLightProbe(anyBoolean())).thenAnswer(i -> new CallbackWithProbe<>(mLuxProbe, i.getArgument(0))); when(mBiometricContext.updateContext(any(), anyBoolean())).thenAnswer( @@ -447,6 +455,52 @@ public class FingerprintAuthenticationClientTest { } @Test + public void sideFingerprintSkipsWindowIfVendorMessageMatch() throws Exception { + when(mSensorProps.isAnySidefpsType()).thenReturn(true); + final int vendorAcquireMessage = 1234; + + mContext.getOrCreateTestableResources().addOverride( + R.integer.config_sidefpsSkipWaitForPowerAcquireMessage, + FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR); + mContext.getOrCreateTestableResources().addOverride( + R.integer.config_sidefpsSkipWaitForPowerVendorAcquireMessage, + vendorAcquireMessage); + + final FingerprintAuthenticationClient client = createClient(1); + client.start(mCallback); + mLooper.dispatchAll(); + client.onAuthenticated(new Fingerprint("friendly", 4 /* fingerId */, 5 /* deviceId */), + true /* authenticated */, new ArrayList<>()); + client.onAcquired(FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR, vendorAcquireMessage); + mLooper.dispatchAll(); + + verify(mCallback).onClientFinished(any(), eq(true)); + } + + @Test + public void sideFingerprintDoesNotSkipWindowOnVendorErrorMismatch() throws Exception { + when(mSensorProps.isAnySidefpsType()).thenReturn(true); + final int vendorAcquireMessage = 1234; + + mContext.getOrCreateTestableResources().addOverride( + R.integer.config_sidefpsSkipWaitForPowerAcquireMessage, + FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR); + mContext.getOrCreateTestableResources().addOverride( + R.integer.config_sidefpsSkipWaitForPowerVendorAcquireMessage, + vendorAcquireMessage); + + final FingerprintAuthenticationClient client = createClient(1); + client.start(mCallback); + mLooper.dispatchAll(); + client.onAuthenticated(new Fingerprint("friendly", 4 /* fingerId */, 5 /* deviceId */), + true /* authenticated */, new ArrayList<>()); + client.onAcquired(FingerprintManager.FINGERPRINT_ACQUIRED_VENDOR, 1); + mLooper.dispatchAll(); + + verify(mCallback, never()).onClientFinished(any(), anyBoolean()); + } + + @Test public void sideFingerprintSendsAuthIfFingerUp() throws Exception { when(mSensorProps.isAnySidefpsType()).thenReturn(true); @@ -493,6 +547,79 @@ public class FingerprintAuthenticationClientTest { verify(mCallback).onClientFinished(any(), eq(true)); } + @Test + public void sideFingerprintPowerWindowStartsOnAcquireStart() throws Exception { + final int powerWindow = 500; + final long authStart = 300; + + when(mSensorProps.isAnySidefpsType()).thenReturn(true); + mContext.getOrCreateTestableResources().addOverride( + R.integer.config_sidefpsBpPowerPressWindow, powerWindow); + + final FingerprintAuthenticationClient client = createClient(1); + client.start(mCallback); + + // Acquire start occurs at time = 0ms + when(mClock.millis()).thenReturn(0L); + client.onAcquired(FingerprintManager.FINGERPRINT_ACQUIRED_START, 0 /* vendorCode */); + + // Auth occurs at time = 300 + when(mClock.millis()).thenReturn(authStart); + // At this point the delay should be 500 - (300 - 0) == 200 milliseconds. + client.onAuthenticated(new Fingerprint("friendly", 4 /* fingerId */, 5 /* deviceId */), + true /* authenticated */, new ArrayList<>()); + mLooper.dispatchAll(); + verify(mCallback, never()).onClientFinished(any(), anyBoolean()); + + // After waiting 200 milliseconds, auth should succeed. + mLooper.moveTimeForward(powerWindow - authStart); + mLooper.dispatchAll(); + verify(mCallback).onClientFinished(any(), eq(true)); + } + + @Test + public void sideFingerprintPowerWindowStartsOnLastAcquireStart() throws Exception { + final int powerWindow = 500; + + when(mSensorProps.isAnySidefpsType()).thenReturn(true); + mContext.getOrCreateTestableResources().addOverride( + R.integer.config_sidefpsBpPowerPressWindow, powerWindow); + + final FingerprintAuthenticationClient client = createClient(1); + client.start(mCallback); + // Acquire start occurs at time = 0ms + when(mClock.millis()).thenReturn(0L); + client.onAcquired(FingerprintManager.FINGERPRINT_ACQUIRED_START, 0 /* vendorCode */); + + // Auth reject occurs at time = 300ms + when(mClock.millis()).thenReturn(300L); + client.onAuthenticated(new Fingerprint("friendly", 4 /* fingerId */, 5 /* deviceId */), + false /* authenticated */, new ArrayList<>()); + mLooper.dispatchAll(); + + mLooper.moveTimeForward(300); + mLooper.dispatchAll(); + verify(mCallback, never()).onClientFinished(any(), anyBoolean()); + + when(mClock.millis()).thenReturn(1300L); + client.onAcquired(FingerprintManager.FINGERPRINT_ACQUIRED_START, 0 /* vendorCode */); + + // If code is correct, the new acquired start timestamp should be used + // and the code should only have to wait 500 - (1500-1300)ms. + when(mClock.millis()).thenReturn(1500L); + client.onAuthenticated(new Fingerprint("friendly", 4 /* fingerId */, 5 /* deviceId */), + true /* authenticated */, new ArrayList<>()); + mLooper.dispatchAll(); + + mLooper.moveTimeForward(299); + mLooper.dispatchAll(); + verify(mCallback, never()).onClientFinished(any(), anyBoolean()); + + mLooper.moveTimeForward(1); + mLooper.dispatchAll(); + verify(mCallback).onClientFinished(any(), eq(true)); + } + private FingerprintAuthenticationClient createClient() throws RemoteException { return createClient(100 /* version */, true /* allowBackgroundAuthentication */); } @@ -520,7 +647,7 @@ public class FingerprintAuthenticationClientTest { null /* taskStackListener */, mLockoutCache, mUdfpsOverlayController, mSideFpsController, allowBackgroundAuthentication, mSensorProps, - new Handler(mLooper.getLooper())) { + new Handler(mLooper.getLooper()), 0 /* biometricStrength */, mClock) { @Override protected ActivityTaskManager getActivityTaskManager() { return mActivityTaskManager; diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/SensorTest.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/SensorTest.java index ff636c840bad..7ae4e17e394d 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/SensorTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/SensorTest.java @@ -34,6 +34,7 @@ import androidx.test.filters.SmallTest; import com.android.server.biometrics.log.BiometricContext; import com.android.server.biometrics.log.BiometricLogger; +import com.android.server.biometrics.sensors.AuthSessionCoordinator; import com.android.server.biometrics.sensors.BiometricScheduler; import com.android.server.biometrics.sensors.LockoutCache; import com.android.server.biometrics.sensors.LockoutResetDispatcher; @@ -71,6 +72,8 @@ public class SensorTest { private BiometricLogger mLogger; @Mock private BiometricContext mBiometricContext; + @Mock + private AuthSessionCoordinator mAuthSessionCoordinator; private final TestLooper mLooper = new TestLooper(); private final LockoutCache mLockoutCache = new LockoutCache(); @@ -83,6 +86,7 @@ public class SensorTest { MockitoAnnotations.initMocks(this); when(mContext.getSystemService(Context.BIOMETRIC_SERVICE)).thenReturn(mBiometricService); + when(mBiometricContext.getAuthSessionCoordinator()).thenReturn(mAuthSessionCoordinator); mScheduler = new UserAwareBiometricScheduler(TAG, new Handler(mLooper.getLooper()), @@ -107,7 +111,7 @@ public class SensorTest { mScheduler.scheduleClientMonitor(new FingerprintResetLockoutClient(mContext, () -> new AidlSession(1, mSession, USER_ID, mHalCallback), USER_ID, TAG, SENSOR_ID, mLogger, mBiometricContext, HAT, mLockoutCache, - mLockoutResetDispatcher)); + mLockoutResetDispatcher, 0 /* biometricStrength */)); mLooper.dispatchAll(); verifyNotLocked(); diff --git a/services/tests/servicestests/src/com/android/server/companion/virtual/InputControllerTest.java b/services/tests/servicestests/src/com/android/server/companion/virtual/InputControllerTest.java index 6b8c26d7b1d4..d2f2af1b91b6 100644 --- a/services/tests/servicestests/src/com/android/server/companion/virtual/InputControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/companion/virtual/InputControllerTest.java @@ -16,6 +16,8 @@ package com.android.server.companion.virtual; +import static com.google.common.truth.Truth.assertWithMessage; + import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; @@ -25,6 +27,7 @@ import static org.mockito.Mockito.verify; import android.hardware.display.DisplayManagerInternal; import android.hardware.input.IInputManager; +import android.hardware.input.InputManager; import android.os.Binder; import android.os.Handler; import android.os.IBinder; @@ -88,6 +91,30 @@ public class InputControllerTest { } @Test + public void registerInputDevice_deviceCreation_hasDeviceId() { + final IBinder device1Token = new Binder("device1"); + mInputController.createMouse("mouse", /*vendorId= */ 1, /*productId= */ 1, device1Token, + /* displayId= */ 1); + int device1Id = mInputController.getInputDeviceId(device1Token); + + final IBinder device2Token = new Binder("device2"); + mInputController.createKeyboard("keyboard", /*vendorId= */2, /*productId= */ 2, + device2Token, 2); + int device2Id = mInputController.getInputDeviceId(device2Token); + + assertWithMessage("Different devices should have different id").that( + device1Id).isNotEqualTo(device2Id); + + + int[] deviceIds = InputManager.getInstance().getInputDeviceIds(); + assertWithMessage("InputManager's deviceIds list should contain id of device 1").that( + deviceIds).asList().contains(device1Id); + assertWithMessage("InputManager's deviceIds list should contain id of device 2").that( + deviceIds).asList().contains(device2Id); + + } + + @Test public void unregisterInputDevice_allMiceUnregistered_clearPointerDisplayId() { final IBinder deviceToken = new Binder(); mInputController.createMouse("name", /*vendorId= */ 1, /*productId= */ 1, deviceToken, @@ -115,4 +142,5 @@ public class InputControllerTest { mInputController.unregisterInputDevice(deviceToken); verify(mInputManagerInternalMock).setVirtualMousePointerDisplayId(eq(1)); } + } diff --git a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java index 9c5d1a5b0610..02bbe658f9b2 100644 --- a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java @@ -121,6 +121,7 @@ public class VirtualDeviceManagerServiceTest { private static final int VENDOR_ID = 5; private static final String UNIQUE_ID = "uniqueid"; private static final String PHYS = "phys"; + private static final int DEVICE_ID = 42; private static final int HEIGHT = 1800; private static final int WIDTH = 900; private static final Binder BINDER = new Binder("binder"); @@ -530,6 +531,16 @@ public class VirtualDeviceManagerServiceTest { } @Test + public void createVirtualKeyboard_inputDeviceId_obtainFromInputController() { + final int fd = 1; + mInputController.addDeviceForTesting(BINDER, fd, /* type= */ 1, /* displayId= */ 1, PHYS, + DEVICE_ID); + assertWithMessage( + "InputController should return device id from InputDeviceDescriptor").that( + mInputController.getInputDeviceId(BINDER)).isEqualTo(DEVICE_ID); + } + + @Test public void onAudioSessionStarting_hasVirtualAudioController() { mDeviceImpl.onVirtualDisplayCreatedLocked( mDeviceImpl.createWindowPolicyController(), DISPLAY_ID); @@ -576,9 +587,9 @@ public class VirtualDeviceManagerServiceTest { final int fd = 1; final int keyCode = KeyEvent.KEYCODE_A; final int action = VirtualKeyEvent.ACTION_UP; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 1, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */1, /* displayId= */ 1, PHYS, + DEVICE_ID); + mDeviceImpl.sendKeyEvent(BINDER, new VirtualKeyEvent.Builder().setKeyCode(keyCode) .setAction(action).build()); verify(mNativeWrapperMock).writeKeyEvent(fd, keyCode, action); @@ -601,9 +612,8 @@ public class VirtualDeviceManagerServiceTest { final int fd = 1; final int buttonCode = VirtualMouseButtonEvent.BUTTON_BACK; final int action = VirtualMouseButtonEvent.ACTION_BUTTON_PRESS; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 2, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */2, /* displayId= */ 1, PHYS, + DEVICE_ID); doReturn(1).when(mInputManagerInternalMock).getVirtualMousePointerDisplayId(); mDeviceImpl.sendButtonEvent(BINDER, new VirtualMouseButtonEvent.Builder() .setButtonCode(buttonCode) @@ -616,9 +626,8 @@ public class VirtualDeviceManagerServiceTest { final int fd = 1; final int buttonCode = VirtualMouseButtonEvent.BUTTON_BACK; final int action = VirtualMouseButtonEvent.ACTION_BUTTON_PRESS; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 2, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */2, /* displayId= */ 1, PHYS, + DEVICE_ID); assertThrows( IllegalStateException.class, () -> @@ -642,9 +651,8 @@ public class VirtualDeviceManagerServiceTest { final int fd = 1; final float x = -0.2f; final float y = 0.7f; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 2, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */2, /* displayId= */ 1, PHYS, + DEVICE_ID); doReturn(1).when(mInputManagerInternalMock).getVirtualMousePointerDisplayId(); mDeviceImpl.sendRelativeEvent(BINDER, new VirtualMouseRelativeEvent.Builder() .setRelativeX(x).setRelativeY(y).build()); @@ -656,9 +664,8 @@ public class VirtualDeviceManagerServiceTest { final int fd = 1; final float x = -0.2f; final float y = 0.7f; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 2, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */2, /* displayId= */ 1, PHYS, + DEVICE_ID); assertThrows( IllegalStateException.class, () -> @@ -683,9 +690,8 @@ public class VirtualDeviceManagerServiceTest { final int fd = 1; final float x = 0.5f; final float y = 1f; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 2, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */2, /* displayId= */ 1, PHYS, + DEVICE_ID); doReturn(1).when(mInputManagerInternalMock).getVirtualMousePointerDisplayId(); mDeviceImpl.sendScrollEvent(BINDER, new VirtualMouseScrollEvent.Builder() .setXAxisMovement(x) @@ -698,9 +704,8 @@ public class VirtualDeviceManagerServiceTest { final int fd = 1; final float x = 0.5f; final float y = 1f; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 2, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */2, /* displayId= */ 1, PHYS, + DEVICE_ID); assertThrows( IllegalStateException.class, () -> @@ -731,9 +736,8 @@ public class VirtualDeviceManagerServiceTest { final float x = 100.5f; final float y = 200.5f; final int action = VirtualTouchEvent.ACTION_UP; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 3, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */3, /* displayId= */ 1, PHYS, + DEVICE_ID); mDeviceImpl.sendTouchEvent(BINDER, new VirtualTouchEvent.Builder().setX(x) .setY(y).setAction(action).setPointerId(pointerId).setToolType(toolType).build()); verify(mNativeWrapperMock).writeTouchEvent(fd, pointerId, toolType, action, x, y, Float.NaN, @@ -750,9 +754,8 @@ public class VirtualDeviceManagerServiceTest { final int action = VirtualTouchEvent.ACTION_UP; final float pressure = 1.0f; final float majorAxisSize = 10.0f; - mInputController.mInputDeviceDescriptors.put(BINDER, - new InputController.InputDeviceDescriptor(fd, () -> {}, /* type= */ 3, - /* displayId= */ 1, PHYS)); + mInputController.addDeviceForTesting(BINDER, fd, /* type= */3, /* displayId= */ 1, PHYS, + DEVICE_ID); mDeviceImpl.sendTouchEvent(BINDER, new VirtualTouchEvent.Builder().setX(x) .setY(y).setAction(action).setPointerId(pointerId).setToolType(toolType) .setPressure(pressure).setMajorAxisSize(majorAxisSize).build()); diff --git a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java index 0a5df410bcdb..c2e8417f2ff0 100644 --- a/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java +++ b/services/tests/servicestests/src/com/android/server/display/BrightnessTrackerTest.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -885,6 +886,29 @@ public class BrightnessTrackerTest { assertNull(mInjector.mLightSensor); } + @Test + public void testOnlyOneReceiverRegistered() { + assertNull(mInjector.mLightSensor); + assertNull(mInjector.mSensorListener); + startTracker(mTracker, 0.3f, false); + + assertNotNull(mInjector.mLightSensor); + assertNotNull(mInjector.mSensorListener); + Sensor registeredLightSensor = mInjector.mLightSensor; + SensorEventListener registeredSensorListener = mInjector.mSensorListener; + + mTracker.start(0.3f); + assertSame(registeredLightSensor, mInjector.mLightSensor); + assertSame(registeredSensorListener, mInjector.mSensorListener); + + mTracker.stop(); + assertNull(mInjector.mLightSensor); + assertNull(mInjector.mSensorListener); + + // mInjector asserts that we aren't removing a null receiver + mTracker.stop(); + } + private InputStream getInputStream(String data) { return new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8)); } diff --git a/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java b/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java index 9fe8609c85a1..3b0a22f80c30 100644 --- a/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java +++ b/services/tests/servicestests/src/com/android/server/display/PersistentDataStoreTest.java @@ -275,6 +275,75 @@ public class PersistentDataStoreTest { assertNull(mDataStore.getBrightnessConfiguration(userSerial)); } + @Test + public void testStoreAndRestoreResolution() { + final String uniqueDisplayId = "test:123"; + DisplayDevice testDisplayDevice = new DisplayDevice(null, null, uniqueDisplayId, null) { + @Override + public boolean hasStableUniqueId() { + return true; + } + + @Override + public DisplayDeviceInfo getDisplayDeviceInfoLocked() { + return null; + } + }; + int width = 35; + int height = 45; + mDataStore.loadIfNeeded(); + mDataStore.setUserPreferredResolution(testDisplayDevice, width, height); + + final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + mInjector.setWriteStream(baos); + mDataStore.saveIfNeeded(); + mTestLooper.dispatchAll(); + assertTrue(mInjector.wasWriteSuccessful()); + TestInjector newInjector = new TestInjector(); + PersistentDataStore newDataStore = new PersistentDataStore(newInjector); + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + newInjector.setReadStream(bais); + newDataStore.loadIfNeeded(); + assertNotNull(newDataStore.getUserPreferredResolution(testDisplayDevice)); + assertEquals(35, newDataStore.getUserPreferredResolution(testDisplayDevice).x); + assertEquals(35, mDataStore.getUserPreferredResolution(testDisplayDevice).x); + assertEquals(45, newDataStore.getUserPreferredResolution(testDisplayDevice).y); + assertEquals(45, mDataStore.getUserPreferredResolution(testDisplayDevice).y); + } + + @Test + public void testStoreAndRestoreRefreshRate() { + final String uniqueDisplayId = "test:123"; + DisplayDevice testDisplayDevice = new DisplayDevice(null, null, uniqueDisplayId, null) { + @Override + public boolean hasStableUniqueId() { + return true; + } + + @Override + public DisplayDeviceInfo getDisplayDeviceInfoLocked() { + return null; + } + }; + float refreshRate = 85.3f; + mDataStore.loadIfNeeded(); + mDataStore.setUserPreferredRefreshRate(testDisplayDevice, refreshRate); + + final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + mInjector.setWriteStream(baos); + mDataStore.saveIfNeeded(); + mTestLooper.dispatchAll(); + assertTrue(mInjector.wasWriteSuccessful()); + TestInjector newInjector = new TestInjector(); + PersistentDataStore newDataStore = new PersistentDataStore(newInjector); + ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); + newInjector.setReadStream(bais); + newDataStore.loadIfNeeded(); + assertNotNull(newDataStore.getUserPreferredRefreshRate(testDisplayDevice)); + assertEquals(85.3f, mDataStore.getUserPreferredRefreshRate(testDisplayDevice), 01.f); + assertEquals(85.3f, newDataStore.getUserPreferredRefreshRate(testDisplayDevice), 0.1f); + } + public class TestInjector extends PersistentDataStore.Injector { private InputStream mReadStream; private OutputStream mWriteStream; diff --git a/services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java b/services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java index 559a2c0d6a09..29eccd46650e 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java @@ -118,7 +118,13 @@ final class FakeNativeWrapper implements NativeWrapper { } @Override - public void nativeSetOption(int flag, boolean enabled) {} + public void enableWakeupByOtp(boolean enabled) {} + + @Override + public void enableCec(boolean enabled) {} + + @Override + public void enableSystemCecControl(boolean enabled) {} @Override public void nativeSetLanguage(String language) {} diff --git a/services/tests/servicestests/src/com/android/server/locales/LocaleManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/locales/LocaleManagerServiceTest.java index 1dcdbac8a7c2..dbcd38c35958 100644 --- a/services/tests/servicestests/src/com/android/server/locales/LocaleManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/locales/LocaleManagerServiceTest.java @@ -16,6 +16,8 @@ package com.android.server.locales; +import static com.google.common.truth.Truth.assertThat; + import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNull; import static junit.framework.Assert.fail; @@ -35,13 +37,16 @@ import static org.mockito.Mockito.verify; import android.Manifest; import android.app.ActivityManagerInternal; +import android.content.ComponentName; import android.content.Context; import android.content.pm.InstallSourceInfo; import android.content.pm.PackageInstaller; import android.content.pm.PackageManager; import android.os.Binder; import android.os.LocaleList; +import android.provider.Settings; +import androidx.test.InstrumentationRegistry; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.internal.content.PackageMonitor; @@ -111,6 +116,8 @@ public class LocaleManagerServiceTest { doReturn(DEFAULT_USER_ID).when(mMockActivityManager) .handleIncomingUser(anyInt(), anyInt(), eq(DEFAULT_USER_ID), anyBoolean(), anyInt(), anyString(), anyString()); + doReturn(InstrumentationRegistry.getContext().getContentResolver()) + .when(mMockContext).getContentResolver(); mMockBackupHelper = mock(ShadowLocaleManagerBackupHelper.class); mLocaleManagerService = new LocaleManagerService(mMockContext, mMockActivityTaskManager, @@ -299,6 +306,25 @@ public class LocaleManagerServiceTest { assertEquals(DEFAULT_LOCALES, locales); } + @Test + public void testGetApplicationLocales_callerIsCurrentInputMethod_returnsLocales() + throws Exception { + doReturn(DEFAULT_UID).when(mMockPackageManager) + .getPackageUidAsUser(anyString(), any(), anyInt()); + doReturn(new PackageConfig(/* nightMode = */ 0, DEFAULT_LOCALES)) + .when(mMockActivityTaskManager).getApplicationConfig(anyString(), anyInt()); + String imPkgName = getCurrentInputMethodPackageName(); + doReturn(Binder.getCallingUid()).when(mMockPackageManager) + .getPackageUidAsUser(eq(imPkgName), any(), anyInt()); + + LocaleList locales = + mLocaleManagerService.getApplicationLocales( + DEFAULT_PACKAGE_NAME, DEFAULT_USER_ID); + + verify(mMockContext, never()).enforceCallingOrSelfPermission(any(), any()); + assertEquals(DEFAULT_LOCALES, locales); + } + private static void assertNoLocalesStored(LocaleList locales) { assertNull(locales); } @@ -311,4 +337,13 @@ public class LocaleManagerServiceTest { private void setUpPassingPermissionCheckFor(String permission) { doNothing().when(mMockContext).enforceCallingOrSelfPermission(eq(permission), any()); } + + private String getCurrentInputMethodPackageName() { + String im = Settings.Secure.getString( + InstrumentationRegistry.getContext().getContentResolver(), + Settings.Secure.DEFAULT_INPUT_METHOD); + ComponentName cn = ComponentName.unflattenFromString(im); + assertThat(cn).isNotNull(); + return cn.getPackageName(); + } } diff --git a/services/tests/servicestests/src/com/android/server/locales/SystemAppUpdateTrackerTest.java b/services/tests/servicestests/src/com/android/server/locales/SystemAppUpdateTrackerTest.java index 808b74e31029..853eea133fbd 100644 --- a/services/tests/servicestests/src/com/android/server/locales/SystemAppUpdateTrackerTest.java +++ b/services/tests/servicestests/src/com/android/server/locales/SystemAppUpdateTrackerTest.java @@ -47,6 +47,8 @@ import android.util.AtomicFile; import android.util.TypedXmlPullParser; import android.util.Xml; +import androidx.test.InstrumentationRegistry; + import com.android.internal.content.PackageMonitor; import com.android.internal.util.XmlUtils; import com.android.server.wm.ActivityTaskManagerInternal; @@ -124,6 +126,8 @@ public class SystemAppUpdateTrackerTest { doReturn(DEFAULT_INSTALL_SOURCE_INFO).when(mMockPackageManager) .getInstallSourceInfo(anyString()); doReturn(mMockPackageManager).when(mMockContext).getPackageManager(); + doReturn(InstrumentationRegistry.getContext().getContentResolver()) + .when(mMockContext).getContentResolver(); mStoragefile = new AtomicFile(new File( Environment.getExternalStorageDirectory(), "systemUpdateUnitTests.xml")); diff --git a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java index 94e67d16acab..3f55f1bb76a4 100644 --- a/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java +++ b/services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java @@ -16,16 +16,16 @@ package com.android.server.om; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import android.content.om.OverlayIdentifier; import android.content.om.OverlayInfo; import androidx.test.runner.AndroidJUnit4; +import com.google.common.truth.Expect; + +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -43,6 +43,9 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI private static final String OVERLAY2 = OVERLAY + "2"; private static final OverlayIdentifier IDENTIFIER2 = new OverlayIdentifier(OVERLAY2); + @Rule + public final Expect expect = Expect.create(); + @Test public void alwaysInitializeAllPackages() { final OverlayManagerServiceImpl impl = getImpl(); @@ -51,13 +54,11 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI addPackage(target(otherTarget), USER); addPackage(overlay(OVERLAY, TARGET), USER); - final Set<PackageAndUser> allPackages = - Set.of(new PackageAndUser(TARGET, USER), - new PackageAndUser(otherTarget, USER), - new PackageAndUser(OVERLAY, USER)); + final Set<PackageAndUser> allPackages = Set.of(new PackageAndUser(TARGET, USER)); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + // The result should be the same for every time + assertThat(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); + assertThat(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); } @Test @@ -66,29 +67,31 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI addPackage(target(TARGET), USER); addPackage(overlay(OVERLAY, TARGET), USER); - final Set<PackageAndUser> allPackages = - Set.of(new PackageAndUser(TARGET, USER), new PackageAndUser(OVERLAY, USER)); + final Set<PackageAndUser> allPackages = Set.of(new PackageAndUser(TARGET, USER)); configureSystemOverlay(OVERLAY, ConfigState.IMMUTABLE_DISABLED, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o1 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o1); - assertFalse(o1.isEnabled()); - assertFalse(o1.isMutable); + expect.that(o1).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o1.isEnabled()).isFalse(); + expect.that(o1.isMutable).isFalse(); configureSystemOverlay(OVERLAY, ConfigState.IMMUTABLE_ENABLED, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o2 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o2); - assertTrue(o2.isEnabled()); - assertFalse(o2.isMutable); + expect.that(o2).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o2.isEnabled()).isTrue(); + expect.that(o2.isMutable).isFalse(); configureSystemOverlay(OVERLAY, ConfigState.IMMUTABLE_DISABLED, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o3 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o3); - assertFalse(o3.isEnabled()); - assertFalse(o3.isMutable); + expect.that(o3).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o3.isEnabled()).isFalse(); + expect.that(o3.isMutable).isFalse(); } @Test @@ -98,28 +101,30 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI addPackage(overlay(OVERLAY, TARGET), USER); configureSystemOverlay(OVERLAY, ConfigState.MUTABLE_DISABLED, 0 /* priority */); - final Set<PackageAndUser> allPackages = - Set.of(new PackageAndUser(TARGET, USER), new PackageAndUser(OVERLAY, USER)); + final Set<PackageAndUser> allPackages = Set.of(new PackageAndUser(TARGET, USER)); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o1 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o1); - assertFalse(o1.isEnabled()); - assertTrue(o1.isMutable); + expect.that(o1).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o1.isEnabled()).isFalse(); + expect.that(o1.isMutable).isTrue(); configureSystemOverlay(OVERLAY, ConfigState.MUTABLE_ENABLED, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o2 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o2); - assertFalse(o2.isEnabled()); - assertTrue(o2.isMutable); + expect.that(o2).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o2.isEnabled()).isFalse(); + expect.that(o2.isMutable).isTrue(); configureSystemOverlay(OVERLAY, ConfigState.MUTABLE_DISABLED, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o3 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o3); - assertFalse(o3.isEnabled()); - assertTrue(o3.isMutable); + expect.that(o3).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o3.isEnabled()).isFalse(); + expect.that(o3.isMutable).isTrue(); } @Test @@ -128,17 +133,17 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI addPackage(target(TARGET), USER); addPackage(overlay(OVERLAY, TARGET), USER); - final Set<PackageAndUser> allPackages = - Set.of(new PackageAndUser(TARGET, USER), new PackageAndUser(OVERLAY, USER)); + final Set<PackageAndUser> allPackages = Set.of(new PackageAndUser(TARGET, USER)); final Consumer<ConfigState> setOverlay = (state -> { configureSystemOverlay(OVERLAY, state, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o); - assertEquals(o.isEnabled(), state == ConfigState.IMMUTABLE_ENABLED + expect.that(o).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o.isEnabled()).isEqualTo(state == ConfigState.IMMUTABLE_ENABLED || state == ConfigState.MUTABLE_ENABLED); - assertEquals(o.isMutable, state == ConfigState.MUTABLE_DISABLED + expect.that(o.isMutable).isEqualTo(state == ConfigState.MUTABLE_DISABLED || state == ConfigState.MUTABLE_ENABLED); }); @@ -180,20 +185,20 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI configureSystemOverlay(OVERLAY, ConfigState.MUTABLE_DISABLED, 0 /* priority */); configureSystemOverlay(OVERLAY2, ConfigState.MUTABLE_DISABLED, 1 /* priority */); - final Set<PackageAndUser> allPackages = - Set.of(new PackageAndUser(TARGET, USER), new PackageAndUser(OVERLAY, USER), - new PackageAndUser(OVERLAY2, USER)); + final Set<PackageAndUser> allPackages = Set.of(new PackageAndUser(TARGET, USER)); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o1 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o1); - assertEquals(0, o1.priority); - assertFalse(o1.isEnabled()); + expect.that(o1).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o1.priority).isEqualTo(0); + expect.that(o1.isEnabled()).isFalse(); final OverlayInfo o2 = impl.getOverlayInfo(IDENTIFIER2, USER); - assertNotNull(o2); - assertEquals(1, o2.priority); - assertFalse(o2.isEnabled()); + expect.that(o2).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o2.priority).isEqualTo(1); + expect.that(o2.isEnabled()).isFalse(); // Overlay priority changing between reboots should not affect enable state of mutable // overlays. @@ -202,16 +207,18 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI // Reorder the overlays configureSystemOverlay(OVERLAY, ConfigState.MUTABLE_DISABLED, 1 /* priority */); configureSystemOverlay(OVERLAY2, ConfigState.MUTABLE_DISABLED, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o3 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o3); - assertEquals(1, o3.priority); - assertTrue(o3.isEnabled()); + expect.that(o3).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o3.priority).isEqualTo(1); + expect.that(o3.isEnabled()).isTrue(); final OverlayInfo o4 = impl.getOverlayInfo(IDENTIFIER2, USER); - assertNotNull(o4); - assertEquals(0, o4.priority); - assertFalse(o4.isEnabled()); + expect.that(o4).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o4.priority).isEqualTo(0); + expect.that(o4.isEnabled()).isFalse(); } @Test @@ -223,33 +230,35 @@ public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceI configureSystemOverlay(OVERLAY, ConfigState.IMMUTABLE_ENABLED, 0 /* priority */); configureSystemOverlay(OVERLAY2, ConfigState.IMMUTABLE_ENABLED, 1 /* priority */); - final Set<PackageAndUser> allPackages = - Set.of(new PackageAndUser(TARGET, USER), new PackageAndUser(OVERLAY, USER), - new PackageAndUser(OVERLAY2, USER)); + final Set<PackageAndUser> allPackages = Set.of(new PackageAndUser(TARGET, USER)); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o1 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o1); - assertEquals(0, o1.priority); - assertTrue(o1.isEnabled()); + expect.that(o1).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o1.priority).isEqualTo(0); + expect.that(o1.isEnabled()).isTrue(); final OverlayInfo o2 = impl.getOverlayInfo(IDENTIFIER2, USER); - assertNotNull(o2); - assertEquals(1, o2.priority); - assertTrue(o2.isEnabled()); + expect.that(o2).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o2.priority).isEqualTo(1); + expect.that(o2.isEnabled()).isTrue(); // Reorder the overlays configureSystemOverlay(OVERLAY, ConfigState.IMMUTABLE_ENABLED, 1 /* priority */); configureSystemOverlay(OVERLAY2, ConfigState.IMMUTABLE_ENABLED, 0 /* priority */); - assertEquals(allPackages, impl.updateOverlaysForUser(USER)); + expect.that(impl.updateOverlaysForUser(USER)).isEqualTo(allPackages); final OverlayInfo o3 = impl.getOverlayInfo(IDENTIFIER, USER); - assertNotNull(o3); - assertEquals(1, o3.priority); - assertTrue(o3.isEnabled()); + expect.that(o3).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o3.priority).isEqualTo(1); + expect.that(o3.isEnabled()).isTrue(); final OverlayInfo o4 = impl.getOverlayInfo(IDENTIFIER2, USER); - assertNotNull(o4); - assertEquals(0, o4.priority); - assertTrue(o4.isEnabled()); + expect.that(o4).isNotNull(); + assertThat(expect.hasFailures()).isFalse(); + expect.that(o4.priority).isEqualTo(0); + expect.that(o4.isEnabled()).isTrue(); } } diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java index 96707fde8edb..00aa52012e59 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java @@ -176,6 +176,13 @@ public class UserManagerServiceTest { } @Test + public void testHasUserRestriction_NonExistentUserReturnsFalse() { + int nonExistentUserId = UserHandle.USER_NULL; + assertThat(mUserManagerService.hasUserRestriction(DISALLOW_USER_SWITCH, nonExistentUserId)) + .isFalse(); + } + + @Test public void testSetUserRestrictionWithIncorrectID() throws Exception { int incorrectId = 1; while (mUserManagerService.userExists(incorrectId)) { diff --git a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java index d5893c8d0b9f..77d542a2e43d 100644 --- a/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java +++ b/services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java @@ -52,7 +52,6 @@ public class DexoptOptionsTests { assertFalse(opt.isBootComplete()); assertFalse(opt.isCheckForProfileUpdates()); assertFalse(opt.isDexoptOnlySecondaryDex()); - assertFalse(opt.isDexoptOnlySharedDex()); assertFalse(opt.isDowngrade()); assertFalse(opt.isForce()); assertFalse(opt.isDexoptIdleBackgroundJob()); @@ -67,7 +66,6 @@ public class DexoptOptionsTests { DexoptOptions.DEXOPT_BOOT_COMPLETE | DexoptOptions.DEXOPT_CHECK_FOR_PROFILES_UPDATES | DexoptOptions.DEXOPT_ONLY_SECONDARY_DEX | - DexoptOptions.DEXOPT_ONLY_SHARED_DEX | DexoptOptions.DEXOPT_DOWNGRADE | DexoptOptions.DEXOPT_AS_SHARED_LIBRARY | DexoptOptions.DEXOPT_IDLE_BACKGROUND_JOB | @@ -81,7 +79,6 @@ public class DexoptOptionsTests { assertTrue(opt.isBootComplete()); assertTrue(opt.isCheckForProfileUpdates()); assertTrue(opt.isDexoptOnlySecondaryDex()); - assertTrue(opt.isDexoptOnlySharedDex()); assertTrue(opt.isDowngrade()); assertTrue(opt.isForce()); assertTrue(opt.isDexoptAsSharedLibrary()); @@ -113,7 +110,6 @@ public class DexoptOptionsTests { assertTrue(opt.isBootComplete()); assertTrue(opt.isCheckForProfileUpdates()); assertFalse(opt.isDexoptOnlySecondaryDex()); - assertFalse(opt.isDexoptOnlySharedDex()); assertFalse(opt.isDowngrade()); assertTrue(opt.isForce()); assertFalse(opt.isDexoptAsSharedLibrary()); @@ -131,7 +127,6 @@ public class DexoptOptionsTests { assertTrue(opt.isBootComplete()); assertFalse(opt.isCheckForProfileUpdates()); assertFalse(opt.isDexoptOnlySecondaryDex()); - assertFalse(opt.isDexoptOnlySharedDex()); assertFalse(opt.isDowngrade()); assertTrue(opt.isForce()); assertFalse(opt.isDexoptAsSharedLibrary()); diff --git a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java index fe4db3a758e3..db2630e2683c 100644 --- a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java @@ -87,7 +87,6 @@ import com.android.internal.app.IBatteryStats; import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.LocalServices; import com.android.server.SystemService; -import com.android.server.compat.PlatformCompat; import com.android.server.lights.LightsManager; import com.android.server.policy.WindowManagerPolicy; import com.android.server.power.PowerManagerService.BatteryReceiver; @@ -147,7 +146,6 @@ public class PowerManagerServiceTest { @Mock private SystemPropertiesWrapper mSystemPropertiesMock; @Mock private AppOpsManager mAppOpsManagerMock; @Mock private LowPowerStandbyController mLowPowerStandbyControllerMock; - @Mock private PlatformCompat mPlatformCompat; @Mock private InattentiveSleepWarningController mInattentiveSleepWarningControllerMock; @@ -321,11 +319,6 @@ public class PowerManagerServiceTest { AppOpsManager createAppOpsManager(Context context) { return mAppOpsManagerMock; } - - @Override - PlatformCompat createPlatformCompat(Context context) { - return mPlatformCompat; - } }); return mService; } @@ -505,9 +498,6 @@ public class PowerManagerServiceTest { String packageName = "pkg.name"; when(mAppOpsManagerMock.checkOpNoThrow(AppOpsManager.OP_TURN_SCREEN_ON, Binder.getCallingUid(), packageName)).thenReturn(MODE_ALLOWED); - when(mPlatformCompat.isChangeEnabledByPackageName( - eq(PowerManagerService.REQUIRE_TURN_SCREEN_ON_PERMISSION), anyString(), - anyInt())).thenReturn(true); when(mContextSpy.checkCallingOrSelfPermission( android.Manifest.permission.TURN_SCREEN_ON)).thenReturn( PackageManager.PERMISSION_GRANTED); @@ -532,23 +522,6 @@ public class PowerManagerServiceTest { null /* workSource */, null /* historyTag */, Display.INVALID_DISPLAY, null); assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); mService.getBinderServiceInstance().releaseWakeLock(token, 0 /* flags */); - - // Verify that on older platforms only the appOp is necessary and the permission isn't - // checked - when(mPlatformCompat.isChangeEnabledByPackageName( - eq(PowerManagerService.REQUIRE_TURN_SCREEN_ON_PERMISSION), anyString(), - anyInt())).thenReturn(false); - when(mContextSpy.checkCallingOrSelfPermission( - android.Manifest.permission.TURN_SCREEN_ON)).thenReturn( - PackageManager.PERMISSION_DENIED); - forceSleep(); - assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP); - - flags = PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP; - mService.getBinderServiceInstance().acquireWakeLock(token, flags, tag, packageName, - null /* workSource */, null /* historyTag */, Display.INVALID_DISPLAY, null); - assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); - mService.getBinderServiceInstance().releaseWakeLock(token, 0 /* flags */); } @Test @@ -568,7 +541,7 @@ public class PowerManagerServiceTest { int flags = PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP; mService.getBinderServiceInstance().acquireWakeLock(token, flags, tag, packageName, null /* workSource */, null /* historyTag */, Display.INVALID_DISPLAY, null); - if (PowerProperties.permissionless_turn_screen_on().orElse(true)) { + if (PowerProperties.permissionless_turn_screen_on().orElse(false)) { assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); } else { assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP); @@ -577,9 +550,6 @@ public class PowerManagerServiceTest { when(mAppOpsManagerMock.checkOpNoThrow(AppOpsManager.OP_TURN_SCREEN_ON, Binder.getCallingUid(), packageName)).thenReturn(MODE_ALLOWED); - when(mPlatformCompat.isChangeEnabledByPackageName( - eq(PowerManagerService.REQUIRE_TURN_SCREEN_ON_PERMISSION), anyString(), - anyInt())).thenReturn(true); when(mContextSpy.checkCallingOrSelfPermission( android.Manifest.permission.TURN_SCREEN_ON)).thenReturn( PackageManager.PERMISSION_DENIED); @@ -589,7 +559,7 @@ public class PowerManagerServiceTest { flags = PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP; mService.getBinderServiceInstance().acquireWakeLock(token, flags, tag, packageName, null /* workSource */, null /* historyTag */, Display.INVALID_DISPLAY, null); - if (PowerProperties.permissionless_turn_screen_on().orElse(true)) { + if (PowerProperties.permissionless_turn_screen_on().orElse(false)) { assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); } else { assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP); diff --git a/services/tests/servicestests/src/com/android/server/vibrator/FakeVibratorControllerProvider.java b/services/tests/servicestests/src/com/android/server/vibrator/FakeVibratorControllerProvider.java index 235849c1cd8b..c484f457faea 100644 --- a/services/tests/servicestests/src/com/android/server/vibrator/FakeVibratorControllerProvider.java +++ b/services/tests/servicestests/src/com/android/server/vibrator/FakeVibratorControllerProvider.java @@ -53,7 +53,8 @@ final class FakeVibratorControllerProvider { private boolean mIsAvailable = true; private boolean mIsInfoLoadSuccessful = true; - private long mLatency; + private long mOnLatency; + private long mOffLatency; private int mOffCount; private int mCapabilities; @@ -97,7 +98,7 @@ final class FakeVibratorControllerProvider { public long on(long milliseconds, long vibrationId) { recordEffectSegment(vibrationId, new StepSegment(VibrationEffect.DEFAULT_AMPLITUDE, /* frequencyHz= */ 0, (int) milliseconds)); - applyLatency(); + applyLatency(mOnLatency); scheduleListener(milliseconds, vibrationId); return milliseconds; } @@ -105,12 +106,13 @@ final class FakeVibratorControllerProvider { @Override public void off() { mOffCount++; + applyLatency(mOffLatency); } @Override public void setAmplitude(float amplitude) { mAmplitudes.add(amplitude); - applyLatency(); + applyLatency(mOnLatency); } @Override @@ -121,7 +123,7 @@ final class FakeVibratorControllerProvider { } recordEffectSegment(vibrationId, new PrebakedSegment((int) effect, false, (int) strength)); - applyLatency(); + applyLatency(mOnLatency); scheduleListener(EFFECT_DURATION, vibrationId); return EFFECT_DURATION; } @@ -141,7 +143,7 @@ final class FakeVibratorControllerProvider { duration += EFFECT_DURATION + primitive.getDelay(); recordEffectSegment(vibrationId, primitive); } - applyLatency(); + applyLatency(mOnLatency); scheduleListener(duration, vibrationId); return duration; } @@ -154,7 +156,7 @@ final class FakeVibratorControllerProvider { recordEffectSegment(vibrationId, primitive); } recordBraking(vibrationId, braking); - applyLatency(); + applyLatency(mOnLatency); scheduleListener(duration, vibrationId); return duration; } @@ -193,10 +195,10 @@ final class FakeVibratorControllerProvider { return mIsInfoLoadSuccessful; } - private void applyLatency() { + private void applyLatency(long latencyMillis) { try { - if (mLatency > 0) { - Thread.sleep(mLatency); + if (latencyMillis > 0) { + Thread.sleep(latencyMillis); } } catch (InterruptedException e) { } @@ -240,10 +242,15 @@ final class FakeVibratorControllerProvider { /** * Sets the latency this controller should fake for turning the vibrator hardware on or setting - * it's vibration amplitude. + * the vibration amplitude. */ - public void setLatency(long millis) { - mLatency = millis; + public void setOnLatency(long millis) { + mOnLatency = millis; + } + + /** Sets the latency this controller should fake for turning the vibrator off. */ + public void setOffLatency(long millis) { + mOffLatency = millis; } /** Set the capabilities of the fake vibrator hardware. */ diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java b/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java index a15e4b0c74a0..fc830a9f61ad 100644 --- a/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java +++ b/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java @@ -1159,7 +1159,7 @@ public class VibrationThreadTest { // 25% of the first waveform step will be spent on the native on() call. // 25% of each waveform step will be spent on the native setAmplitude() call.. - mVibratorProviders.get(VIBRATOR_ID).setLatency(stepDuration / 4); + mVibratorProviders.get(VIBRATOR_ID).setOnLatency(stepDuration / 4); mVibratorProviders.get(VIBRATOR_ID).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL); int stepCount = totalDuration / stepDuration; @@ -1190,7 +1190,7 @@ public class VibrationThreadTest { fakeVibrator.setSupportedEffects(VibrationEffect.EFFECT_CLICK); long latency = 5_000; // 5s - fakeVibrator.setLatency(latency); + fakeVibrator.setOnLatency(latency); long vibrationId = 1; VibrationEffect effect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK); @@ -1204,8 +1204,7 @@ public class VibrationThreadTest { // fail at waitForCompletion(cancellingThread). Thread cancellingThread = new Thread( () -> conductor.notifyCancelled( - new Vibration.EndInfo( - Vibration.Status.CANCELLED_BY_USER), + new Vibration.EndInfo(Vibration.Status.CANCELLED_BY_USER), /* immediate= */ false)); cancellingThread.start(); diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java index c46fecd1a55e..c83afb74ccba 100644 --- a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java @@ -826,13 +826,40 @@ public class VibratorManagerServiceTest { // The second vibration shouldn't have recorded that the vibrators were turned on. verify(mBatteryStatsMock, times(1)).noteVibratorOn(anyInt(), anyLong()); // No segment played is the prebaked CLICK from the second vibration. - assertFalse( - mVibratorProviders.get(1).getAllEffectSegments().stream() - .anyMatch(segment -> segment instanceof PrebakedSegment)); + assertFalse(mVibratorProviders.get(1).getAllEffectSegments().stream() + .anyMatch(PrebakedSegment.class::isInstance)); cancelVibrate(service); // Clean up repeating effect. } @Test + public void vibrate_withOngoingRepeatingVibrationBeingCancelled_playsAfterPreviousIsCancelled() + throws Exception { + mockVibrators(1); + FakeVibratorControllerProvider fakeVibrator = mVibratorProviders.get(1); + fakeVibrator.setOffLatency(50); // Add latency so cancellation is slow. + fakeVibrator.setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL); + fakeVibrator.setSupportedEffects(VibrationEffect.EFFECT_CLICK); + VibratorManagerService service = createSystemReadyService(); + + VibrationEffect repeatingEffect = VibrationEffect.createWaveform( + new long[]{10, 10_000}, new int[]{255, 0}, 1); + vibrate(service, repeatingEffect, ALARM_ATTRS); + + // VibrationThread will start this vibration async, wait until the off waveform step. + assertTrue(waitUntil(s -> fakeVibrator.getOffCount() > 0, service, TEST_TIMEOUT_MILLIS)); + + // Cancel vibration right before requesting a new one. + // This should trigger slow IVibrator.off before setting the vibration status to cancelled. + cancelVibrate(service); + vibrateAndWaitUntilFinished(service, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), + ALARM_ATTRS); + + // Check that second vibration was played. + assertTrue(fakeVibrator.getAllEffectSegments().stream() + .anyMatch(PrebakedSegment.class::isInstance)); + } + + @Test public void vibrate_withNewRepeatingVibration_cancelsOngoingEffect() throws Exception { mockVibrators(1); mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL); @@ -880,10 +907,8 @@ public class VibratorManagerServiceTest { // The second vibration shouldn't have recorded that the vibrators were turned on. verify(mBatteryStatsMock, times(1)).noteVibratorOn(anyInt(), anyLong()); // The second vibration shouldn't have played any prebaked segment. - assertFalse( - mVibratorProviders.get(1).getAllEffectSegments().stream() - .anyMatch(segment -> segment instanceof PrebakedSegment)); - + assertFalse(mVibratorProviders.get(1).getAllEffectSegments().stream() + .anyMatch(PrebakedSegment.class::isInstance)); cancelVibrate(service); // Clean up long effect. } diff --git a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java index 91c2fe0eb262..8e81e2d8997c 100644 --- a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java +++ b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java @@ -1371,6 +1371,39 @@ public class UiModeManagerServiceTest extends UiServiceTestCase { verify(mInjector).startDreamWhenDockedIfAppropriate(mContext); } + @Test + public void dreamWhenDocked_ambientModeSuppressed_suppressionEnabled() { + mUiManagerService.setStartDreamImmediatelyOnDock(true); + mUiManagerService.setDreamsDisabledByAmbientModeSuppression(true); + + when(mLocalPowerManager.isAmbientDisplaySuppressed()).thenReturn(true); + triggerDockIntent(); + verifyAndSendResultBroadcast(); + verify(mInjector, never()).startDreamWhenDockedIfAppropriate(mContext); + } + + @Test + public void dreamWhenDocked_ambientModeSuppressed_suppressionDisabled() { + mUiManagerService.setStartDreamImmediatelyOnDock(true); + mUiManagerService.setDreamsDisabledByAmbientModeSuppression(false); + + when(mLocalPowerManager.isAmbientDisplaySuppressed()).thenReturn(true); + triggerDockIntent(); + verifyAndSendResultBroadcast(); + verify(mInjector).startDreamWhenDockedIfAppropriate(mContext); + } + + @Test + public void dreamWhenDocked_ambientModeNotSuppressed_suppressionEnabled() { + mUiManagerService.setStartDreamImmediatelyOnDock(true); + mUiManagerService.setDreamsDisabledByAmbientModeSuppression(true); + + when(mLocalPowerManager.isAmbientDisplaySuppressed()).thenReturn(false); + triggerDockIntent(); + verifyAndSendResultBroadcast(); + verify(mInjector).startDreamWhenDockedIfAppropriate(mContext); + } + private void triggerDockIntent() { final Intent dockedIntent = new Intent(Intent.ACTION_DOCK_EVENT) diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenersTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenersTest.java index 1e945776cf40..248a3fc8b3b1 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenersTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationListenersTest.java @@ -15,6 +15,7 @@ */ package com.android.server.notification; +import static android.content.pm.PackageManager.MATCH_ANY_USER; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_ALERTING; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_CONVERSATIONS; import static android.service.notification.NotificationListenerService.FLAG_FILTER_TYPE_ONGOING; @@ -30,9 +31,11 @@ import static junit.framework.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.intThat; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.atLeast; 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.reset; @@ -49,6 +52,7 @@ import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ServiceInfo; import android.content.pm.VersionedPackage; +import android.content.res.Resources; import android.os.Bundle; import android.os.UserHandle; import android.service.notification.NotificationListenerFilter; @@ -69,6 +73,7 @@ import com.google.common.collect.ImmutableList; import org.junit.Before; import org.junit.Test; +import org.mockito.ArgumentMatcher; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.internal.util.reflection.FieldSetter; @@ -77,6 +82,7 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.util.Arrays; import java.util.List; public class NotificationListenersTest extends UiServiceTestCase { @@ -85,6 +91,8 @@ public class NotificationListenersTest extends UiServiceTestCase { private PackageManager mPm; @Mock private IPackageManager miPm; + @Mock + private Resources mResources; @Mock NotificationManagerService mNm; @@ -96,7 +104,8 @@ public class NotificationListenersTest extends UiServiceTestCase { private ComponentName mCn1 = new ComponentName("pkg", "pkg.cmp"); private ComponentName mCn2 = new ComponentName("pkg2", "pkg2.cmp2"); - + private ComponentName mUninstalledComponent = new ComponentName("pkg3", + "pkg3.NotificationListenerService"); @Before public void setUp() throws Exception { @@ -111,7 +120,7 @@ public class NotificationListenersTest extends UiServiceTestCase { @Test public void testReadExtraTag() throws Exception { - String xml = "<" + TAG_REQUESTED_LISTENERS+ ">" + String xml = "<" + TAG_REQUESTED_LISTENERS + ">" + "<listener component=\"" + mCn1.flattenToString() + "\" user=\"0\">" + "<allowed types=\"7\" />" + "</listener>" @@ -131,11 +140,55 @@ public class NotificationListenersTest extends UiServiceTestCase { } @Test + public void loadDefaultsFromConfig_forHeadlessSystemUser_loadUninstalled() throws Exception { + // setup with headless system user mode + mListeners = spy(mNm.new NotificationListeners( + mContext, new Object(), mock(ManagedServices.UserProfiles.class), miPm, + /* isHeadlessSystemUserMode= */ true)); + mockDefaultListenerConfigForUninstalledComponent(mUninstalledComponent); + + mListeners.loadDefaultsFromConfig(); + + assertThat(mListeners.getDefaultComponents()).contains(mUninstalledComponent); + } + + @Test + public void loadDefaultsFromConfig_forNonHeadlessSystemUser_ignoreUninstalled() + throws Exception { + // setup without headless system user mode + mListeners = spy(mNm.new NotificationListeners( + mContext, new Object(), mock(ManagedServices.UserProfiles.class), miPm, + /* isHeadlessSystemUserMode= */ false)); + mockDefaultListenerConfigForUninstalledComponent(mUninstalledComponent); + + mListeners.loadDefaultsFromConfig(); + + assertThat(mListeners.getDefaultComponents()).doesNotContain(mUninstalledComponent); + } + + private void mockDefaultListenerConfigForUninstalledComponent(ComponentName componentName) { + ArraySet<ComponentName> components = new ArraySet<>(Arrays.asList(componentName)); + when(mResources + .getString( + com.android.internal.R.string.config_defaultListenerAccessPackages)) + .thenReturn(componentName.getPackageName()); + when(mContext.getResources()).thenReturn(mResources); + doReturn(components).when(mListeners).queryPackageForServices( + eq(componentName.getPackageName()), + intThat(hasIntBitFlag(MATCH_ANY_USER)), + anyInt()); + } + + public static ArgumentMatcher<Integer> hasIntBitFlag(int flag) { + return arg -> arg != null && ((arg & flag) == flag); + } + + @Test public void testWriteExtraTag() throws Exception { NotificationListenerFilter nlf = new NotificationListenerFilter(7, new ArraySet<>()); VersionedPackage a1 = new VersionedPackage("pkg1", 243); NotificationListenerFilter nlf2 = - new NotificationListenerFilter(4, new ArraySet<>(new VersionedPackage[] {a1})); + new NotificationListenerFilter(4, new ArraySet<>(new VersionedPackage[]{a1})); mListeners.setNotificationListenerFilter(Pair.create(mCn1, 0), nlf); mListeners.setNotificationListenerFilter(Pair.create(mCn2, 10), nlf2); diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationTest.java deleted file mode 100644 index d7650420788c..000000000000 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationTest.java +++ /dev/null @@ -1,551 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.server.notification; - -import static junit.framework.Assert.assertEquals; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertNull; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import android.app.ActivityManager; -import android.app.Notification; -import android.app.PendingIntent; -import android.app.Person; -import android.app.RemoteInput; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.Color; -import android.graphics.Typeface; -import android.graphics.drawable.Icon; -import android.net.Uri; -import android.text.SpannableStringBuilder; -import android.text.Spanned; -import android.text.style.StyleSpan; -import android.util.Pair; -import android.widget.RemoteViews; - -import androidx.test.filters.SmallTest; -import androidx.test.runner.AndroidJUnit4; - -import com.android.server.UiServiceTestCase; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -@RunWith(AndroidJUnit4.class) -@SmallTest -public class NotificationTest extends UiServiceTestCase { - - @Mock - ActivityManager mAm; - - @Mock - Resources mResources; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testDoesNotStripsExtenders() { - Notification.Builder nb = new Notification.Builder(mContext, "channel"); - nb.extend(new Notification.CarExtender().setColor(Color.RED)); - nb.extend(new Notification.TvExtender().setChannelId("different channel")); - nb.extend(new Notification.WearableExtender().setDismissalId("dismiss")); - Notification before = nb.build(); - Notification after = Notification.Builder.maybeCloneStrippedForDelivery(before); - - assertTrue(before == after); - - assertEquals("different channel", new Notification.TvExtender(before).getChannelId()); - assertEquals(Color.RED, new Notification.CarExtender(before).getColor()); - assertEquals("dismiss", new Notification.WearableExtender(before).getDismissalId()); - } - - @Test - public void testStyleChangeVisiblyDifferent_noStyles() { - Notification.Builder n1 = new Notification.Builder(mContext, "test"); - Notification.Builder n2 = new Notification.Builder(mContext, "test"); - - assertFalse(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); - } - - @Test - public void testStyleChangeVisiblyDifferent_noStyleToStyle() { - Notification.Builder n1 = new Notification.Builder(mContext, "test"); - Notification.Builder n2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.BigTextStyle()); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); - } - - @Test - public void testStyleChangeVisiblyDifferent_styleToNoStyle() { - Notification.Builder n2 = new Notification.Builder(mContext, "test"); - Notification.Builder n1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.BigTextStyle()); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); - } - - @Test - public void testStyleChangeVisiblyDifferent_changeStyle() { - Notification.Builder n1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.InboxStyle()); - Notification.Builder n2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.BigTextStyle()); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(n1, n2)); - } - - @Test - public void testInboxTextChange() { - Notification.Builder nInbox1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.InboxStyle().addLine("a").addLine("b")); - Notification.Builder nInbox2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.InboxStyle().addLine("b").addLine("c")); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nInbox1, nInbox2)); - } - - @Test - public void testBigTextTextChange() { - Notification.Builder nBigText1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.BigTextStyle().bigText("something")); - Notification.Builder nBigText2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.BigTextStyle().bigText("else")); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nBigText1, nBigText2)); - } - - @Test - public void testBigPictureChange() { - Bitmap bitA = mock(Bitmap.class); - when(bitA.getGenerationId()).thenReturn(100); - Bitmap bitB = mock(Bitmap.class); - when(bitB.getGenerationId()).thenReturn(200); - - Notification.Builder nBigPic1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.BigPictureStyle().bigPicture(bitA)); - Notification.Builder nBigPic2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.BigPictureStyle().bigPicture(bitB)); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nBigPic1, nBigPic2)); - } - - @Test - public void testMessagingChange_text() { - Notification.Builder nM1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message( - "a", 100, mock(Person.class)))); - Notification.Builder nM2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message( - "a", 100, mock(Person.class))) - .addMessage(new Notification.MessagingStyle.Message( - "b", 100, mock(Person.class))) - ); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); - } - - @Test - public void testMessagingChange_data() { - Notification.Builder nM1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message( - "a", 100, mock(Person.class)) - .setData("text", mock(Uri.class)))); - Notification.Builder nM2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message( - "a", 100, mock(Person.class)))); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); - } - - @Test - public void testMessagingChange_sender() { - Person a = mock(Person.class); - when(a.getName()).thenReturn("A"); - Person b = mock(Person.class); - when(b.getName()).thenReturn("b"); - Notification.Builder nM1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message("a", 100, b))); - Notification.Builder nM2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message("a", 100, a))); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); - } - - @Test - public void testMessagingChange_key() { - Person a = mock(Person.class); - when(a.getKey()).thenReturn("A"); - Person b = mock(Person.class); - when(b.getKey()).thenReturn("b"); - Notification.Builder nM1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message("a", 100, a))); - Notification.Builder nM2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message("a", 100, b))); - - assertTrue(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); - } - - @Test - public void testMessagingChange_ignoreTimeChange() { - Notification.Builder nM1 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message( - "a", 100, mock(Person.class)))); - Notification.Builder nM2 = new Notification.Builder(mContext, "test") - .setStyle(new Notification.MessagingStyle("") - .addMessage(new Notification.MessagingStyle.Message( - "a", 1000, mock(Person.class))) - ); - - assertFalse(Notification.areStyledNotificationsVisiblyDifferent(nM1, nM2)); - } - - @Test - public void testRemoteViews_nullChange() { - Notification.Builder n1 = new Notification.Builder(mContext, "test") - .setContent(mock(RemoteViews.class)); - Notification.Builder n2 = new Notification.Builder(mContext, "test"); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test"); - n2 = new Notification.Builder(mContext, "test") - .setContent(mock(RemoteViews.class)); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test") - .setCustomBigContentView(mock(RemoteViews.class)); - n2 = new Notification.Builder(mContext, "test"); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test"); - n2 = new Notification.Builder(mContext, "test") - .setCustomBigContentView(mock(RemoteViews.class)); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test"); - n2 = new Notification.Builder(mContext, "test"); - assertFalse(Notification.areRemoteViewsChanged(n1, n2)); - } - - @Test - public void testRemoteViews_layoutChange() { - RemoteViews a = mock(RemoteViews.class); - when(a.getLayoutId()).thenReturn(234); - RemoteViews b = mock(RemoteViews.class); - when(b.getLayoutId()).thenReturn(189); - - Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); - Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - } - - @Test - public void testRemoteViews_layoutSame() { - RemoteViews a = mock(RemoteViews.class); - when(a.getLayoutId()).thenReturn(234); - RemoteViews b = mock(RemoteViews.class); - when(b.getLayoutId()).thenReturn(234); - - Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); - Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); - assertFalse(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); - assertFalse(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); - assertFalse(Notification.areRemoteViewsChanged(n1, n2)); - } - - @Test - public void testRemoteViews_sequenceChange() { - RemoteViews a = mock(RemoteViews.class); - when(a.getLayoutId()).thenReturn(234); - when(a.getSequenceNumber()).thenReturn(1); - RemoteViews b = mock(RemoteViews.class); - when(b.getLayoutId()).thenReturn(234); - when(b.getSequenceNumber()).thenReturn(2); - - Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); - Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); - assertTrue(Notification.areRemoteViewsChanged(n1, n2)); - } - - @Test - public void testRemoteViews_sequenceSame() { - RemoteViews a = mock(RemoteViews.class); - when(a.getLayoutId()).thenReturn(234); - when(a.getSequenceNumber()).thenReturn(1); - RemoteViews b = mock(RemoteViews.class); - when(b.getLayoutId()).thenReturn(234); - when(b.getSequenceNumber()).thenReturn(1); - - Notification.Builder n1 = new Notification.Builder(mContext, "test").setContent(a); - Notification.Builder n2 = new Notification.Builder(mContext, "test").setContent(b); - assertFalse(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomBigContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomBigContentView(b); - assertFalse(Notification.areRemoteViewsChanged(n1, n2)); - - n1 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(a); - n2 = new Notification.Builder(mContext, "test").setCustomHeadsUpContentView(b); - assertFalse(Notification.areRemoteViewsChanged(n1, n2)); - } - - @Test - public void testActionsDifferent_null() { - Notification n1 = new Notification.Builder(mContext, "test") - .build(); - Notification n2 = new Notification.Builder(mContext, "test") - .build(); - - assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); - } - - @Test - public void testActionsDifferentSame() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - Notification n1 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) - .build(); - Notification n2 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) - .build(); - - assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); - } - - @Test - public void testActionsDifferentText() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - Notification n1 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) - .build(); - Notification n2 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent).build()) - .build(); - - assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); - } - - @Test - public void testActionsDifferentSpannables() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - Notification n1 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, - new SpannableStringBuilder().append("test1", - new StyleSpan(Typeface.BOLD), - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE), - intent).build()) - .build(); - Notification n2 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "test1", intent).build()) - .build(); - - assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); - } - - @Test - public void testActionsDifferentNumber() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - Notification n1 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) - .build(); - Notification n2 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent).build()) - .addAction(new Notification.Action.Builder(icon, "TEXT 2", intent).build()) - .build(); - - assertTrue(Notification.areActionsVisiblyDifferent(n1, n2)); - } - - @Test - public void testActionsDifferentIntent() { - PendingIntent intent1 = mock(PendingIntent.class); - PendingIntent intent2 = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - Notification n1 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent1).build()) - .build(); - Notification n2 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent2).build()) - .build(); - - assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); - } - - @Test - public void testActionsIgnoresRemoteInputs() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - Notification n1 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) - .addRemoteInput(new RemoteInput.Builder("a") - .setChoices(new CharSequence[] {"i", "m"}) - .build()) - .build()) - .build(); - Notification n2 = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) - .addRemoteInput(new RemoteInput.Builder("a") - .setChoices(new CharSequence[] {"t", "m"}) - .build()) - .build()) - .build(); - - assertFalse(Notification.areActionsVisiblyDifferent(n1, n2)); - } - - @Test - public void testFreeformRemoteInputActionPair_noRemoteInput() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - Notification notification = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) - .build()) - .build(); - assertNull(notification.findRemoteInputActionPair(false)); - } - - @Test - public void testFreeformRemoteInputActionPair_hasRemoteInput() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - RemoteInput remoteInput = new RemoteInput.Builder("a").build(); - - Notification.Action actionWithRemoteInput = - new Notification.Action.Builder(icon, "TEXT 1", intent) - .addRemoteInput(remoteInput) - .addRemoteInput(remoteInput) - .build(); - - Notification.Action actionWithoutRemoteInput = - new Notification.Action.Builder(icon, "TEXT 2", intent) - .build(); - - Notification notification = new Notification.Builder(mContext, "test") - .addAction(actionWithoutRemoteInput) - .addAction(actionWithRemoteInput) - .build(); - - Pair<RemoteInput, Notification.Action> remoteInputActionPair = - notification.findRemoteInputActionPair(false); - - assertNotNull(remoteInputActionPair); - assertEquals(remoteInput, remoteInputActionPair.first); - assertEquals(actionWithRemoteInput, remoteInputActionPair.second); - } - - @Test - public void testFreeformRemoteInputActionPair_requestFreeform_noFreeformRemoteInput() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - Notification notification = new Notification.Builder(mContext, "test") - .addAction(new Notification.Action.Builder(icon, "TEXT 1", intent) - .addRemoteInput( - new RemoteInput.Builder("a") - .setAllowFreeFormInput(false).build()) - .build()) - .build(); - assertNull(notification.findRemoteInputActionPair(true)); - } - - @Test - public void testFreeformRemoteInputActionPair_requestFreeform_hasFreeformRemoteInput() { - PendingIntent intent = mock(PendingIntent.class); - Icon icon = mock(Icon.class); - - RemoteInput remoteInput = - new RemoteInput.Builder("a").setAllowFreeFormInput(false).build(); - RemoteInput freeformRemoteInput = - new RemoteInput.Builder("b").setAllowFreeFormInput(true).build(); - - Notification.Action actionWithFreeformRemoteInput = - new Notification.Action.Builder(icon, "TEXT 1", intent) - .addRemoteInput(remoteInput) - .addRemoteInput(freeformRemoteInput) - .build(); - - Notification.Action actionWithoutFreeformRemoteInput = - new Notification.Action.Builder(icon, "TEXT 2", intent) - .addRemoteInput(remoteInput) - .build(); - - Notification notification = new Notification.Builder(mContext, "test") - .addAction(actionWithoutFreeformRemoteInput) - .addAction(actionWithFreeformRemoteInput) - .build(); - - Pair<RemoteInput, Notification.Action> remoteInputActionPair = - notification.findRemoteInputActionPair(true); - - assertNotNull(remoteInputActionPair); - assertEquals(freeformRemoteInput, remoteInputActionPair.first); - assertEquals(actionWithFreeformRemoteInput, remoteInputActionPair.second); - } -} - diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTaskSupervisorTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTaskSupervisorTests.java index d5e336b1cf2f..eed32d7d815c 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityTaskSupervisorTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTaskSupervisorTests.java @@ -40,14 +40,18 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.clearInvocations; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.timeout; +import android.app.ActivityOptions; import android.app.WaitResult; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ActivityInfo; +import android.os.Binder; import android.os.ConditionVariable; +import android.os.IBinder; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; import android.view.Display; @@ -308,4 +312,40 @@ public class ActivityTaskSupervisorTests extends WindowTestsBase { waitHandlerIdle(mAtm.mH); verify(mRootWindowContainer, timeout(TIMEOUT_MS)).startHomeOnEmptyDisplays("userUnlocked"); } + + /** Verifies that launch from recents sets the launch cookie on the activity. */ + @Test + public void testStartActivityFromRecents_withLaunchCookie() { + final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); + + IBinder launchCookie = new Binder("test_launch_cookie"); + ActivityOptions options = ActivityOptions.makeBasic(); + options.setLaunchCookie(launchCookie); + SafeActivityOptions safeOptions = SafeActivityOptions.fromBundle(options.toBundle()); + + doNothing().when(mSupervisor.mService).moveTaskToFrontLocked(eq(null), eq(null), anyInt(), + anyInt(), any()); + + mSupervisor.startActivityFromRecents(-1, -1, activity.getRootTaskId(), safeOptions); + + assertThat(activity.mLaunchCookie).isEqualTo(launchCookie); + verify(mAtm).moveTaskToFrontLocked(any(), eq(null), anyInt(), anyInt(), eq(safeOptions)); + } + + /** Verifies that launch from recents doesn't set the launch cookie on the activity. */ + @Test + public void testStartActivityFromRecents_withoutLaunchCookie() { + final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); + + SafeActivityOptions safeOptions = SafeActivityOptions.fromBundle( + ActivityOptions.makeBasic().toBundle()); + + doNothing().when(mSupervisor.mService).moveTaskToFrontLocked(eq(null), eq(null), anyInt(), + anyInt(), any()); + + mSupervisor.startActivityFromRecents(-1, -1, activity.getRootTaskId(), safeOptions); + + assertThat(activity.mLaunchCookie).isNull(); + verify(mAtm).moveTaskToFrontLocked(any(), eq(null), anyInt(), anyInt(), eq(safeOptions)); + } } diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java index 7abe3698a99c..d5356774ffdb 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskPositionerTests.java @@ -88,7 +88,7 @@ public class TaskPositionerTests extends WindowTestsBase { @After public void tearDown() { - mPositioner = null; + TaskPositioner.setFactory(null); } @Test diff --git a/services/usb/java/com/android/server/usb/UsbDirectMidiDevice.java b/services/usb/java/com/android/server/usb/UsbDirectMidiDevice.java index 2ae328b0d8e9..394d6e774aa1 100644 --- a/services/usb/java/com/android/server/usb/UsbDirectMidiDevice.java +++ b/services/usb/java/com/android/server/usb/UsbDirectMidiDevice.java @@ -19,6 +19,7 @@ package com.android.server.usb; import android.annotation.NonNull; import android.content.Context; import android.hardware.usb.UsbConfiguration; +import android.hardware.usb.UsbConstants; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbEndpoint; @@ -76,10 +77,10 @@ public final class UsbDirectMidiDevice implements Closeable { // event schedulers for each input port of the physical device private MidiEventScheduler[] mEventSchedulers; - // Arbitrary number for timeout to not continue sending to - // an inactive device. This number tries to balances the number - // of cycles and not being permanently stuck. - private static final int BULK_TRANSFER_TIMEOUT_MILLISECONDS = 10; + // Timeout for sending a packet to a device. + // If bulkTransfer times out, retry sending the packet up to 20 times. + private static final int BULK_TRANSFER_TIMEOUT_MILLISECONDS = 50; + private static final int BULK_TRANSFER_NUMBER_OF_RETRIES = 20; // Arbitrary number for timeout when closing a thread private static final int THREAD_JOIN_TIMEOUT_MILLISECONDS = 200; @@ -386,10 +387,15 @@ public final class UsbDirectMidiDevice implements Closeable { break; } final UsbRequest response = connectionFinal.requestWait(); - if (response != request) { - Log.w(TAG, "Unexpected response"); + if (response == null) { + Log.w(TAG, "Response is null"); break; } + if (request != response) { + Log.w(TAG, "Skipping response"); + continue; + } + int bytesRead = byteBuffer.position(); if (bytesRead > 0) { @@ -513,9 +519,47 @@ public final class UsbDirectMidiDevice implements Closeable { convertedArray.length); } - connectionFinal.bulkTransfer(endpointFinal, convertedArray, - convertedArray.length, - BULK_TRANSFER_TIMEOUT_MILLISECONDS); + boolean isInterrupted = false; + // Split the packet into multiple if they are greater than the + // endpoint's max packet size. + for (int curPacketStart = 0; + curPacketStart < convertedArray.length && + isInterrupted == false; + curPacketStart += endpointFinal.getMaxPacketSize()) { + int transferResult = -1; + int retryCount = 0; + int curPacketSize = Math.min(endpointFinal.getMaxPacketSize(), + convertedArray.length - curPacketStart); + + // Keep trying to send the packet until the result is + // successful or until the retry limit is reached. + while (transferResult < 0 && retryCount <= + BULK_TRANSFER_NUMBER_OF_RETRIES) { + transferResult = connectionFinal.bulkTransfer( + endpointFinal, + convertedArray, + curPacketStart, + curPacketSize, + BULK_TRANSFER_TIMEOUT_MILLISECONDS); + retryCount++; + + if (Thread.currentThread().interrupted()) { + Log.w(TAG, "output thread interrupted after send"); + isInterrupted = true; + break; + } + if (transferResult < 0) { + Log.d(TAG, "retrying packet. retryCount = " + + retryCount + " result = " + transferResult); + if (retryCount > BULK_TRANSFER_NUMBER_OF_RETRIES) { + Log.w(TAG, "Skipping packet because timeout"); + } + } + } + } + if (isInterrupted == true) { + break; + } eventSchedulerFinal.addEventToPool(event); } } catch (NullPointerException e) { diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index f43f0a53650b..d314a6579b58 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -8658,11 +8658,12 @@ public class CarrierConfigManager { /** * Boolean indicating if the VoNR setting is visible in the Call Settings menu. - * If true, the VoNR setting menu will be visible. If false, the menu will be gone. + * If this flag is set and VoNR is enabled for this carrier (see {@link #KEY_VONR_ENABLED_BOOL}) + * the VoNR setting menu will be visible. If {@link #KEY_VONR_ENABLED_BOOL} or + * this setting is false, the menu will be gone. * - * Disabled by default. + * Enabled by default. * - * @hide */ public static final String KEY_VONR_SETTING_VISIBILITY_BOOL = "vonr_setting_visibility_bool"; @@ -8672,7 +8673,6 @@ public class CarrierConfigManager { * * Disabled by default. * - * @hide */ public static final String KEY_VONR_ENABLED_BOOL = "vonr_enabled_bool"; @@ -8715,6 +8715,8 @@ public class CarrierConfigManager { * premium capabilities should be blocked when * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} * returns a failure due to user action or timeout. + * The maximum number of network boost notifications to show the user are defined in + * {@link #KEY_PREMIUM_CAPABILITY_MAXIMUM_NOTIFICATION_COUNT_INT_ARRAY}. * * The default value is 30 minutes. * @@ -8726,6 +8728,22 @@ public class CarrierConfigManager { "premium_capability_notification_backoff_hysteresis_time_millis_long"; /** + * The maximum number of times that we display the notification for a network boost via premium + * capabilities when {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} + * returns a failure due to user action or timeout. + * + * An int array with 2 values: {max_notifications_per_day, max_notifications_per_month}. + * + * The default value is {2, 10}, meaning we display a maximum of 2 network boost notifications + * per day and 10 notifications per month. + * + * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED + * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT + */ + public static final String KEY_PREMIUM_CAPABILITY_MAXIMUM_NOTIFICATION_COUNT_INT_ARRAY = + "premium_capability_maximum_notification_count_int_array"; + + /** * The amount of time in milliseconds that the purchase request should be throttled when * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} * returns a failure due to the carrier. @@ -8752,6 +8770,20 @@ public class CarrierConfigManager { "premium_capability_purchase_url_string"; /** + * Whether to allow premium capabilities to be purchased when the device is connected to LTE. + * If this is {@code true}, applications can call + * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} + * when connected to {@link TelephonyManager#NETWORK_TYPE_LTE} to purchase and use + * premium capabilities. + * If this is {@code false}, applications can only purchase and use premium capabilities when + * conencted to {@link TelephonyManager#NETWORK_TYPE_NR}. + * + * This is {@code false} by default. + */ + public static final String KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL = + "premium_capability_supported_on_lte_bool"; + + /** * IWLAN handover rules that determine whether handover is allowed or disallowed between * cellular and IWLAN. * @@ -9432,15 +9464,18 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_UNTHROTTLE_DATA_RETRY_WHEN_TAC_CHANGES_BOOL, false); sDefaults.putBoolean(KEY_VONR_SETTING_VISIBILITY_BOOL, true); sDefaults.putBoolean(KEY_VONR_ENABLED_BOOL, false); - sDefaults.putIntArray(KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY, new int[]{}); + sDefaults.putIntArray(KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY, new int[] {}); sDefaults.putLong(KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG, TimeUnit.MINUTES.toMillis(30)); sDefaults.putLong(KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG, TimeUnit.MINUTES.toMillis(30)); + sDefaults.putIntArray(KEY_PREMIUM_CAPABILITY_MAXIMUM_NOTIFICATION_COUNT_INT_ARRAY, + new int[] {2, 10}); sDefaults.putLong( KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG, TimeUnit.MINUTES.toMillis(30)); sDefaults.putString(KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING, null); + sDefaults.putBoolean(KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL, false); sDefaults.putStringArray(KEY_IWLAN_HANDOVER_POLICY_STRING_ARRAY, new String[]{ "source=GERAN|UTRAN|EUTRAN|NGRAN|IWLAN, " + "target=GERAN|UTRAN|EUTRAN|NGRAN|IWLAN, type=allowed"}); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index f3d48a849b0f..97a464cb76da 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -54,6 +54,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.database.Cursor; import android.net.ConnectivityManager; +import android.net.NetworkCapabilities; import android.net.Uri; import android.os.AsyncTask; import android.os.Binder; @@ -17115,11 +17116,12 @@ public class TelephonyManager { } /** - * A premium capability boosting the network to allow real-time interactive traffic. - * Corresponds to NetworkCapabilities#NET_CAPABILITY_REALTIME_INTERACTIVE_TRAFFIC. + * A premium capability that boosts the network to allow for real-time interactive traffic + * by prioritizing low latency communication. + * Corresponds to {@link NetworkCapabilities#NET_CAPABILITY_PRIORITIZE_LATENCY}. */ - // TODO(b/245748544): add @link once NET_CAPABILITY_REALTIME_INTERACTIVE_TRAFFIC is defined. - public static final int PREMIUM_CAPABILITY_REALTIME_INTERACTIVE_TRAFFIC = 1; + public static final int PREMIUM_CAPABILITY_PRIORITIZE_LATENCY = + NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY; /** * Purchasable premium capabilities. @@ -17127,7 +17129,7 @@ public class TelephonyManager { */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "PREMIUM_CAPABILITY_" }, value = { - PREMIUM_CAPABILITY_REALTIME_INTERACTIVE_TRAFFIC}) + PREMIUM_CAPABILITY_PRIORITIZE_LATENCY}) public @interface PremiumCapability {} /** @@ -17139,8 +17141,8 @@ public class TelephonyManager { */ public static String convertPremiumCapabilityToString(@PremiumCapability int capability) { switch (capability) { - case PREMIUM_CAPABILITY_REALTIME_INTERACTIVE_TRAFFIC: - return "REALTIME_INTERACTIVE_TRAFFIC"; + case PREMIUM_CAPABILITY_PRIORITIZE_LATENCY: + return "PRIORITIZE_LATENCY"; default: return "UNKNOWN (" + capability + ")"; } @@ -17178,11 +17180,18 @@ public class TelephonyManager { public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS = 1; /** - * Purchase premium capability failed because the request is throttled for the amount of time + * Purchase premium capability failed because the request is throttled. + * If purchasing premium capabilities is throttled, it will be for the amount of time * specified by {@link CarrierConfigManager - * #KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG} - * or {@link CarrierConfigManager * #KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG}. + * If displaying the network boost notification is throttled, it will be for the amount of time + * specified by {@link CarrierConfigManager + * #KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_INT_ARRAY}. + * If a foreground application requests premium capabilities, the network boost notification + * will be displayed to the user regardless of the throttled status. + * We will show the network boost notification to the user up to the daily and monthly maximum + * number of times specified by {@link CarrierConfigManager + * #KEY_PREMIUM_CAPABILITY_MAXIMUM_NOTIFICATION_COUNT_INT_ARRAY}. * Subsequent attempts will return the same error until the request is no longer throttled * or throttling conditions change. */ @@ -17202,10 +17211,14 @@ public class TelephonyManager { public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS = 4; /** - * Purchase premium capability failed because the user disabled the feature. - * Subsequent attempts will return the same error until the user re-enables the feature. + * Purchase premium capability failed because a foreground application requested the same + * capability. The notification for the current application will be dismissed and a new + * notification will be displayed to the user for the foreground application. + * Subsequent attempts will return + * {@link #PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS} until the foreground + * application's request is completed. */ - public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_DISABLED = 5; + public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN = 5; /** * Purchase premium capability failed because the user canceled the operation. @@ -17252,7 +17265,8 @@ public class TelephonyManager { public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED = 10; /** - * Purchase premium capability failed because the telephony service is down or unavailable. + * Purchase premium capability failed because the telephony service is unavailable + * or there was an error in the phone process. * Subsequent attempts will return the same error until request conditions are satisfied. */ public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED = 11; @@ -17274,6 +17288,14 @@ public class TelephonyManager { public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED = 13; /** + * Purchase premium capability failed because the request was not made on the default data + * subscription, indicated by {@link SubscriptionManager#getDefaultDataSubscriptionId()}. + * Subsequent attempts will return the same error until the request is made on the default + * data subscription. + */ + public static final int PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA = 14; + + /** * Results of the purchase premium capability request. * @hide */ @@ -17283,14 +17305,15 @@ public class TelephonyManager { PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED, PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED, PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS, - PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_DISABLED, + PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN, PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED, PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED, PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR, PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT, PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED, PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE, - PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED}) + PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED, + PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA}) public @interface PurchasePremiumCapabilityResult {} /** @@ -17311,8 +17334,8 @@ public class TelephonyManager { return "ALREADY_PURCHASED"; case PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS: return "ALREADY_IN_PROGRESS"; - case PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_DISABLED: - return "USER_DISABLED"; + case PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN: + return "OVERRIDDEN"; case PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED: return "USER_CANCELED"; case PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED: @@ -17329,6 +17352,8 @@ public class TelephonyManager { return "NETWORK_NOT_AVAILABLE"; case PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED: return "NETWORK_CONGESTED"; + case PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA: + return "NOT_DEFAULT_DATA"; default: return "UNKNOWN (" + result + ")"; } @@ -17346,7 +17371,7 @@ public class TelephonyManager { * @param callback The result of the purchase request. * One of {@link PurchasePremiumCapabilityResult}. * @throws SecurityException if the caller does not hold permission READ_BASIC_PHONE_STATE. - * @see #isPremiumCapabilityAvailableForPurchase(int) to check whether the capability is valid + * @see #isPremiumCapabilityAvailableForPurchase(int) to check whether the capability is valid. */ @RequiresPermission(android.Manifest.permission.READ_BASIC_PHONE_STATE) public void purchasePremiumCapability(@PremiumCapability int capability, diff --git a/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java b/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java index 35859fe1472e..29d87a25c939 100644 --- a/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java +++ b/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java @@ -18,6 +18,7 @@ package com.android.tests.rollback.host; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.junit.Assume.assumeTrue; import com.android.tradefed.testtype.DeviceJUnit4ClassRunner; import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test; @@ -35,6 +36,7 @@ import java.util.concurrent.TimeUnit; */ @RunWith(DeviceJUnit4ClassRunner.class) public class MultiUserRollbackTest extends BaseHostJUnit4Test { + private boolean mSupportMultiUsers; // The user that was running originally when the test starts. private int mOriginalUserId; private int mSecondaryUserId = -1; @@ -46,14 +48,20 @@ public class MultiUserRollbackTest extends BaseHostJUnit4Test { @After public void tearDown() throws Exception { - removeSecondaryUserIfNecessary(); - runPhaseForUsers("cleanUp", mOriginalUserId); - uninstallPackage("com.android.cts.install.lib.testapp.A"); - uninstallPackage("com.android.cts.install.lib.testapp.B"); + if (mSupportMultiUsers) { + removeSecondaryUserIfNecessary(); + runPhaseForUsers("cleanUp", mOriginalUserId); + uninstallPackage("com.android.cts.install.lib.testapp.A"); + uninstallPackage("com.android.cts.install.lib.testapp.B"); + } } @Before public void setup() throws Exception { + assumeTrue("Device does not support multiple users", + getDevice().isMultiUserSupported()); + + mSupportMultiUsers = true; mOriginalUserId = getDevice().getCurrentUser(); createAndStartSecondaryUser(); installPackage("RollbackTest.apk", "--user all"); diff --git a/tests/RollbackTest/SampleRollbackApp/AndroidManifest.xml b/tests/RollbackTest/SampleRollbackApp/AndroidManifest.xml index 5a135c978343..7fe4bae2a3fe 100644 --- a/tests/RollbackTest/SampleRollbackApp/AndroidManifest.xml +++ b/tests/RollbackTest/SampleRollbackApp/AndroidManifest.xml @@ -16,7 +16,7 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.sample.rollbackapp" > - <uses-permission android:name="android.permission.TEST_MANAGE_ROLLBACKS" /> + <uses-permission android:name="android.permission.MANAGE_ROLLBACKS" /> <application android:label="@string/title_activity_main"> <activity @@ -28,4 +28,4 @@ </intent-filter> </activity> </application> -</manifest>
\ No newline at end of file +</manifest> diff --git a/tests/RollbackTest/SampleRollbackApp/src/com/android/sample/rollbackapp/MainActivity.java b/tests/RollbackTest/SampleRollbackApp/src/com/android/sample/rollbackapp/MainActivity.java index 916551a8ce6d..79a2f1f5f4de 100644 --- a/tests/RollbackTest/SampleRollbackApp/src/com/android/sample/rollbackapp/MainActivity.java +++ b/tests/RollbackTest/SampleRollbackApp/src/com/android/sample/rollbackapp/MainActivity.java @@ -75,6 +75,7 @@ public class MainActivity extends Activity { String rollbackStatus = "FAILED"; if (rollbackStatusCode == RollbackManager.STATUS_SUCCESS) { rollbackStatus = "SUCCESS"; + mTriggerRollbackButton.setClickable(false); } makeToast("Status for rollback ID " + rollbackId + " is " + rollbackStatus); }}, new IntentFilter(ACTION_NAME), Context.RECEIVER_NOT_EXPORTED); diff --git a/tests/benchmarks/internal/src/com/android/internal/LambdaPerfTest.java b/tests/benchmarks/internal/src/com/android/internal/LambdaPerfTest.java index 2001c04bd645..0a03e8d6534a 100644 --- a/tests/benchmarks/internal/src/com/android/internal/LambdaPerfTest.java +++ b/tests/benchmarks/internal/src/com/android/internal/LambdaPerfTest.java @@ -29,7 +29,6 @@ import android.util.Log; import androidx.test.filters.LargeTest; -import com.android.internal.util.function.pooled.PooledConsumer; import com.android.internal.util.function.pooled.PooledLambda; import com.android.internal.util.function.pooled.PooledPredicate; @@ -46,7 +45,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.CountDownLatch; -import java.util.function.Consumer; import java.util.function.Predicate; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -94,27 +92,27 @@ public class LambdaPerfTest { }; @Test - public void test1ParamConsumer() { - evaluate(LAMBDA_FORM_REGULAR, () -> forAllTask(t -> t.doSomething(mTask))); + public void test1ParamPredicate() { + evaluate(LAMBDA_FORM_REGULAR, () -> handleTask(t -> t.doSomething(mTaskId, mTime))); evaluate(LAMBDA_FORM_POOLED, () -> { - final PooledConsumer c = PooledLambda.obtainConsumer(Task::doSomething, - PooledLambda.__(Task.class), mTask); - forAllTask(c); + final PooledPredicate c = PooledLambda.obtainPredicate(Task::doSomething, + PooledLambda.__(Task.class), mTaskId, mTime); + handleTask(c); c.recycle(); }); } @Test - public void test2PrimitiveParamsConsumer() { + public void test2PrimitiveParamsPredicate() { // Not in Integer#IntegerCache (-128~127) for autoboxing, that may create new object. mTaskId = 12345; mTime = 54321; - evaluate(LAMBDA_FORM_REGULAR, () -> forAllTask(t -> t.doSomething(mTaskId, mTime))); + evaluate(LAMBDA_FORM_REGULAR, () -> handleTask(t -> t.doSomething(mTaskId, mTime))); evaluate(LAMBDA_FORM_POOLED, () -> { - final PooledConsumer c = PooledLambda.obtainConsumer(Task::doSomething, + final PooledPredicate c = PooledLambda.obtainPredicate(Task::doSomething, PooledLambda.__(Task.class), mTaskId, mTime); - forAllTask(c); + handleTask(c); c.recycle(); }); } @@ -164,15 +162,15 @@ public class LambdaPerfTest { public void testMultiThread() { final int numThread = 3; - final Runnable regularAction = () -> forAllTask(t -> t.doSomething(mTask)); + final Runnable regularAction = () -> handleTask(t -> t.doSomething(mTaskId, mTime)); final Runnable[] regularActions = new Runnable[numThread]; Arrays.fill(regularActions, regularAction); evaluateMultiThread(LAMBDA_FORM_REGULAR, regularActions); final Runnable pooledAction = () -> { - final PooledConsumer c = PooledLambda.obtainConsumer(Task::doSomething, - PooledLambda.__(Task.class), mTask); - forAllTask(c); + final PooledPredicate c = PooledLambda.obtainPredicate(Task::doSomething, + PooledLambda.__(Task.class), mTaskId, mTime); + handleTask(c); c.recycle(); }; final Runnable[] pooledActions = new Runnable[numThread]; @@ -180,12 +178,6 @@ public class LambdaPerfTest { evaluateMultiThread(LAMBDA_FORM_POOLED, pooledActions); } - private void forAllTask(Consumer<Task> callback) { - for (int i = mTasks.size() - 1; i >= 0; i--) { - callback.accept(mTasks.get(i)); - } - } - private void handleTask(Predicate<Task> callback) { for (int i = mTasks.size() - 1; i >= 0; i--) { final Task task = mTasks.get(i); @@ -318,10 +310,8 @@ public class LambdaPerfTest { void doSomething() { } - void doSomething(Task t) { - } - - void doSomething(int taskId, long time) { + boolean doSomething(int taskId, long time) { + return false; } boolean doSomething(Rect bounds, boolean top, int taskId) { diff --git a/tools/aapt2/cmd/Convert.cpp b/tools/aapt2/cmd/Convert.cpp index aeedf8b5805e..52e113e0dbdc 100644 --- a/tools/aapt2/cmd/Convert.cpp +++ b/tools/aapt2/cmd/Convert.cpp @@ -21,7 +21,9 @@ #include "Diagnostics.h" #include "LoadedApk.h" #include "ValueVisitor.h" +#include "android-base/file.h" #include "android-base/macros.h" +#include "android-base/stringprintf.h" #include "androidfw/StringPiece.h" #include "cmd/Util.h" #include "format/binary/TableFlattener.h" @@ -353,6 +355,27 @@ int Convert(IAaptContext* context, LoadedApk* apk, IArchiveWriter* output_writer return 0; } +bool ExtractResourceConfig(const std::string& path, IAaptContext* context, + TableFlattenerOptions& out_options) { + std::string content; + if (!android::base::ReadFileToString(path, &content, true /*follow_symlinks*/)) { + context->GetDiagnostics()->Error(android::DiagMessage(path) << "failed reading config file"); + return false; + } + std::unordered_set<ResourceName> resources_exclude_list; + bool result = ParseResourceConfig(content, context, resources_exclude_list, + out_options.name_collapse_exemptions); + if (!result) { + return false; + } + if (!resources_exclude_list.empty()) { + context->GetDiagnostics()->Error(android::DiagMessage(path) + << "Unsupported '#remove' directive in resource config."); + return false; + } + return true; +} + const char* ConvertCommand::kOutputFormatProto = "proto"; const char* ConvertCommand::kOutputFormatBinary = "binary"; @@ -401,6 +424,11 @@ int ConvertCommand::Action(const std::vector<std::string>& args) { if (force_sparse_encoding_) { table_flattener_options_.sparse_entries = SparseEntriesMode::Forced; } + if (resources_config_path_) { + if (!ExtractResourceConfig(*resources_config_path_, &context, table_flattener_options_)) { + return 1; + } + } return Convert(&context, apk.get(), writer.get(), format, table_flattener_options_, xml_flattener_options_); diff --git a/tools/aapt2/cmd/Convert.h b/tools/aapt2/cmd/Convert.h index 6c096496a1ea..15fe11fd91cc 100644 --- a/tools/aapt2/cmd/Convert.h +++ b/tools/aapt2/cmd/Convert.h @@ -50,6 +50,25 @@ class ConvertCommand : public Command { android::base::StringPrintf("Preserve raw attribute values in xml files when using the" " '%s' output format", kOutputFormatBinary), &xml_flattener_options_.keep_raw_values); + AddOptionalFlag("--resources-config-path", + "Path to the resources.cfg file containing the list of resources and \n" + "directives to each resource. \n" + "Format: type/resource_name#[directive][,directive]", + &resources_config_path_); + AddOptionalSwitch( + "--collapse-resource-names", + "Collapses resource names to a single value in the key string pool. Resources can \n" + "be exempted using the \"no_collapse\" directive in a file specified by " + "--resources-config-path.", + &table_flattener_options_.collapse_key_stringpool); + AddOptionalSwitch( + "--deduplicate-entry-values", + "Whether to deduplicate pairs of resource entry and value for simple resources.\n" + "This is recommended to be used together with '--collapse-resource-names' flag or for\n" + "APKs where resource names are manually collapsed. For such APKs this flag allows to\n" + "store the same resource value only once in resource table which decreases APK size.\n" + "Has no effect on APKs where resource names are kept.", + &table_flattener_options_.deduplicate_entry_values); AddOptionalSwitch("-v", "Enables verbose logging", &verbose_); } @@ -66,6 +85,7 @@ class ConvertCommand : public Command { bool verbose_ = false; bool enable_sparse_encoding_ = false; bool force_sparse_encoding_ = false; + std::optional<std::string> resources_config_path_; }; int Convert(IAaptContext* context, LoadedApk* input, IArchiveWriter* output_writer, diff --git a/tools/aapt2/cmd/Convert_test.cpp b/tools/aapt2/cmd/Convert_test.cpp index 27df8c1b324e..2c9388b7d711 100644 --- a/tools/aapt2/cmd/Convert_test.cpp +++ b/tools/aapt2/cmd/Convert_test.cpp @@ -17,13 +17,18 @@ #include "Convert.h" #include "LoadedApk.h" +#include "test/Common.h" #include "test/Test.h" #include "ziparchive/zip_archive.h" +using testing::AnyOfArray; using testing::Eq; using testing::Ne; +using testing::Not; +using testing::SizeIs; namespace aapt { +using namespace aapt::test; using ConvertTest = CommandTestFixture; @@ -145,4 +150,76 @@ TEST_F(ConvertTest, DuplicateEntriesWrittenOnce) { EXPECT_THAT(count, Eq(1)); } +TEST_F(ConvertTest, ConvertWithResourceNameCollapsing) { + StdErrDiagnostics diag; + const std::string compiled_files_dir = GetTestPath("compiled"); + ASSERT_TRUE(CompileFile(GetTestPath("res/values/values.xml"), + R"(<resources> + <string name="first">string</string> + <string name="second">string</string> + <string name="third">another string</string> + + <bool name="bool1">true</bool> + <bool name="bool2">true</bool> + <bool name="bool3">true</bool> + + <integer name="int1">10</integer> + <integer name="int2">10</integer> + </resources>)", + compiled_files_dir, &diag)); + std::string resource_config_path = GetTestPath("resource-config"); + WriteFile(resource_config_path, "integer/int1#no_collapse\ninteger/int2#no_collapse"); + + const std::string proto_apk = GetTestPath("proto.apk"); + std::vector<std::string> link_args = { + "--proto-format", "--manifest", GetDefaultManifest(kDefaultPackageName), "-o", proto_apk, + }; + ASSERT_TRUE(Link(link_args, compiled_files_dir, &diag)); + + const std::string binary_apk = GetTestPath("binary.apk"); + std::vector<android::StringPiece> convert_args = {"-o", + binary_apk, + "--output-format", + "binary", + "--collapse-resource-names", + "--deduplicate-entry-values", + "--resources-config-path", + resource_config_path, + proto_apk}; + ASSERT_THAT(ConvertCommand().Execute(convert_args, &std::cerr), Eq(0)); + + std::unique_ptr<LoadedApk> apk = LoadedApk::LoadApkFromPath(binary_apk, &diag); + for (const auto& package : apk->GetResourceTable()->packages) { + for (const auto& type : package->types) { + switch (type->named_type.type) { + case ResourceType::kBool: + EXPECT_THAT(type->entries, SizeIs(3)); + for (const auto& entry : type->entries) { + auto value = ValueCast<BinaryPrimitive>(entry->FindValue({})->value.get())->value; + EXPECT_THAT(value.data, Eq(0xffffffffu)); + } + break; + case ResourceType::kString: + EXPECT_THAT(type->entries, SizeIs(3)); + for (const auto& entry : type->entries) { + auto value = ValueCast<String>(entry->FindValue({})->value.get())->value; + EXPECT_THAT(entry->name, Not(AnyOfArray({"first", "second", "third"}))); + EXPECT_THAT(*value, AnyOfArray({"string", "another string"})); + } + break; + case ResourceType::kInteger: + EXPECT_THAT(type->entries, SizeIs(2)); + for (const auto& entry : type->entries) { + auto value = ValueCast<BinaryPrimitive>(entry->FindValue({})->value.get())->value; + EXPECT_THAT(entry->name, AnyOfArray({"int1", "int2"})); + EXPECT_THAT(value.data, Eq(10)); + } + break; + default: + break; + } + } + } +} + } // namespace aapt diff --git a/tools/aapt2/cmd/Optimize.cpp b/tools/aapt2/cmd/Optimize.cpp index 9feaf524eaf1..042926c1943a 100644 --- a/tools/aapt2/cmd/Optimize.cpp +++ b/tools/aapt2/cmd/Optimize.cpp @@ -305,51 +305,14 @@ class Optimizer { OptimizeContext* context_; }; -bool ParseConfig(const std::string& content, IAaptContext* context, OptimizeOptions* options) { - size_t line_no = 0; - for (StringPiece line : util::Tokenize(content, '\n')) { - line_no++; - line = util::TrimWhitespace(line); - if (line.empty()) { - continue; - } - - auto split_line = util::Split(line, '#'); - if (split_line.size() < 2) { - context->GetDiagnostics()->Error(android::DiagMessage(line) << "No # found in line"); - return false; - } - StringPiece resource_string = split_line[0]; - StringPiece directives = split_line[1]; - ResourceNameRef resource_name; - if (!ResourceUtils::ParseResourceName(resource_string, &resource_name)) { - context->GetDiagnostics()->Error(android::DiagMessage(line) << "Malformed resource name"); - return false; - } - if (!resource_name.package.empty()) { - context->GetDiagnostics()->Error(android::DiagMessage(line) - << "Package set for resource. Only use type/name"); - return false; - } - for (StringPiece directive : util::Tokenize(directives, ',')) { - if (directive == "remove") { - options->resources_exclude_list.insert(resource_name.ToResourceName()); - } else if (directive == "no_collapse" || directive == "no_obfuscate") { - options->table_flattener_options.name_collapse_exemptions.insert( - resource_name.ToResourceName()); - } - } - } - return true; -} - bool ExtractConfig(const std::string& path, IAaptContext* context, OptimizeOptions* options) { std::string content; if (!android::base::ReadFileToString(path, &content, true /*follow_symlinks*/)) { context->GetDiagnostics()->Error(android::DiagMessage(path) << "failed reading config file"); return false; } - return ParseConfig(content, context, options); + return ParseResourceConfig(content, context, options->resources_exclude_list, + options->table_flattener_options.name_collapse_exemptions); } bool ExtractAppDataFromManifest(OptimizeContext* context, const LoadedApk* apk, diff --git a/tools/aapt2/cmd/Optimize.h b/tools/aapt2/cmd/Optimize.h index 790bb74b2566..794a87b0faa5 100644 --- a/tools/aapt2/cmd/Optimize.h +++ b/tools/aapt2/cmd/Optimize.h @@ -123,6 +123,14 @@ class OptimizeCommand : public Command { AddOptionalFlag("--resource-path-shortening-map", "Path to output the map of old resource paths to shortened paths.", &options_.shortened_paths_map_path); + AddOptionalSwitch( + "--deduplicate-entry-values", + "Whether to deduplicate pairs of resource entry and value for simple resources.\n" + "This is recommended to be used together with '--collapse-resource-names' flag or for\n" + "APKs where resource names are manually collapsed. For such APKs this flag allows to\n" + "store the same resource value only once in resource table which decreases APK size.\n" + "Has no effect on APKs where resource names are kept.", + &options_.table_flattener_options.deduplicate_entry_values); AddOptionalSwitch("-v", "Enables verbose logging", &verbose_); } diff --git a/tools/aapt2/cmd/Optimize_test.cpp b/tools/aapt2/cmd/Optimize_test.cpp deleted file mode 100644 index d180c87de81e..000000000000 --- a/tools/aapt2/cmd/Optimize_test.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "Optimize.h" - -#include "AppInfo.h" -#include "LoadedApk.h" -#include "Resource.h" -#include "androidfw/IDiagnostics.h" -#include "test/Test.h" - -using testing::Contains; -using testing::Eq; - -namespace aapt { - -bool ParseConfig(const std::string&, IAaptContext*, OptimizeOptions*); - -using OptimizeTest = CommandTestFixture; - -TEST_F(OptimizeTest, ParseConfigWithNoCollapseExemptions) { - const std::string& content = R"( -string/foo#no_collapse -dimen/bar#no_collapse -)"; - aapt::test::Context context; - OptimizeOptions options; - ParseConfig(content, &context, &options); - - const std::set<ResourceName>& name_collapse_exemptions = - options.table_flattener_options.name_collapse_exemptions; - - ASSERT_THAT(name_collapse_exemptions.size(), Eq(2)); - EXPECT_THAT(name_collapse_exemptions, Contains(ResourceName({}, ResourceType::kString, "foo"))); - EXPECT_THAT(name_collapse_exemptions, Contains(ResourceName({}, ResourceType::kDimen, "bar"))); -} - -TEST_F(OptimizeTest, ParseConfigWithNoObfuscateExemptions) { - const std::string& content = R"( -string/foo#no_obfuscate -dimen/bar#no_obfuscate -)"; - aapt::test::Context context; - OptimizeOptions options; - ParseConfig(content, &context, &options); - - const std::set<ResourceName>& name_collapse_exemptions = - options.table_flattener_options.name_collapse_exemptions; - - ASSERT_THAT(name_collapse_exemptions.size(), Eq(2)); - EXPECT_THAT(name_collapse_exemptions, Contains(ResourceName({}, ResourceType::kString, "foo"))); - EXPECT_THAT(name_collapse_exemptions, Contains(ResourceName({}, ResourceType::kDimen, "bar"))); -} - -} // namespace aapt diff --git a/tools/aapt2/cmd/Util.cpp b/tools/aapt2/cmd/Util.cpp index c3a6ed100730..56e2f5243e96 100644 --- a/tools/aapt2/cmd/Util.cpp +++ b/tools/aapt2/cmd/Util.cpp @@ -447,4 +447,41 @@ std::regex GetRegularExpression(const std::string &input) { return case_insensitive; } +bool ParseResourceConfig(const std::string& content, IAaptContext* context, + std::unordered_set<ResourceName>& out_resource_exclude_list, + std::set<ResourceName>& out_name_collapse_exemptions) { + for (StringPiece line : util::Tokenize(content, '\n')) { + line = util::TrimWhitespace(line); + if (line.empty()) { + continue; + } + + auto split_line = util::Split(line, '#'); + if (split_line.size() < 2) { + context->GetDiagnostics()->Error(android::DiagMessage(line) << "No # found in line"); + return false; + } + StringPiece resource_string = split_line[0]; + StringPiece directives = split_line[1]; + ResourceNameRef resource_name; + if (!ResourceUtils::ParseResourceName(resource_string, &resource_name)) { + context->GetDiagnostics()->Error(android::DiagMessage(line) << "Malformed resource name"); + return false; + } + if (!resource_name.package.empty()) { + context->GetDiagnostics()->Error(android::DiagMessage(line) + << "Package set for resource. Only use type/name"); + return false; + } + for (StringPiece directive : util::Tokenize(directives, ',')) { + if (directive == "remove") { + out_resource_exclude_list.insert(resource_name.ToResourceName()); + } else if (directive == "no_collapse" || directive == "no_obfuscate") { + out_name_collapse_exemptions.insert(resource_name.ToResourceName()); + } + } + } + return true; +} + } // namespace aapt diff --git a/tools/aapt2/cmd/Util.h b/tools/aapt2/cmd/Util.h index 7af27f57c39c..3d4ca245ee28 100644 --- a/tools/aapt2/cmd/Util.h +++ b/tools/aapt2/cmd/Util.h @@ -18,12 +18,15 @@ #define AAPT_SPLIT_UTIL_H #include <regex> +#include <set> +#include <unordered_set> #include "AppInfo.h" #include "SdkConstants.h" #include "androidfw/IDiagnostics.h" #include "androidfw/StringPiece.h" #include "filter/ConfigFilter.h" +#include "process/IResourceTableConsumer.h" #include "split/TableSplitter.h" #include "xml/XmlDom.h" @@ -76,6 +79,10 @@ void SetLongVersionCode(xml::Element* manifest, uint64_t version_code); // Returns a case insensitive regular expression based on the input. std::regex GetRegularExpression(const std::string &input); +bool ParseResourceConfig(const std::string& content, IAaptContext* context, + std::unordered_set<ResourceName>& out_resource_exclude_list, + std::set<ResourceName>& out_name_collapse_exemptions); + } // namespace aapt #endif /* AAPT_SPLIT_UTIL_H */ diff --git a/tools/aapt2/cmd/Util_test.cpp b/tools/aapt2/cmd/Util_test.cpp index 91accfe0511f..28a6de80e7ce 100644 --- a/tools/aapt2/cmd/Util_test.cpp +++ b/tools/aapt2/cmd/Util_test.cpp @@ -25,6 +25,7 @@ #include "util/Files.h" using ::android::ConfigDescription; +using testing::UnorderedElementsAre; namespace aapt { @@ -411,4 +412,61 @@ TEST (UtilTest, RegularExpressionNonEnglish) { EXPECT_FALSE(std::regex_search("file.koncowka", expression)); } +TEST(UtilTest, ParseConfigWithDirectives) { + const std::string& content = R"( +bool/remove_me#remove +bool/keep_name#no_collapse +string/foo#no_obfuscate +dimen/bar#no_obfuscate +)"; + aapt::test::Context context; + std::unordered_set<ResourceName> resource_exclusion; + std::set<ResourceName> name_collapse_exemptions; + + EXPECT_TRUE(ParseResourceConfig(content, &context, resource_exclusion, name_collapse_exemptions)); + + EXPECT_THAT(name_collapse_exemptions, + UnorderedElementsAre(ResourceName({}, ResourceType::kString, "foo"), + ResourceName({}, ResourceType::kDimen, "bar"), + ResourceName({}, ResourceType::kBool, "keep_name"))); + EXPECT_THAT(resource_exclusion, + UnorderedElementsAre(ResourceName({}, ResourceType::kBool, "remove_me"))); +} + +TEST(UtilTest, ParseConfigResourceWithPackage) { + const std::string& content = R"( +package:bool/remove_me#remove +)"; + aapt::test::Context context; + std::unordered_set<ResourceName> resource_exclusion; + std::set<ResourceName> name_collapse_exemptions; + + EXPECT_FALSE( + ParseResourceConfig(content, &context, resource_exclusion, name_collapse_exemptions)); +} + +TEST(UtilTest, ParseConfigInvalidName) { + const std::string& content = R"( +package:bool/1231#remove +)"; + aapt::test::Context context; + std::unordered_set<ResourceName> resource_exclusion; + std::set<ResourceName> name_collapse_exemptions; + + EXPECT_FALSE( + ParseResourceConfig(content, &context, resource_exclusion, name_collapse_exemptions)); +} + +TEST(UtilTest, ParseConfigNoHash) { + const std::string& content = R"( +package:bool/my_bool +)"; + aapt::test::Context context; + std::unordered_set<ResourceName> resource_exclusion; + std::set<ResourceName> name_collapse_exemptions; + + EXPECT_FALSE( + ParseResourceConfig(content, &context, resource_exclusion, name_collapse_exemptions)); +} + } // namespace aapt diff --git a/tools/lint/checks/src/main/java/com/google/android/lint/PermissionMethodDetector.kt b/tools/lint/checks/src/main/java/com/google/android/lint/PermissionMethodDetector.kt index 68a450d956a8..1b0f03564c3b 100644 --- a/tools/lint/checks/src/main/java/com/google/android/lint/PermissionMethodDetector.kt +++ b/tools/lint/checks/src/main/java/com/google/android/lint/PermissionMethodDetector.kt @@ -26,6 +26,7 @@ import com.android.tools.lint.detector.api.Scope import com.android.tools.lint.detector.api.Severity import com.android.tools.lint.detector.api.SourceCodeScanner import com.android.tools.lint.detector.api.getUMethod +import com.google.android.lint.aidl.hasPermissionMethodAnnotation import com.intellij.psi.PsiType import org.jetbrains.uast.UAnnotation import org.jetbrains.uast.UBlockExpression @@ -149,11 +150,6 @@ class PermissionMethodDetector : Detector(), SourceCodeScanner { enabledByDefault = false ) - private fun hasPermissionMethodAnnotation(method: UMethod): Boolean = method.annotations - .any { - it.hasQualifiedName(ANNOTATION_PERMISSION_METHOD) - } - private fun isPermissionMethodReturnType(method: UMethod): Boolean = listOf(PsiType.VOID, PsiType.INT, PsiType.BOOLEAN).contains(method.returnType) diff --git a/tools/lint/checks/src/main/java/com/google/android/lint/aidl/EnforcePermissionFix.kt b/tools/lint/checks/src/main/java/com/google/android/lint/aidl/EnforcePermissionFix.kt index 510611161ea8..d120e1d41c99 100644 --- a/tools/lint/checks/src/main/java/com/google/android/lint/aidl/EnforcePermissionFix.kt +++ b/tools/lint/checks/src/main/java/com/google/android/lint/aidl/EnforcePermissionFix.kt @@ -18,37 +18,54 @@ package com.google.android.lint.aidl import com.android.tools.lint.detector.api.JavaContext import com.android.tools.lint.detector.api.Location -import com.intellij.psi.PsiVariable +import com.android.tools.lint.detector.api.getUMethod +import org.jetbrains.kotlin.psi.psiUtil.parameterIndex import org.jetbrains.uast.UCallExpression -import org.jetbrains.uast.ULiteralExpression -import org.jetbrains.uast.UQualifiedReferenceExpression -import org.jetbrains.uast.USimpleNameReferenceExpression -import org.jetbrains.uast.asRecursiveLogString +import org.jetbrains.uast.evaluateString +import org.jetbrains.uast.visitor.AbstractUastVisitor /** - * Helper ADT class that facilitates the creation of lint auto fixes + * Helper class that facilitates the creation of lint auto fixes * * Handles "Single" permission checks that should be migrated to @EnforcePermission(...), as well as consecutive checks * that should be migrated to @EnforcePermission(allOf={...}) * * TODO: handle anyOf style annotations */ -sealed class EnforcePermissionFix { - abstract fun locations(): List<Location> - abstract fun javaAnnotationParameter(): String - - fun javaAnnotation(): String = "@$ANNOTATION_ENFORCE_PERMISSION(${javaAnnotationParameter()})" +data class EnforcePermissionFix( + val locations: List<Location>, + val permissionNames: List<String> +) { + val annotation: String + get() { + val quotedPermissions = permissionNames.joinToString(", ") { """"$it"""" } + val annotationParameter = + if (permissionNames.size > 1) "allOf={$quotedPermissions}" else quotedPermissions + return "@$ANNOTATION_ENFORCE_PERMISSION($annotationParameter)" + } companion object { - fun fromCallExpression(callExpression: UCallExpression, context: JavaContext): SingleFix = - SingleFix( - getPermissionCheckLocation(context, callExpression), - getPermissionCheckArgumentValue(callExpression) - ) + /** + * conditionally constructs EnforcePermissionFix from a UCallExpression + * @return EnforcePermissionFix if the called method is annotated with @PermissionMethod, else null + */ + fun fromCallExpression( + context: JavaContext, + callExpression: UCallExpression + ): EnforcePermissionFix? = + if (isPermissionMethodCall(callExpression)) { + EnforcePermissionFix( + listOf(getPermissionCheckLocation(context, callExpression)), + getPermissionCheckValues(callExpression) + ) + } else null - fun maybeAddManifestPrefix(permissionName: String): String = - if (permissionName.contains(".")) permissionName - else "android.Manifest.permission.$permissionName" + + fun compose(individuals: List<EnforcePermissionFix>): EnforcePermissionFix = + EnforcePermissionFix( + individuals.flatMap { it.locations }, + individuals.flatMap { it.permissionNames } + ) /** * Given a permission check, get its proper location @@ -70,49 +87,51 @@ sealed class EnforcePermissionFix { } /** - * Given a permission check and an argument, - * pull out the permission value that is being used + * Given a @PermissionMethod, find arguments annotated with @PermissionName + * and pull out the permission value(s) being used. Also evaluates nested calls + * to @PermissionMethod(s) in the given method's body. */ - private fun getPermissionCheckArgumentValue( - callExpression: UCallExpression, - argumentPosition: Int = 0 - ): String { + private fun getPermissionCheckValues( + callExpression: UCallExpression + ): List<String> { + if (!isPermissionMethodCall(callExpression)) return emptyList() - val identifier = when ( - val argument = callExpression.valueArguments.getOrNull(argumentPosition) - ) { - is UQualifiedReferenceExpression -> when (val selector = argument.selector) { - is USimpleNameReferenceExpression -> - ((selector.resolve() as PsiVariable).computeConstantValue() as String) + val result = mutableSetOf<String>() // protect against duplicate permission values + val visitedCalls = mutableSetOf<UCallExpression>() // don't visit the same call twice + val bfsQueue = ArrayDeque(listOf(callExpression)) - else -> throw RuntimeException( - "Couldn't resolve argument: ${selector.asRecursiveLogString()}" - ) - } + // Breadth First Search - evalutaing nested @PermissionMethod(s) in the available + // source code for @PermissionName(s). + while (bfsQueue.isNotEmpty()) { + val current = bfsQueue.removeFirst() + visitedCalls.add(current) + result.addAll(findPermissions(current)) - is USimpleNameReferenceExpression -> ( - (argument.resolve() as PsiVariable).computeConstantValue() as String) + current.resolve()?.getUMethod()?.accept(object : AbstractUastVisitor() { + override fun visitCallExpression(node: UCallExpression): Boolean { + if (isPermissionMethodCall(node) && node !in visitedCalls) { + bfsQueue.add(node) + } + return false + } + }) + } - is ULiteralExpression -> argument.value as String + return result.toList() + } - else -> throw RuntimeException( - "Couldn't resolve argument: ${argument?.asRecursiveLogString()}" - ) - } + private fun findPermissions( + callExpression: UCallExpression, + ): List<String> { + val indices = callExpression.resolve()?.getUMethod() + ?.uastParameters + ?.filter(::hasPermissionNameAnnotation) + ?.mapNotNull { it.sourcePsi?.parameterIndex() } + ?: emptyList() - return identifier.substringAfterLast(".") + return indices.mapNotNull { + callExpression.getArgumentForParameter(it)?.evaluateString() + } } } } - -data class SingleFix(val location: Location, val permissionName: String) : EnforcePermissionFix() { - override fun locations(): List<Location> = listOf(this.location) - override fun javaAnnotationParameter(): String = maybeAddManifestPrefix(this.permissionName) -} -data class AllOfFix(val checks: List<SingleFix>) : EnforcePermissionFix() { - override fun locations(): List<Location> = this.checks.map { it.location } - override fun javaAnnotationParameter(): String = - "allOf={${ - this.checks.joinToString(", ") { maybeAddManifestPrefix(it.permissionName) } - }}" -} diff --git a/tools/lint/checks/src/main/java/com/google/android/lint/aidl/EnforcePermissionUtils.kt b/tools/lint/checks/src/main/java/com/google/android/lint/aidl/EnforcePermissionUtils.kt new file mode 100644 index 000000000000..edbdd8d2adf3 --- /dev/null +++ b/tools/lint/checks/src/main/java/com/google/android/lint/aidl/EnforcePermissionUtils.kt @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.android.lint.aidl + +import com.android.tools.lint.detector.api.getUMethod +import com.google.android.lint.ANNOTATION_PERMISSION_METHOD +import com.google.android.lint.ANNOTATION_PERMISSION_NAME +import com.google.android.lint.CLASS_STUB +import com.intellij.psi.PsiAnonymousClass +import org.jetbrains.uast.UCallExpression +import org.jetbrains.uast.UMethod +import org.jetbrains.uast.UParameter + +/** + * Given a UMethod, determine if this method is + * an entrypoint to an interface generated by AIDL, + * returning the interface name if so + */ +fun getContainingAidlInterface(node: UMethod): String? { + if (!isInClassCalledStub(node)) return null + for (superMethod in node.findSuperMethods()) { + for (extendsInterface in superMethod.containingClass?.extendsList?.referenceElements + ?: continue) { + if (extendsInterface.qualifiedName == IINTERFACE_INTERFACE) { + return superMethod.containingClass?.name + } + } + } + return null +} + +private fun isInClassCalledStub(node: UMethod): Boolean { + (node.containingClass as? PsiAnonymousClass)?.let { + return it.baseClassReference.referenceName == CLASS_STUB + } + return node.containingClass?.extendsList?.referenceElements?.any { + it.referenceName == CLASS_STUB + } ?: false +} + +fun isPermissionMethodCall(callExpression: UCallExpression): Boolean { + val method = callExpression.resolve()?.getUMethod() ?: return false + return hasPermissionMethodAnnotation(method) +} + +fun hasPermissionMethodAnnotation(method: UMethod): Boolean = method.annotations + .any { + it.hasQualifiedName(ANNOTATION_PERMISSION_METHOD) + } + +fun hasPermissionNameAnnotation(parameter: UParameter) = parameter.annotations.any { + it.hasQualifiedName(ANNOTATION_PERMISSION_NAME) +} diff --git a/tools/lint/checks/src/main/java/com/google/android/lint/aidl/ManualPermissionCheckDetector.kt b/tools/lint/checks/src/main/java/com/google/android/lint/aidl/ManualPermissionCheckDetector.kt index 2cea39423f1d..2c53f390128c 100644 --- a/tools/lint/checks/src/main/java/com/google/android/lint/aidl/ManualPermissionCheckDetector.kt +++ b/tools/lint/checks/src/main/java/com/google/android/lint/aidl/ManualPermissionCheckDetector.kt @@ -25,9 +25,6 @@ import com.android.tools.lint.detector.api.JavaContext import com.android.tools.lint.detector.api.Scope import com.android.tools.lint.detector.api.Severity import com.android.tools.lint.detector.api.SourceCodeScanner -import com.google.android.lint.CLASS_STUB -import com.google.android.lint.ENFORCE_PERMISSION_METHODS -import com.intellij.psi.PsiAnonymousClass import org.jetbrains.uast.UBlockExpression import org.jetbrains.uast.UCallExpression import org.jetbrains.uast.UElement @@ -56,7 +53,7 @@ class ManualPermissionCheckDetector : Detector(), SourceCodeScanner { val body = (node.uastBody as? UBlockExpression) ?: return val fix = accumulateSimplePermissionCheckFixes(body) ?: return - val javaRemoveFixes = fix.locations().map { + val javaRemoveFixes = fix.locations.map { fix() .replace() .reformat(true) @@ -67,7 +64,7 @@ class ManualPermissionCheckDetector : Detector(), SourceCodeScanner { } val javaAnnotateFix = fix() - .annotate(fix.javaAnnotation()) + .annotate(fix.annotation) .range(context.getLocation(node)) .autoFix() .build() @@ -77,7 +74,7 @@ class ManualPermissionCheckDetector : Detector(), SourceCodeScanner { context.report( ISSUE_USE_ENFORCE_PERMISSION_ANNOTATION, - fix.locations().last(), + fix.locations.last(), message, fix().composite(*javaRemoveFixes.toTypedArray(), javaAnnotateFix) ) @@ -97,14 +94,14 @@ class ManualPermissionCheckDetector : Detector(), SourceCodeScanner { */ private fun accumulateSimplePermissionCheckFixes(methodBody: UBlockExpression): EnforcePermissionFix? { - val singleFixes = mutableListOf<SingleFix>() + val singleFixes = mutableListOf<EnforcePermissionFix>() for (expression in methodBody.expressions) { singleFixes.add(getPermissionCheckFix(expression) ?: break) } return when (singleFixes.size) { 0 -> null 1 -> singleFixes[0] - else -> AllOfFix(singleFixes) + else -> EnforcePermissionFix.compose(singleFixes) } } @@ -113,7 +110,7 @@ class ManualPermissionCheckDetector : Detector(), SourceCodeScanner { * the helper for creating a lint auto fix to @EnforcePermission */ private fun getPermissionCheckFix(startingExpression: UElement?): - SingleFix? { + EnforcePermissionFix? { return when (startingExpression) { is UQualifiedReferenceExpression -> getPermissionCheckFix( startingExpression.selector @@ -121,11 +118,8 @@ class ManualPermissionCheckDetector : Detector(), SourceCodeScanner { is UIfExpression -> getPermissionCheckFix(startingExpression.condition) - is UCallExpression -> { - return if (isPermissionCheck(startingExpression)) - EnforcePermissionFix.fromCallExpression(startingExpression, context) - else null - } + is UCallExpression -> return EnforcePermissionFix + .fromCallExpression(context, startingExpression) else -> null } @@ -160,40 +154,5 @@ class ManualPermissionCheckDetector : Detector(), SourceCodeScanner { ), enabledByDefault = false, // TODO: enable once b/241171714 is resolved ) - - private fun isPermissionCheck(callExpression: UCallExpression): Boolean { - val method = callExpression.resolve() ?: return false - val className = method.containingClass?.qualifiedName - return ENFORCE_PERMISSION_METHODS.any { - it.clazz == className && it.name == method.name - } - } - - /** - * given a UMethod, determine if this method is - * an entrypoint to an interface generated by AIDL, - * returning the interface name if so - */ - fun getContainingAidlInterface(node: UMethod): String? { - if (!isInClassCalledStub(node)) return null - for (superMethod in node.findSuperMethods()) { - for (extendsInterface in superMethod.containingClass?.extendsList?.referenceElements - ?: continue) { - if (extendsInterface.qualifiedName == IINTERFACE_INTERFACE) { - return superMethod.containingClass?.name - } - } - } - return null - } - - private fun isInClassCalledStub(node: UMethod): Boolean { - (node.containingClass as? PsiAnonymousClass)?.let { - return it.baseClassReference.referenceName == CLASS_STUB - } - return node.containingClass?.extendsList?.referenceElements?.any { - it.referenceName == CLASS_STUB - } ?: false - } } } diff --git a/tools/lint/checks/src/test/java/com/google/android/lint/aidl/ManualPermissionCheckDetectorTest.kt b/tools/lint/checks/src/test/java/com/google/android/lint/aidl/ManualPermissionCheckDetectorTest.kt index 1a1c6bc77785..a968f5e6cb1c 100644 --- a/tools/lint/checks/src/test/java/com/google/android/lint/aidl/ManualPermissionCheckDetectorTest.kt +++ b/tools/lint/checks/src/test/java/com/google/android/lint/aidl/ManualPermissionCheckDetectorTest.kt @@ -19,6 +19,7 @@ package com.google.android.lint.aidl import com.android.tools.lint.checks.infrastructure.LintDetectorTest import com.android.tools.lint.checks.infrastructure.TestFile import com.android.tools.lint.checks.infrastructure.TestLintTask +import com.android.tools.lint.checks.infrastructure.TestMode import com.android.tools.lint.detector.api.Detector import com.android.tools.lint.detector.api.Issue @@ -42,7 +43,7 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { private Context mContext; @Override public void test() throws android.os.RemoteException { - mContext.enforceCallingOrSelfPermission("android.Manifest.permission.READ_CONTACTS", "foo"); + mContext.enforceCallingOrSelfPermission("android.permission.READ_CONTACTS", "foo"); } } """ @@ -53,8 +54,8 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { .expect( """ src/Foo.java:7: Warning: ITest permission check can be converted to @EnforcePermission annotation [UseEnforcePermissionAnnotation] - mContext.enforceCallingOrSelfPermission("android.Manifest.permission.READ_CONTACTS", "foo"); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + mContext.enforceCallingOrSelfPermission("android.permission.READ_CONTACTS", "foo"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0 errors, 1 warnings """ ) @@ -62,9 +63,9 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { """ Fix for src/Foo.java line 7: Annotate with @EnforcePermission: @@ -5 +5 - + @android.annotation.EnforcePermission(android.Manifest.permission.READ_CONTACTS) + + @android.annotation.EnforcePermission("android.permission.READ_CONTACTS") @@ -7 +8 - - mContext.enforceCallingOrSelfPermission("android.Manifest.permission.READ_CONTACTS", "foo"); + - mContext.enforceCallingOrSelfPermission("android.permission.READ_CONTACTS", "foo"); """ ) } @@ -81,7 +82,7 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { @Override public void test() throws android.os.RemoteException { mContext.enforceCallingOrSelfPermission( - "android.Manifest.permission.READ_CONTACTS", "foo"); + "android.permission.READ_CONTACTS", "foo"); } }; } @@ -102,10 +103,49 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { """ Fix for src/Foo.java line 8: Annotate with @EnforcePermission: @@ -6 +6 - + @android.annotation.EnforcePermission(android.Manifest.permission.READ_CONTACTS) + + @android.annotation.EnforcePermission("android.permission.READ_CONTACTS") @@ -8 +9 - mContext.enforceCallingOrSelfPermission( - - "android.Manifest.permission.READ_CONTACTS", "foo"); + - "android.permission.READ_CONTACTS", "foo"); + """ + ) + } + + fun testConstantEvaluation() { + lint().files( + java( + """ + import android.content.Context; + import android.test.ITest; + + public class Foo extends ITest.Stub { + private Context mContext; + @Override + public void test() throws android.os.RemoteException { + mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_CONTACTS, "foo"); + } + } + """ + ).indented(), + *stubs, + manifestStub + ) + .run() + .expect( + """ + src/Foo.java:8: Warning: ITest permission check can be converted to @EnforcePermission annotation [UseEnforcePermissionAnnotation] + mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_CONTACTS, "foo"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 0 errors, 1 warnings + """ + ) + .expectFixDiffs( + """ + Fix for src/Foo.java line 7: Annotate with @EnforcePermission: + @@ -6 +6 + + @android.annotation.EnforcePermission("android.permission.READ_CONTACTS") + @@ -8 +9 + - mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_CONTACTS, "foo"); """ ) } @@ -122,9 +162,9 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { @Override public void test() throws android.os.RemoteException { mContext.enforceCallingOrSelfPermission( - "android.Manifest.permission.READ_CONTACTS", "foo"); + "android.permission.READ_CONTACTS", "foo"); mContext.enforceCallingOrSelfPermission( - "android.Manifest.permission.WRITE_CONTACTS", "foo"); + "android.permission.WRITE_CONTACTS", "foo"); } }; } @@ -144,13 +184,13 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { .expectFixDiffs( """ Fix for src/Foo.java line 10: Annotate with @EnforcePermission: - @@ -6 +6 - + @android.annotation.EnforcePermission(allOf={android.Manifest.permission.READ_CONTACTS, android.Manifest.permission.WRITE_CONTACTS}) + @@ -6 +6 + + @android.annotation.EnforcePermission(allOf={"android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"}) @@ -8 +9 - mContext.enforceCallingOrSelfPermission( - - "android.Manifest.permission.READ_CONTACTS", "foo"); + - "android.permission.READ_CONTACTS", "foo"); - mContext.enforceCallingOrSelfPermission( - - "android.Manifest.permission.WRITE_CONTACTS", "foo"); + - "android.permission.WRITE_CONTACTS", "foo"); """ ) } @@ -166,7 +206,7 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { @Override public void test() throws android.os.RemoteException { long uid = Binder.getCallingUid(); - mContext.enforceCallingOrSelfPermission("android.Manifest.permission.READ_CONTACTS", "foo"); + mContext.enforceCallingOrSelfPermission("android.permission.READ_CONTACTS", "foo"); } } """ @@ -177,6 +217,149 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { .expectClean() } + fun testPermissionHelper() { + lint().skipTestModes(TestMode.PARENTHESIZED).files( + java( + """ + import android.content.Context; + import android.test.ITest; + + public class Foo extends ITest.Stub { + private Context mContext; + + @android.content.pm.PermissionMethod + private void helper() { + mContext.enforceCallingOrSelfPermission("android.permission.READ_CONTACTS", "foo"); + } + + @Override + public void test() throws android.os.RemoteException { + helper(); + } + } + """ + ).indented(), + *stubs + ) + .run() + .expect( + """ + src/Foo.java:14: Warning: ITest permission check can be converted to @EnforcePermission annotation [UseEnforcePermissionAnnotation] + helper(); + ~~~~~~~~~ + 0 errors, 1 warnings + """ + ) + .expectFixDiffs( + """ + Fix for src/Foo.java line 14: Annotate with @EnforcePermission: + @@ -12 +12 + + @android.annotation.EnforcePermission("android.permission.READ_CONTACTS") + @@ -14 +15 + - helper(); + """ + ) + } + + fun testPermissionHelperAllOf() { + lint().skipTestModes(TestMode.PARENTHESIZED).files( + java( + """ + import android.content.Context; + import android.test.ITest; + + public class Foo extends ITest.Stub { + private Context mContext; + + @android.content.pm.PermissionMethod + private void helper() { + mContext.enforceCallingOrSelfPermission("android.permission.READ_CONTACTS", "foo"); + mContext.enforceCallingOrSelfPermission("android.permission.WRITE_CONTACTS", "foo"); + } + + @Override + public void test() throws android.os.RemoteException { + helper(); + mContext.enforceCallingOrSelfPermission("FOO", "foo"); + } + } + """ + ).indented(), + *stubs + ) + .run() + .expect( + """ + src/Foo.java:16: Warning: ITest permission check can be converted to @EnforcePermission annotation [UseEnforcePermissionAnnotation] + mContext.enforceCallingOrSelfPermission("FOO", "foo"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 0 errors, 1 warnings + """ + ) + .expectFixDiffs( + """ + Fix for src/Foo.java line 16: Annotate with @EnforcePermission: + @@ -13 +13 + + @android.annotation.EnforcePermission(allOf={"android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS", "FOO"}) + @@ -15 +16 + - helper(); + - mContext.enforceCallingOrSelfPermission("FOO", "foo"); + """ + ) + } + + + fun testPermissionHelperNested() { + lint().skipTestModes(TestMode.PARENTHESIZED).files( + java( + """ + import android.content.Context; + import android.test.ITest; + + public class Foo extends ITest.Stub { + private Context mContext; + + @android.content.pm.PermissionMethod + private void helperHelper() { + helper("android.permission.WRITE_CONTACTS"); + } + + @android.content.pm.PermissionMethod + private void helper(@android.content.pm.PermissionName String extraPermission) { + mContext.enforceCallingOrSelfPermission("android.permission.READ_CONTACTS", "foo"); + } + + @Override + public void test() throws android.os.RemoteException { + helperHelper(); + } + } + """ + ).indented(), + *stubs + ) + .run() + .expect( + """ + src/Foo.java:19: Warning: ITest permission check can be converted to @EnforcePermission annotation [UseEnforcePermissionAnnotation] + helperHelper(); + ~~~~~~~~~~~~~~~ + 0 errors, 1 warnings + """ + ) + .expectFixDiffs( + """ + Fix for src/Foo.java line 19: Annotate with @EnforcePermission: + @@ -17 +17 + + @android.annotation.EnforcePermission(allOf={"android.permission.WRITE_CONTACTS", "android.permission.READ_CONTACTS"}) + @@ -19 +20 + - helperHelper(); + """ + ) + } + + + companion object { private val aidlStub: TestFile = java( """ @@ -192,7 +375,8 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { """ package android.content; public class Context { - public void enforceCallingOrSelfPermission(String permission, String message) {} + @android.content.pm.PermissionMethod + public void enforceCallingOrSelfPermission(@android.content.pm.PermissionName String permission, String message) {} } """ ).indented() @@ -206,6 +390,59 @@ class ManualPermissionCheckDetectorTest : LintDetectorTest() { """ ).indented() - val stubs = arrayOf(aidlStub, contextStub, binderStub) + private val permissionMethodStub: TestFile = java( + """ + package android.content.pm; + + import static java.lang.annotation.ElementType.METHOD; + import static java.lang.annotation.RetentionPolicy.CLASS; + + import java.lang.annotation.Retention; + import java.lang.annotation.Target; + + @Retention(CLASS) + @Target({METHOD}) + public @interface PermissionMethod {} + """ + ).indented() + + private val permissionNameStub: TestFile = java( + """ + package android.content.pm; + + import static java.lang.annotation.ElementType.FIELD; + import static java.lang.annotation.ElementType.LOCAL_VARIABLE; + import static java.lang.annotation.ElementType.METHOD; + import static java.lang.annotation.ElementType.PARAMETER; + import static java.lang.annotation.RetentionPolicy.CLASS; + + import java.lang.annotation.Retention; + import java.lang.annotation.Target; + + @Retention(CLASS) + @Target({PARAMETER, METHOD, LOCAL_VARIABLE, FIELD}) + public @interface PermissionName {} + """ + ).indented() + + private val manifestStub: TestFile = java( + """ + package android; + + public final class Manifest { + public static final class permission { + public static final String READ_CONTACTS="android.permission.READ_CONTACTS"; + } + } + """.trimIndent() + ) + + val stubs = arrayOf( + aidlStub, + contextStub, + binderStub, + permissionMethodStub, + permissionNameStub + ) } } |