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

Commit aad7248b authored by Bryce Lee's avatar Bryce Lee
Browse files

Do not show keyguard clock when communal mode is active.

This changelist hides the clock (part of the KeyguardStatusView)
when communal mode is shown on the keyguard.

Bug: 196885298
Test: atest KeyguardVisibilityHelperTest
Test: atest NotificationPanelViewTest#testKeyguardStatusViewUpdatedWithCommunalPresence
Change-Id: I488f51526babb5bc404a1dea1572ed43cd28372c
parent 248e4315
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.graphics.Rect;
import android.util.Slog;

import com.android.keyguard.KeyguardClockSwitch.ClockSize;
import com.android.systemui.communal.CommunalStateController;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.shared.system.smartspace.SmartspaceTransitionController;
import com.android.systemui.statusbar.notification.AnimatableProperty;
@@ -64,6 +65,7 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
            KeyguardClockSwitchController keyguardClockSwitchController,
            KeyguardStateController keyguardStateController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            CommunalStateController communalStateController,
            ConfigurationController configurationController,
            DozeParameters dozeParameters,
            KeyguardUnlockAnimationController keyguardUnlockAnimationController,
@@ -76,8 +78,9 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
        mConfigurationController = configurationController;
        mDozeParameters = dozeParameters;
        mKeyguardStateController = keyguardStateController;
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, keyguardStateController,
                dozeParameters, unlockedScreenOffAnimationController, /* animateYPos= */ true);
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
                keyguardStateController, dozeParameters, unlockedScreenOffAnimationController,
                /* animateYPos= */ true);
        mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
        mSmartspaceTransitionController = smartspaceTransitionController;
    }
+12 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.view.View;
import android.view.ViewPropertyAnimator;

import com.android.systemui.animation.Interpolators;
import com.android.systemui.communal.CommunalStateController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.AnimatableProperty;
import com.android.systemui.statusbar.notification.PropertyAnimator;
@@ -38,6 +39,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
public class KeyguardVisibilityHelper {

