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

Commit 2df7152d authored by Jeff DeCew's avatar Jeff DeCew
Browse files

[flexiglass] Fix NSSL alpha during HUN

This CL also renames `maxAlphaForExpansion` to `maxAlphaForKeyguard` since this name was very misleading, and was based on an incorrect assumption that this alpha was supposed to be used by expansion.

This also adds a dump of the NSSLController's alpha source, and when debugging, logs changes to the alpha and source.

Finally, this disables a few calls into NSSLController from legacy code, now that they are bound.

Fix: 328244289
Test: atest SystemUITests
Flag: ACONFIG com.android.systemui.scene_container DEVELOPMENT
Change-Id: I9a9b3734a4a502bf4a6b2a3cd4baffd5f5646e4b
parent b6bab730
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -1197,7 +1197,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
                            /* excludeNotifications=*/ true), mMainDispatcher);
            collectFlow(mView, mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha(),
                    (Float alpha) -> {
                        mNotificationStackScrollLayoutController.setMaxAlphaForExpansion(alpha);
                        mNotificationStackScrollLayoutController.setMaxAlphaForKeyguard(alpha,
                                "mPrimaryBouncerToGoneTransitionViewModel.getNotificationAlpha()");
                    }, mMainDispatcher);
        }
    }
@@ -2719,7 +2720,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
                && !mQsController.getFullyExpanded()) {
                alpha *= mClockPositionResult.clockAlpha;
            }
            mNotificationStackScrollLayoutController.setMaxAlphaForExpansion(alpha);
            mNotificationStackScrollLayoutController.setMaxAlphaForKeyguard(alpha,
                    "NPVC.updateNotificationTranslucency()");
        }
    }

@@ -2770,7 +2772,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
    }

    private void onExpandingFinished() {
        if (!SceneContainerFlag.isEnabled()) {
            mNotificationStackScrollLayoutController.onExpansionStopped();
        }
        mHeadsUpManager.onExpandingFinished();
        mConversationNotificationManager.onNotificationPanelExpandStateChanged(isFullyCollapsed());
        mIsExpandingOrCollapsing = false;
@@ -3085,7 +3089,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
            // The expandedHeight is always the full panel Height when bypassing
            expandedHeight = getMaxPanelHeight();
        }
        if (!SceneContainerFlag.isEnabled()) {
            mNotificationStackScrollLayoutController.setExpandedHeight(expandedHeight);
        }
        updateKeyguardBottomAreaAlpha();
        updateStatusBarIcons();
    }
