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

Commit 9d9c2268 authored by Bryce Lee's avatar Bryce Lee Committed by Android (Google) Code Review
Browse files

Merge changes Ib24526c8,Ifcfc04dd into main

* changes:
  Fade keyguard status bar during transition to and from Glanceable Hub.
  Convert KeyguardStatusBarViewControllerTest to Kotlin
parents fafc8aad a38706d5
Loading
Loading
Loading
Loading
+0 −845

File deleted.

Preview size limit exceeded, changes collapsed.

+867 −0

File added.

Preview size limit exceeded, changes collapsed.

+5 −5
Original line number Diff line number Diff line
@@ -54,9 +54,7 @@ constructor(
                duration = TO_LOCKSCREEN_DURATION,
                edge = Edge.create(from = Scenes.Communal, to = LOCKSCREEN),
            )
            .setupWithoutSceneContainer(
                edge = Edge.create(from = GLANCEABLE_HUB, to = LOCKSCREEN),
            )
            .setupWithoutSceneContainer(edge = Edge.create(from = GLANCEABLE_HUB, to = LOCKSCREEN))

    val keyguardAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
@@ -75,7 +73,7 @@ constructor(
        configurationInteractor
            .directionalDimensionPixelSize(
                LayoutDirection.LTR,
                R.dimen.hub_to_lockscreen_transition_lockscreen_translation_x
                R.dimen.hub_to_lockscreen_transition_lockscreen_translation_x,
            )
            .flatMapLatest { translatePx: Int ->
                transitionAnimation.sharedFlowWithState(
@@ -87,7 +85,7 @@ constructor(
                    // is cancelled.
                    onFinish = { 0f },
                    onCancel = { 0f },
                    name = "GLANCEABLE_HUB->LOCKSCREEN: keyguardTranslationX"
                    name = "GLANCEABLE_HUB->LOCKSCREEN: keyguardTranslationX",
                )
            }

@@ -95,6 +93,8 @@ constructor(

    val shortcutsAlpha: Flow<Float> = keyguardAlpha

    val statusBarAlpha: Flow<Float> = keyguardAlpha

    val notificationTranslationX: Flow<Float> =
        keyguardTranslationX.map { it.value }.filterNotNull()
}
+5 −5
Original line number Diff line number Diff line
@@ -54,9 +54,7 @@ constructor(
                duration = FromLockscreenTransitionInteractor.TO_GLANCEABLE_HUB_DURATION,
                edge = Edge.create(from = LOCKSCREEN, to = Scenes.Communal),
            )
            .setupWithoutSceneContainer(
                edge = Edge.create(from = LOCKSCREEN, to = GLANCEABLE_HUB),
            )
            .setupWithoutSceneContainer(edge = Edge.create(from = LOCKSCREEN, to = GLANCEABLE_HUB))

    val keyguardAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
@@ -74,7 +72,7 @@ constructor(
        configurationInteractor
            .directionalDimensionPixelSize(
                LayoutDirection.LTR,
                R.dimen.lockscreen_to_hub_transition_lockscreen_translation_x
                R.dimen.lockscreen_to_hub_transition_lockscreen_translation_x,
            )
            .flatMapLatest { translatePx: Int ->
                transitionAnimation.sharedFlowWithState(
@@ -86,7 +84,7 @@ constructor(
                    onFinish = { 0f },
                    onCancel = { 0f },
                    interpolator = EMPHASIZED,
                    name = "LOCKSCREEN->GLANCEABLE_HUB: keyguardTranslationX"
                    name = "LOCKSCREEN->GLANCEABLE_HUB: keyguardTranslationX",
                )
            }

@@ -94,6 +92,8 @@ constructor(

    val shortcutsAlpha: Flow<Float> = keyguardAlpha

    val statusBarAlpha: Flow<Float> = keyguardAlpha

    val notificationTranslationX: Flow<Float> =
        keyguardTranslationX.map { it.value }.filterNotNull()
}
+44 −4
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ import com.android.systemui.battery.BatteryMeterViewController;
import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToLockscreenTransitionViewModel;
import com.android.systemui.keyguard.ui.viewmodel.LockscreenToGlanceableHubTransitionViewModel;
import com.android.systemui.log.core.LogLevel;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.res.R;
@@ -82,6 +84,8 @@ import com.android.systemui.util.settings.SecureSettings;

import kotlin.Unit;

import kotlinx.coroutines.CoroutineDispatcher;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
@@ -108,6 +112,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
            R.id.keyguard_hun_animator_end_tag,
            R.id.keyguard_hun_animator_start_tag);

    private final CoroutineDispatcher mCoroutineDispatcher;
    private final CarrierTextController mCarrierTextController;
    private final ConfigurationController mConfigurationController;
    private final SystemStatusAnimationScheduler mAnimationScheduler;
@@ -133,6 +138,8 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
    private final Object mLock = new Object();
    private final KeyguardLogger mLogger;
    private final CommunalSceneInteractor mCommunalSceneInteractor;
    private final GlanceableHubToLockscreenTransitionViewModel mHubToLockscreenTransitionViewModel;
    private final LockscreenToGlanceableHubTransitionViewModel mLockscreenToHubTransitionViewModel;

    private View mSystemIconsContainer;
    private final StatusOverlayHoverListenerFactory mStatusOverlayHoverListenerFactory;
@@ -249,9 +256,20 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
    private boolean mCommunalShowing;

    private final Consumer<Boolean> mCommunalConsumer = (communalShowing) -> {
        updateCommunalShowing(communalShowing);
    };

    @VisibleForTesting
    void updateCommunalShowing(boolean communalShowing) {
        mCommunalShowing = communalShowing;

        // When communal is hidden (either by transition or state change), set alpha to fully
        // visible.
        if (!mCommunalShowing) {
            setAlpha(-1f);
        }
        updateViewState();
    };
    }

    private final DisableStateTracker mDisableStateTracker;

@@ -277,6 +295,15 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
    private boolean mShowingKeyguardHeadsUp;
    private StatusBarSystemEventDefaultAnimator mSystemEventAnimator;
    private float mSystemEventAnimatorAlpha = 1;
    private final Consumer<Float> mToGlanceableHubStatusBarAlphaConsumer = (alpha) ->
            updateCommunalAlphaTransition(alpha);

    private final Consumer<Float> mFromGlanceableHubStatusBarAlphaConsumer = (alpha) ->
            updateCommunalAlphaTransition(alpha);

    @VisibleForTesting  void updateCommunalAlphaTransition(float alpha) {
        setAlpha(!mCommunalShowing || alpha == 0 ? -1 : alpha);
    }

    /**
     * The alpha value to be set on the View. If -1, this value is to be ignored.
@@ -285,6 +312,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat

    @Inject
    public KeyguardStatusBarViewController(
            @Main CoroutineDispatcher dispatcher,
            KeyguardStatusBarView view,
            CarrierTextController carrierTextController,
            ConfigurationController configurationController,
@@ -310,9 +338,14 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
            @Background Executor backgroundExecutor,
            KeyguardLogger logger,
            StatusOverlayHoverListenerFactory statusOverlayHoverListenerFactory,
            CommunalSceneInteractor communalSceneInteractor
            CommunalSceneInteractor communalSceneInteractor,
            GlanceableHubToLockscreenTransitionViewModel
                    glanceableHubToLockscreenTransitionViewModel,
            LockscreenToGlanceableHubTransitionViewModel
                    lockscreenToGlanceableHubTransitionViewModel
    ) {
        super(view);
        mCoroutineDispatcher = dispatcher;
        mCarrierTextController = carrierTextController;
        mConfigurationController = configurationController;
        mAnimationScheduler = animationScheduler;
@@ -337,6 +370,8 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
        mBackgroundExecutor = backgroundExecutor;
        mLogger = logger;
        mCommunalSceneInteractor = communalSceneInteractor;
        mHubToLockscreenTransitionViewModel = glanceableHubToLockscreenTransitionViewModel;
        mLockscreenToHubTransitionViewModel = lockscreenToGlanceableHubTransitionViewModel;

        mFirstBypassAttempt = mKeyguardBypassController.getBypassEnabled();
        mKeyguardStateController.addCallback(
@@ -418,7 +453,12 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
                UserHandle.USER_ALL);
        updateUserSwitcher();
        onThemeChanged();
        collectFlow(mView, mCommunalSceneInteractor.isCommunalVisible(), mCommunalConsumer);
        collectFlow(mView, mCommunalSceneInteractor.isCommunalVisible(), mCommunalConsumer,
                mCoroutineDispatcher);
        collectFlow(mView, mLockscreenToHubTransitionViewModel.getStatusBarAlpha(),
                mToGlanceableHubStatusBarAlphaConsumer, mCoroutineDispatcher);
        collectFlow(mView, mHubToLockscreenTransitionViewModel.getStatusBarAlpha(),
                mFromGlanceableHubStatusBarAlphaConsumer, mCoroutineDispatcher);
    }

    @Override
@@ -573,7 +613,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
                        && !mDozing
                        && !hideForBypass
                        && !mDisableStateTracker.isDisabled()
                        && !mCommunalShowing
                        && (!mCommunalShowing || mExplicitAlpha != -1)
                        ? View.VISIBLE : View.INVISIBLE;

        updateViewState(newAlpha, newVisibility);
Loading