    private View mView;
    private final CommunalStateController mCommunalStateController;
    private final KeyguardStateController mKeyguardStateController;
    private final DozeParameters mDozeParameters;
    private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
@@ -47,11 +49,13 @@ public class KeyguardVisibilityHelper {
    private final AnimationProperties mAnimationProperties = new AnimationProperties();

    public KeyguardVisibilityHelper(View view,
            CommunalStateController communalStateController,
            KeyguardStateController keyguardStateController,
            DozeParameters dozeParameters,
            UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
            boolean animateYPos) {
        mView = view;
        mCommunalStateController = communalStateController;
        mKeyguardStateController = keyguardStateController;
        mDozeParameters = dozeParameters;
        mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;
@@ -73,6 +77,14 @@ public class KeyguardVisibilityHelper {
        mView.animate().cancel();
        boolean isOccluded = mKeyguardStateController.isOccluded();
        mKeyguardViewVisibilityAnimating = false;

        // If the communal view is showing, hide immediately
        if (mCommunalStateController.getCommunalViewShowing()) {
            mView.setVisibility(View.GONE);
            mView.setAlpha(1f);
            return;
        }

        if ((!keyguardFadingAway && oldStatusBarState == KEYGUARD
                && statusBarState != KEYGUARD) || goingToFullShade) {
            mKeyguardViewVisibilityAnimating = true;
+32 −0
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ import com.android.systemui.communal.CommunalHostView;
import com.android.systemui.communal.CommunalHostViewController;
import com.android.systemui.communal.CommunalSource;
import com.android.systemui.communal.CommunalSourceMonitor;
import com.android.systemui.communal.CommunalStateController;
import com.android.systemui.communal.dagger.CommunalViewComponent;
import com.android.systemui.controls.dagger.ControlsComponent;
import com.android.systemui.dagger.qualifiers.DisplayId;
@@ -327,6 +328,7 @@ public class NotificationPanelViewController extends PanelViewController {
    private final KeyguardBypassController mKeyguardBypassController;
    private final KeyguardUpdateMonitor mUpdateMonitor;
    private final CommunalSourceMonitor mCommunalSourceMonitor;
    private final CommunalStateController mCommunalStateController;
    private final ConversationNotificationManager mConversationNotificationManager;
    private final AuthController mAuthController;
    private final MediaHierarchyManager mMediaHierarchyManager;
@@ -711,6 +713,32 @@ public class NotificationPanelViewController extends PanelViewController {
        }
    };

    private final CommunalStateController.Callback mCommunalStateCallback =
            new CommunalStateController.Callback() {
                @Override
                public void onCommunalViewShowingChanged() {
                    mKeyguardStatusViewController.setKeyguardStatusViewVisibility(
                            mBarState,
                            mKeyguardStateController.isKeyguardFadingAway(),
                            mStatusBarStateController.goingToFullShade(),
                            mBarState);
                    if (mKeyguardUserSwitcherController != null) {
                        mKeyguardUserSwitcherController.setKeyguardUserSwitcherVisibility(
                                mBarState,
                                mKeyguardStateController.isKeyguardFadingAway(),
                                mStatusBarStateController.goingToFullShade(),
                                mBarState);
                    }
                    if (mKeyguardQsUserSwitchController != null) {
                        mKeyguardQsUserSwitchController.setKeyguardQsUserSwitchVisibility(
                                mBarState,
                                mKeyguardStateController.isKeyguardFadingAway(),
                                mStatusBarStateController.goingToFullShade(),
                                mBarState);
                    }
                }
    };

    private final FalsingTapListener mFalsingTapListener = new FalsingTapListener() {
        @Override
        public void onDoubleTapRequired() {
@@ -735,6 +763,7 @@ public class NotificationPanelViewController extends PanelViewController {
            FalsingCollector falsingCollector,
            NotificationLockscreenUserManager notificationLockscreenUserManager,
            NotificationEntryManager notificationEntryManager,
            CommunalStateController communalStateController,
            KeyguardStateController keyguardStateController,
            StatusBarStateController statusBarStateController, DozeLog dozeLog,
            DozeParameters dozeParameters, CommandQueue commandQueue, VibratorHelper vibratorHelper,
@@ -811,6 +840,7 @@ public class NotificationPanelViewController extends PanelViewController {
        mNotificationStackScrollLayoutController = notificationStackScrollLayoutController;
        mGroupManager = groupManager;
        mNotificationIconAreaController = notificationIconAreaController;
        mCommunalStateController = communalStateController;
        mCommunalViewComponentFactory = communalViewComponentFactory;
        mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory;
        mKeyguardStatusBarViewComponentFactory = keyguardStatusBarViewComponentFactory;
@@ -4660,6 +4690,7 @@ public class NotificationPanelViewController extends PanelViewController {
            mFalsingManager.addTapListener(mFalsingTapListener);
            mKeyguardIndicationController.init();
            registerSettingsChangeListener();
            mCommunalStateController.addCallback(mCommunalStateCallback);
        }

        @Override
@@ -4674,6 +4705,7 @@ public class NotificationPanelViewController extends PanelViewController {
            // Clear source when detached.
            setCommunalSource(null /*source*/);
            mFalsingManager.removeTapListener(mFalsingTapListener);
            mCommunalStateController.removeCallback(mCommunalStateCallback);
        }
    }

+3 −1
Original line number Diff line number Diff line
@@ -33,6 +33,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.communal.CommunalStateController;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.plugins.FalsingManager;
@@ -116,6 +117,7 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
            @Main Resources resources,
            ScreenLifecycle screenLifecycle,
            UserSwitcherController userSwitcherController,
            CommunalStateController communalStateController,
            KeyguardStateController keyguardStateController,
            FalsingManager falsingManager,
            ConfigurationController configurationController,
@@ -133,7 +135,7 @@ public class KeyguardQsUserSwitchController extends ViewController<UserAvatarVie
        mFalsingManager = falsingManager;
        mConfigurationController = configurationController;
        mStatusBarStateController = statusBarStateController;
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView,
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
                keyguardStateController, dozeParameters,
                unlockedScreenOffAnimationController,  /* animateYPos= */ false);
        mUserDetailAdapter = new KeyguardUserDetailAdapter(context, userDetailViewAdapterProvider);
+3 −1
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.keyguard.dagger.KeyguardUserSwitcherScope;
import com.android.settingslib.drawable.CircleFramedDrawable;
import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.communal.CommunalStateController;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -157,6 +158,7 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS
            LayoutInflater layoutInflater,
            ScreenLifecycle screenLifecycle,
            UserSwitcherController userSwitcherController,
            CommunalStateController communalStateController,
            KeyguardStateController keyguardStateController,
            SysuiStatusBarStateController statusBarStateController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -172,7 +174,7 @@ public class KeyguardUserSwitcherController extends ViewController<KeyguardUserS
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
        mAdapter = new KeyguardUserAdapter(mContext, resources, layoutInflater,
                mUserSwitcherController, this);
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView,
        mKeyguardVisibilityHelper = new KeyguardVisibilityHelper(mView, communalStateController,
                keyguardStateController, dozeParameters,
                unlockedScreenOffAnimationController, /* animateYPos= */ false);
        mBackground = new KeyguardUserSwitcherScrim(context);
Loading