@@ -4718,7 +4724,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
        return (Float alpha) -> {
            mKeyguardStatusViewController.setAlpha(alpha);
            if (!excludeNotifications) {
                stackScroller.setMaxAlphaForExpansion(alpha);
                stackScroller.setMaxAlphaForKeyguard(alpha, "NPVC.setTransitionAlpha()");
            }

            if (keyguardBottomAreaRefactor()) {
+7 −2
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.res.R;
import com.android.systemui.scene.shared.flag.SceneContainerFlag;
import com.android.systemui.screenrecord.RecordingController;
import com.android.systemui.shade.data.repository.ShadeRepository;
import com.android.systemui.shade.domain.interactor.ShadeInteractor;
@@ -964,7 +965,9 @@ public class QuickSettingsControllerImpl implements QuickSettingsController, Dum
        // Reset scroll position and apply that position to the expanded height.
        float height = mExpansionHeight;
        setExpansionHeight(height);
        if (!SceneContainerFlag.isEnabled()) {
            mNotificationStackScrollLayoutController.checkSnoozeLeavebehind();
        }

        // When expanding QS, let's authenticate the user if possible,
        // this will speed up notification actions.
@@ -1109,7 +1112,9 @@ public class QuickSettingsControllerImpl implements QuickSettingsController, Dum

    /** Called when shade starts expanding. */
    void onExpandingStarted(boolean qsFullyExpanded) {
        if (!SceneContainerFlag.isEnabled()) {
            mNotificationStackScrollLayoutController.onExpansionStarted();
        }
        mExpandedWhenExpandingStarted = qsFullyExpanded;
        mMediaHierarchyManager.setCollapsingShadeFromQS(mExpandedWhenExpandingStarted
                /* We also start expanding when flinging closed Qs. Let's exclude that */
+12 −5
Original line number Diff line number Diff line
@@ -363,7 +363,8 @@ public class NotificationStackScrollLayoutController implements Dumpable {
    };

    private NotifStats mNotifStats = NotifStats.getEmpty();
    private float mMaxAlphaForExpansion = 1.0f;
    private float mMaxAlphaForKeyguard = 1.0f;
    private String mMaxAlphaForKeyguardSource = "constructor";
    private float mMaxAlphaForUnhide = 1.0f;

    /**
@@ -1324,9 +1325,14 @@ public class NotificationStackScrollLayoutController implements Dumpable {
        return mView.getEmptyShadeViewHeight();
    }

    public void setMaxAlphaForExpansion(float alpha) {
        mMaxAlphaForExpansion = alpha;
    /** Set the max alpha for keyguard */
    public void setMaxAlphaForKeyguard(float alpha, String source) {
        mMaxAlphaForKeyguard = alpha;
        mMaxAlphaForKeyguardSource = source;
        updateAlpha();
        if (DEBUG) {
            Log.d(TAG, "setMaxAlphaForKeyguard=" + alpha + " --- from: " + source);
        }
    }

    private void setMaxAlphaForUnhide(float alpha) {
@@ -1345,7 +1351,7 @@ public class NotificationStackScrollLayoutController implements Dumpable {

    private void updateAlpha() {
        if (mView != null) {
            mView.setAlpha(Math.min(mMaxAlphaForExpansion,
            mView.setAlpha(Math.min(mMaxAlphaForKeyguard,
                    Math.min(mMaxAlphaForUnhide, mMaxAlphaForGlanceableHub)));
        }
    }
@@ -1842,9 +1848,10 @@ public class NotificationStackScrollLayoutController implements Dumpable {

    @Override
    public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
        pw.println("mMaxAlphaForExpansion=" + mMaxAlphaForExpansion);
        pw.println("mMaxAlphaForUnhide=" + mMaxAlphaForUnhide);
        pw.println("mMaxAlphaForGlanceableHub=" + mMaxAlphaForGlanceableHub);
        pw.println("mMaxAlphaForKeyguard=" + mMaxAlphaForKeyguard);
        pw.println("mMaxAlphaForKeyguardSource=" + mMaxAlphaForKeyguardSource);
    }

    /**
+7 −4
Original line number Diff line number Diff line
@@ -66,15 +66,18 @@ object NotificationStackAppearanceViewBinder {
                }

                launch {
                    var wasExpanding = false
                    viewModel.expandFraction.collect { expandFraction ->
                        val nowExpanding = expandFraction != 0f && expandFraction != 1f
                        if (nowExpanding && !wasExpanding) {
                            controller.onExpansionStarted()
                        }
                        ambientState.expansionFraction = expandFraction
                        controller.expandedHeight = expandFraction * controller.view.height
                        controller.setMaxAlphaForExpansion(
                            ((expandFraction - 0.5f) / 0.5f).coerceAtLeast(0f)
                        )
                        if (expandFraction == 0f || expandFraction == 1f) {
                        if (!nowExpanding && wasExpanding) {
                            controller.onExpansionStopped()
                        }
                        wasExpanding = nowExpanding
                    }
                }
            }
+22 −24
Original line number Diff line number Diff line
@@ -106,7 +106,6 @@ object SharedNotificationContainerBinder {
        val disposableHandleMainImmediate =
            view.repeatWhenAttached(mainImmediateDispatcher) {
                repeatOnLifecycle(Lifecycle.State.CREATED) {
                    if (!sceneContainerFlags.flexiNotifsEnabled()) {
                    launch {
                        // Only temporarily needed, until flexi notifs go live
                        viewModel.shadeCollapseFadeIn.collect { fadeIn ->
@@ -114,8 +113,9 @@ object SharedNotificationContainerBinder {
                                android.animation.ValueAnimator.ofFloat(0f, 1f).apply {
                                    duration = 250
                                    addUpdateListener { animation ->
                                            controller.setMaxAlphaForExpansion(
                                                animation.getAnimatedFraction()
                                        controller.setMaxAlphaForKeyguard(
                                            animation.animatedFraction,
                                            "SharedNotificationContainerVB (collapseFadeIn)"
                                        )
                                    }
                                    addListener(
@@ -130,7 +130,6 @@ object SharedNotificationContainerBinder {
                            }
                        }
                    }
                    }

                    launch {
                        viewModel
@@ -164,13 +163,12 @@ object SharedNotificationContainerBinder {

                    launch { viewModel.translationX.collect { x -> controller.translationX = x } }

                    if (!sceneContainerFlags.isEnabled()) {
                    launch {
                            viewModel.expansionAlpha(viewState).collect {
                                controller.setMaxAlphaForExpansion(it)
                            }
                        viewModel.keyguardAlpha(viewState).collect {
                            controller.setMaxAlphaForKeyguard(it, "SharedNotificationContainerVB")
                        }
                    }

                    launch {
                        viewModel.glanceableHubAlpha.collect {
                            controller.setMaxAlphaForGlanceableHub(it)
Loading