Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be28bc4e authored by Ming-Shin Lu's avatar Ming-Shin Lu
Browse files

Fix QSMediaControllerSkipToNextMicrobenchmark perf regression

By caching flag check function in case perf regression by frequently
check Flags.checkLockscreenGoneTransition state in
VisualStabilityCoordinator during updateAllowedStates

Fix: 390757061
Flag: com.android.systemui.check_lockscreen_gone_transition
Test: forrest test on
  v2/android-crystalball-eng/health/microbench/systemui/main/systemui-media-1-jank-suite
Change-Id: Ie702ebcb7f7b8eb4150551d0cfc506a77c71c33a
parent d94e59ba
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -39,9 +39,9 @@ import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor;
import com.android.systemui.shade.domain.interactor.ShadeInteractor;
import com.android.systemui.statusbar.notification.VisibilityLocationProvider;
import com.android.systemui.statusbar.notification.collection.GroupEntry;
import com.android.systemui.statusbar.notification.collection.PipelineEntry;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.PipelineEntry;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifStabilityManager;
import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider;
@@ -112,6 +112,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable {
    @VisibleForTesting
    protected static final long ALLOW_SECTION_CHANGE_TIMEOUT = 500;

    private final boolean mCheckLockScreenTransitionEnabled = Flags.checkLockscreenGoneTransition();

    @Inject
    public VisualStabilityCoordinator(
            @Background DelayableExecutor delayableExecutor,
@@ -179,7 +181,7 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable {
                    this::onLockscreenKeyguardStateTransitionValueChanged);
        }

        if (Flags.checkLockscreenGoneTransition()) {
        if (mCheckLockScreenTransitionEnabled) {
            if (SceneContainerFlag.isEnabled()) {
                mJavaAdapter.alwaysCollectFlow(mKeyguardTransitionInteractor.isInTransition(
                                Edge.create(KeyguardState.LOCKSCREEN, Scenes.Gone), null),
@@ -434,7 +436,7 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable {
        boolean wasReorderingAllowed = mReorderingAllowed;
        // No need to run notification pipeline when the lockscreen is in fading animation.
        mPipelineRunAllowed = !(isPanelCollapsingOrLaunchingActivity()
                || (Flags.checkLockscreenGoneTransition() && mLockscreenInGoneTransition));
                || (mCheckLockScreenTransitionEnabled && mLockscreenInGoneTransition));
        mReorderingAllowed = isReorderingAllowed();
        if (wasPipelineRunAllowed != mPipelineRunAllowed
                || wasReorderingAllowed != mReorderingAllowed) {
@@ -555,7 +557,7 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable {
        pw.println("pipelineRunAllowed: " + mPipelineRunAllowed);
        pw.println("  notifPanelCollapsing: " + mNotifPanelCollapsing);
        pw.println("  launchingNotifActivity: " + mNotifPanelLaunchingActivity);
        if (Flags.checkLockscreenGoneTransition()) {
        if (mCheckLockScreenTransitionEnabled) {
            pw.println("  lockscreenInGoneTransition: " + mLockscreenInGoneTransition);
        }
        pw.println("reorderingAllowed: " + mReorderingAllowed);
@@ -611,7 +613,7 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable {
    }

    private void onLockscreenInGoneTransitionChanged(boolean inGoneTransition) {
        if (!Flags.checkLockscreenGoneTransition()) {
        if (!mCheckLockScreenTransitionEnabled) {
            return;
        }
        if (inGoneTransition == mLockscreenInGoneTransition) {