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

Commit 36a8144c authored by Bryce Lee's avatar Bryce Lee
Browse files

Use KeyguardVisibilityHelper for CommunalHostView.

This changelist uses KeyguardVisibilityHelper for
CommunalHostView by allowing KeyguardVisibilityHelper
clients to specify at construction that they would
like to be shown on communal.

Test: atest KeyguardVisibilityHelperTest#testVisibleOnCommunal
Bug: 197022459
Change-Id: Idb2c83a8441305a130e2d7e13220410f88a0102e
parent 27d3d183
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
        mKeyguardStateController = keyguardStateController;
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
                keyguardStateController, dozeParameters, unlockedScreenOffAnimationController,
                /* animateYPos= */ true);
                /* animateYPos= */ true, /* visibleOnCommunal= */ false);
        mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
        mSmartspaceTransitionController = smartspaceTransitionController;
    }
+5 −2
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ public class KeyguardVisibilityHelper {
    private final KeyguardStateController mKeyguardStateController;
    private final DozeParameters mDozeParameters;
    private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
    private final boolean mVisibleOnCommunal;
    private boolean mAnimateYPos;
    private boolean mKeyguardViewVisibilityAnimating;
    private boolean mLastOccludedState = false;
@@ -53,13 +54,15 @@ public class KeyguardVisibilityHelper {
            KeyguardStateController keyguardStateController,
            DozeParameters dozeParameters,
            UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
            boolean animateYPos) {
            boolean animateYPos,
            boolean visibleOnCommunal) {
        mView = view;
        mCommunalStateController = communalStateController;
        mKeyguardStateController = keyguardStateController;
        mDozeParameters = dozeParameters;
        mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;
        mAnimateYPos = animateYPos;
        mVisibleOnCommunal = visibleOnCommunal;
    }

    public boolean isVisibilityAnimating() {
@@ -79,7 +82,7 @@ public class KeyguardVisibilityHelper {
        mKeyguardViewVisibilityAnimating = false;

        // If the communal view is showing, hide immediately
        if (mCommunalStateController.getCommunalViewShowing()) {
        if (!mVisibleOnCommunal && mCommunalStateController.getCommunalViewShowing()) {
            mView.setVisibility(View.GONE);
            mView.setAlpha(1f);
            return;
+22 −0
Original line number Diff line number Diff line
@@ -24,8 +24,11 @@ import android.view.ViewGroup;

import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.keyguard.KeyguardVisibilityHelper;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.ViewController;

@@ -70,6 +73,8 @@ public class CommunalHostViewController extends ViewController<CommunalHostView>
    private static final int SHOW_COMMUNAL_VIEW_INVALID_STATES =
            STATE_DOZING | STATE_BOUNCER_SHOWING | STATE_KEYGUARD_OCCLUDED;

    private final KeyguardVisibilityHelper mKeyguardVisibilityHelper;

    private ViewController<? extends View> mCommunalViewController;

    private KeyguardUpdateMonitorCallback mKeyguardUpdateCallback =
@@ -123,6 +128,8 @@ public class CommunalHostViewController extends ViewController<CommunalHostView>
            CommunalStateController communalStateController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            KeyguardStateController keyguardStateController,
            DozeParameters dozeParameters,
            UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
            StatusBarStateController statusBarStateController, CommunalHostView view) {
        super(view);
        mCommunalStateController = communalStateController;
@@ -130,6 +137,21 @@ public class CommunalHostViewController extends ViewController<CommunalHostView>
        mMainExecutor = mainExecutor;
        mKeyguardStateController = keyguardStateController;
        mStatusBarStateController = statusBarStateController;
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
                keyguardStateController, dozeParameters, unlockedScreenOffAnimationController,
                /* animateYPos= */ false, /* visibleOnCommunal= */ true);
    }

    /**
     * Set the visibility of the keyguard status view based on some new state.
     */
    public void setKeyguardStatusViewVisibility(
            int statusBarState,
            boolean keyguardFadingAway,
            boolean goingToFullShade,
            int oldStatusBarState) {
        mKeyguardVisibilityHelper.setViewVisibility(
                statusBarState, keyguardFadingAway, goingToFullShade, oldStatusBarState);
    }

    @Override
+9 −0
Original line number Diff line number Diff line
@@ -4583,6 +4583,15 @@ public class NotificationPanelViewController extends PanelViewController {
                    keyguardFadingAway,
                    goingToFullShade,
                    mBarState);

            if (mCommunalViewController != null) {
                mCommunalViewController.setKeyguardStatusViewVisibility(
                        statusBarState,
                        keyguardFadingAway,
                        goingToFullShade,
                        mBarState);
            }

            setKeyguardBottomAreaVisibility(statusBarState, goingToFullShade);

            mBarState = statusBarState;
+2 −1
Original line number Diff line number Diff line
@@ -137,7 +137,8 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
        mStatusBarStateController = statusBarStateController;
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
                keyguardStateController, dozeParameters,
                unlockedScreenOffAnimationController,  /* animateYPos= */ false);
                unlockedScreenOffAnimationController,  /* animateYPos= */ false,
                /* visibleOnCommunal= */ false);
        mUserDetailAdapter = new KeyguardUserDetailAdapter(context, userDetailViewAdapterProvider);
    }

Loading