Loading packages/SystemUI/res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1289,6 +1289,9 @@ <!-- DREAMING -> LOCKSCREEN transition: Amount to shift lockscreen content on entering --> <dimen name="dreaming_to_lockscreen_transition_lockscreen_translation_y">40dp</dimen> <!-- OCCLUDED -> LOCKSCREEN transition: Amount to shift lockscreen content on entering --> <dimen name="occluded_to_lockscreen_transition_lockscreen_translation_y">40dp</dimen> <!-- The amount of vertical offset for the keyguard during the full shade transition. --> <dimen name="lockscreen_shade_keyguard_transition_vertical_offset">0dp</dimen> Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt +2 −2 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ constructor( name, KeyguardState.OCCLUDED, KeyguardState.LOCKSCREEN, getAnimator(), getAnimator(TO_LOCKSCREEN_DURATION), ) ) } Loading @@ -97,6 +97,6 @@ constructor( companion object { private val DEFAULT_DURATION = 500.milliseconds val TO_LOCKSCREEN_DURATION = 1183.milliseconds val TO_LOCKSCREEN_DURATION = 933.milliseconds } } packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt +14 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.KeyguardState.AOD import com.android.systemui.keyguard.shared.model.KeyguardState.DREAMING import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN import com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionState.STARTED import com.android.systemui.keyguard.shared.model.TransitionStep import javax.inject.Inject import kotlin.time.Duration Loading @@ -50,6 +52,10 @@ constructor( val dreamingToLockscreenTransition: Flow<TransitionStep> = repository.transition(DREAMING, LOCKSCREEN) /** OCCLUDED->LOCKSCREEN transition information. */ val occludedToLockscreenTransition: Flow<TransitionStep> = repository.transition(OCCLUDED, LOCKSCREEN) /** (any)->AOD transition information */ val anyStateToAodTransition: Flow<TransitionStep> = repository.transitions.filter { step -> step.to == KeyguardState.AOD } Loading Loading @@ -93,7 +99,14 @@ constructor( val start = (params.startTime / totalDuration).toFloat() val chunks = (totalDuration / params.duration).toFloat() return flow .map { step -> (step.value - start) * chunks } // When starting, emit a value of 0f to give animations a chance to set initial state .map { step -> if (step.transitionState == STARTED) { 0f } else { (step.value - start) * chunks } } .filter { value -> value >= 0f && value <= 1f } } } packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/OccludedToLockscreenTransitionViewModel.kt 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.keyguard.ui.viewmodel import com.android.systemui.animation.Interpolators.EMPHASIZED_DECELERATE import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.domain.interactor.FromOccludedTransitionInteractor.Companion.TO_LOCKSCREEN_DURATION import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.AnimationParams import javax.inject.Inject import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map /** * Breaks down OCCLUDED->LOCKSCREEN transition into discrete steps for corresponding views to * consume. */ @SysUISingleton class OccludedToLockscreenTransitionViewModel @Inject constructor( private val interactor: KeyguardTransitionInteractor, ) { /** Lockscreen views y-translation */ fun lockscreenTranslationY(translatePx: Int): Flow<Float> { return flowForAnimation(LOCKSCREEN_TRANSLATION_Y).map { value -> -translatePx + (EMPHASIZED_DECELERATE.getInterpolation(value) * translatePx) } } /** Lockscreen views alpha */ val lockscreenAlpha: Flow<Float> = flowForAnimation(LOCKSCREEN_ALPHA) private fun flowForAnimation(params: AnimationParams): Flow<Float> { return interactor.transitionStepAnimation( interactor.occludedToLockscreenTransition, params, totalDuration = TO_LOCKSCREEN_DURATION ) } companion object { @JvmField val LOCKSCREEN_ANIMATION_DURATION_MS = TO_LOCKSCREEN_DURATION.inWholeMilliseconds val LOCKSCREEN_TRANSLATION_Y = AnimationParams(duration = TO_LOCKSCREEN_DURATION) val LOCKSCREEN_ALPHA = AnimationParams(startTime = 233.milliseconds, duration = 250.milliseconds) } } packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +43 −13 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ import com.android.systemui.keyguard.shared.model.TransitionState; import com.android.systemui.keyguard.shared.model.TransitionStep; import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel; import com.android.systemui.keyguard.ui.viewmodel.KeyguardBottomAreaViewModel; import com.android.systemui.keyguard.ui.viewmodel.OccludedToLockscreenTransitionViewModel; import com.android.systemui.media.controls.pipeline.MediaDataManager; import com.android.systemui.media.controls.ui.KeyguardMediaController; import com.android.systemui.media.controls.ui.MediaHierarchyManager; Loading Loading @@ -239,6 +240,8 @@ import java.util.function.Consumer; import javax.inject.Inject; import javax.inject.Provider; import kotlinx.coroutines.CoroutineDispatcher; @CentralSurfacesComponent.CentralSurfacesScope public final class NotificationPanelViewController implements Dumpable { Loading Loading @@ -685,10 +688,13 @@ public final class NotificationPanelViewController implements Dumpable { private boolean mIgnoreXTouchSlop; private boolean mExpandLatencyTracking; private DreamingToLockscreenTransitionViewModel mDreamingToLockscreenTransitionViewModel; private OccludedToLockscreenTransitionViewModel mOccludedToLockscreenTransitionViewModel; private KeyguardTransitionInteractor mKeyguardTransitionInteractor; private boolean mIsDreamToLockscreenTransitionRunning = false; private CoroutineDispatcher mMainDispatcher; private boolean mIsToLockscreenTransitionRunning = false; private int mDreamingToLockscreenTransitionTranslationY; private int mOccludedToLockscreenTransitionTranslationY; private boolean mUnocclusionTransitionFlagEnabled = false; private final Runnable mFlingCollapseRunnable = () -> fling(0, false /* expand */, Loading @@ -707,7 +713,13 @@ public final class NotificationPanelViewController implements Dumpable { private final Consumer<TransitionStep> mDreamingToLockscreenTransition = (TransitionStep step) -> { mIsDreamToLockscreenTransitionRunning = mIsToLockscreenTransitionRunning = step.getTransitionState() == TransitionState.RUNNING; }; private final Consumer<TransitionStep> mOccludedToLockscreenTransition = (TransitionStep step) -> { mIsToLockscreenTransitionRunning = step.getTransitionState() == TransitionState.RUNNING; }; Loading Loading @@ -781,6 +793,8 @@ public final class NotificationPanelViewController implements Dumpable { KeyguardBottomAreaInteractor keyguardBottomAreaInteractor, AlternateBouncerInteractor alternateBouncerInteractor, DreamingToLockscreenTransitionViewModel dreamingToLockscreenTransitionViewModel, OccludedToLockscreenTransitionViewModel occludedToLockscreenTransitionViewModel, @Main CoroutineDispatcher mainDispatcher, KeyguardTransitionInteractor keyguardTransitionInteractor, DumpManager dumpManager) { keyguardStateController.addCallback(new KeyguardStateController.Callback() { Loading @@ -798,6 +812,7 @@ public final class NotificationPanelViewController implements Dumpable { mShadeHeightLogger = shadeHeightLogger; mGutsManager = gutsManager; mDreamingToLockscreenTransitionViewModel = dreamingToLockscreenTransitionViewModel; mOccludedToLockscreenTransitionViewModel = occludedToLockscreenTransitionViewModel; mKeyguardTransitionInteractor = keyguardTransitionInteractor; mView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { @Override Loading Loading @@ -876,6 +891,7 @@ public final class NotificationPanelViewController implements Dumpable { mFalsingCollector = falsingCollector; mPowerManager = powerManager; mWakeUpCoordinator = coordinator; mMainDispatcher = mainDispatcher; mAccessibilityManager = accessibilityManager; mView.setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); setPanelAlpha(255, false /* animate */); Loading Loading @@ -1101,15 +1117,27 @@ public final class NotificationPanelViewController implements Dumpable { controller.setup(mNotificationContainerParent)); if (mUnocclusionTransitionFlagEnabled) { // Dreaming->Lockscreen collectFlow(mView, mKeyguardTransitionInteractor.getDreamingToLockscreenTransition(), mDreamingToLockscreenTransition, mMainDispatcher); collectFlow(mView, mDreamingToLockscreenTransitionViewModel.getLockscreenAlpha(), dreamingToLockscreenTransitionAlpha(mNotificationStackScrollLayoutController)); toLockscreenTransitionAlpha(mNotificationStackScrollLayoutController), mMainDispatcher); collectFlow(mView, mDreamingToLockscreenTransitionViewModel.lockscreenTranslationY( mDreamingToLockscreenTransitionTranslationY), dreamingToLockscreenTransitionY(mNotificationStackScrollLayoutController)); toLockscreenTransitionY(mNotificationStackScrollLayoutController), mMainDispatcher); collectFlow(mView, mKeyguardTransitionInteractor.getDreamingToLockscreenTransition(), mDreamingToLockscreenTransition); // Occluded->Lockscreen collectFlow(mView, mKeyguardTransitionInteractor.getOccludedToLockscreenTransition(), mOccludedToLockscreenTransition, mMainDispatcher); collectFlow(mView, mOccludedToLockscreenTransitionViewModel.getLockscreenAlpha(), toLockscreenTransitionAlpha(mNotificationStackScrollLayoutController), mMainDispatcher); collectFlow(mView, mOccludedToLockscreenTransitionViewModel.lockscreenTranslationY( mOccludedToLockscreenTransitionTranslationY), toLockscreenTransitionY(mNotificationStackScrollLayoutController), mMainDispatcher); } } Loading Loading @@ -1147,6 +1175,8 @@ public final class NotificationPanelViewController implements Dumpable { R.dimen.split_shade_scrim_transition_distance); mDreamingToLockscreenTransitionTranslationY = mResources.getDimensionPixelSize( R.dimen.dreaming_to_lockscreen_transition_lockscreen_translation_y); mOccludedToLockscreenTransitionTranslationY = mResources.getDimensionPixelSize( R.dimen.occluded_to_lockscreen_transition_lockscreen_translation_y); } private void updateViewControllers(KeyguardStatusView keyguardStatusView, Loading Loading @@ -1810,7 +1840,7 @@ public final class NotificationPanelViewController implements Dumpable { } private void updateClock() { if (mIsDreamToLockscreenTransitionRunning) { if (mIsToLockscreenTransitionRunning) { return; } float alpha = mClockPositionResult.clockAlpha * mKeyguardOnlyContentAlpha; Loading Loading @@ -2701,7 +2731,7 @@ public final class NotificationPanelViewController implements Dumpable { } else if (statusBarState == KEYGUARD || statusBarState == StatusBarState.SHADE_LOCKED) { mKeyguardBottomArea.setVisibility(View.VISIBLE); if (!mIsDreamToLockscreenTransitionRunning) { if (!mIsToLockscreenTransitionRunning) { mKeyguardBottomArea.setAlpha(1f); } } else { Loading Loading @@ -3570,7 +3600,7 @@ public final class NotificationPanelViewController implements Dumpable { } private void updateNotificationTranslucency() { if (mIsDreamToLockscreenTransitionRunning) { if (mIsToLockscreenTransitionRunning) { return; } float alpha = 1f; Loading Loading @@ -3628,7 +3658,7 @@ public final class NotificationPanelViewController implements Dumpable { } private void updateKeyguardBottomAreaAlpha() { if (mIsDreamToLockscreenTransitionRunning) { if (mIsToLockscreenTransitionRunning) { return; } // There are two possible panel expansion behaviors: Loading Loading @@ -5860,7 +5890,7 @@ public final class NotificationPanelViewController implements Dumpable { mCurrentPanelState = state; } private Consumer<Float> dreamingToLockscreenTransitionAlpha( private Consumer<Float> toLockscreenTransitionAlpha( NotificationStackScrollLayoutController stackScroller) { return (Float alpha) -> { mKeyguardStatusViewController.setAlpha(alpha); Loading @@ -5878,7 +5908,7 @@ public final class NotificationPanelViewController implements Dumpable { }; } private Consumer<Float> dreamingToLockscreenTransitionY( private Consumer<Float> toLockscreenTransitionY( NotificationStackScrollLayoutController stackScroller) { return (Float translationY) -> { mKeyguardStatusViewController.setTranslationY(translationY, /* excludeMedia= */false); Loading Loading
packages/SystemUI/res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -1289,6 +1289,9 @@ <!-- DREAMING -> LOCKSCREEN transition: Amount to shift lockscreen content on entering --> <dimen name="dreaming_to_lockscreen_transition_lockscreen_translation_y">40dp</dimen> <!-- OCCLUDED -> LOCKSCREEN transition: Amount to shift lockscreen content on entering --> <dimen name="occluded_to_lockscreen_transition_lockscreen_translation_y">40dp</dimen> <!-- The amount of vertical offset for the keyguard during the full shade transition. --> <dimen name="lockscreen_shade_keyguard_transition_vertical_offset">0dp</dimen> Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt +2 −2 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ constructor( name, KeyguardState.OCCLUDED, KeyguardState.LOCKSCREEN, getAnimator(), getAnimator(TO_LOCKSCREEN_DURATION), ) ) } Loading @@ -97,6 +97,6 @@ constructor( companion object { private val DEFAULT_DURATION = 500.milliseconds val TO_LOCKSCREEN_DURATION = 1183.milliseconds val TO_LOCKSCREEN_DURATION = 933.milliseconds } }
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractor.kt +14 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.KeyguardState.AOD import com.android.systemui.keyguard.shared.model.KeyguardState.DREAMING import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN import com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionState.STARTED import com.android.systemui.keyguard.shared.model.TransitionStep import javax.inject.Inject import kotlin.time.Duration Loading @@ -50,6 +52,10 @@ constructor( val dreamingToLockscreenTransition: Flow<TransitionStep> = repository.transition(DREAMING, LOCKSCREEN) /** OCCLUDED->LOCKSCREEN transition information. */ val occludedToLockscreenTransition: Flow<TransitionStep> = repository.transition(OCCLUDED, LOCKSCREEN) /** (any)->AOD transition information */ val anyStateToAodTransition: Flow<TransitionStep> = repository.transitions.filter { step -> step.to == KeyguardState.AOD } Loading Loading @@ -93,7 +99,14 @@ constructor( val start = (params.startTime / totalDuration).toFloat() val chunks = (totalDuration / params.duration).toFloat() return flow .map { step -> (step.value - start) * chunks } // When starting, emit a value of 0f to give animations a chance to set initial state .map { step -> if (step.transitionState == STARTED) { 0f } else { (step.value - start) * chunks } } .filter { value -> value >= 0f && value <= 1f } } }
packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/OccludedToLockscreenTransitionViewModel.kt 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.keyguard.ui.viewmodel import com.android.systemui.animation.Interpolators.EMPHASIZED_DECELERATE import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.domain.interactor.FromOccludedTransitionInteractor.Companion.TO_LOCKSCREEN_DURATION import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.AnimationParams import javax.inject.Inject import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map /** * Breaks down OCCLUDED->LOCKSCREEN transition into discrete steps for corresponding views to * consume. */ @SysUISingleton class OccludedToLockscreenTransitionViewModel @Inject constructor( private val interactor: KeyguardTransitionInteractor, ) { /** Lockscreen views y-translation */ fun lockscreenTranslationY(translatePx: Int): Flow<Float> { return flowForAnimation(LOCKSCREEN_TRANSLATION_Y).map { value -> -translatePx + (EMPHASIZED_DECELERATE.getInterpolation(value) * translatePx) } } /** Lockscreen views alpha */ val lockscreenAlpha: Flow<Float> = flowForAnimation(LOCKSCREEN_ALPHA) private fun flowForAnimation(params: AnimationParams): Flow<Float> { return interactor.transitionStepAnimation( interactor.occludedToLockscreenTransition, params, totalDuration = TO_LOCKSCREEN_DURATION ) } companion object { @JvmField val LOCKSCREEN_ANIMATION_DURATION_MS = TO_LOCKSCREEN_DURATION.inWholeMilliseconds val LOCKSCREEN_TRANSLATION_Y = AnimationParams(duration = TO_LOCKSCREEN_DURATION) val LOCKSCREEN_ALPHA = AnimationParams(startTime = 233.milliseconds, duration = 250.milliseconds) } }
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +43 −13 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ import com.android.systemui.keyguard.shared.model.TransitionState; import com.android.systemui.keyguard.shared.model.TransitionStep; import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel; import com.android.systemui.keyguard.ui.viewmodel.KeyguardBottomAreaViewModel; import com.android.systemui.keyguard.ui.viewmodel.OccludedToLockscreenTransitionViewModel; import com.android.systemui.media.controls.pipeline.MediaDataManager; import com.android.systemui.media.controls.ui.KeyguardMediaController; import com.android.systemui.media.controls.ui.MediaHierarchyManager; Loading Loading @@ -239,6 +240,8 @@ import java.util.function.Consumer; import javax.inject.Inject; import javax.inject.Provider; import kotlinx.coroutines.CoroutineDispatcher; @CentralSurfacesComponent.CentralSurfacesScope public final class NotificationPanelViewController implements Dumpable { Loading Loading @@ -685,10 +688,13 @@ public final class NotificationPanelViewController implements Dumpable { private boolean mIgnoreXTouchSlop; private boolean mExpandLatencyTracking; private DreamingToLockscreenTransitionViewModel mDreamingToLockscreenTransitionViewModel; private OccludedToLockscreenTransitionViewModel mOccludedToLockscreenTransitionViewModel; private KeyguardTransitionInteractor mKeyguardTransitionInteractor; private boolean mIsDreamToLockscreenTransitionRunning = false; private CoroutineDispatcher mMainDispatcher; private boolean mIsToLockscreenTransitionRunning = false; private int mDreamingToLockscreenTransitionTranslationY; private int mOccludedToLockscreenTransitionTranslationY; private boolean mUnocclusionTransitionFlagEnabled = false; private final Runnable mFlingCollapseRunnable = () -> fling(0, false /* expand */, Loading @@ -707,7 +713,13 @@ public final class NotificationPanelViewController implements Dumpable { private final Consumer<TransitionStep> mDreamingToLockscreenTransition = (TransitionStep step) -> { mIsDreamToLockscreenTransitionRunning = mIsToLockscreenTransitionRunning = step.getTransitionState() == TransitionState.RUNNING; }; private final Consumer<TransitionStep> mOccludedToLockscreenTransition = (TransitionStep step) -> { mIsToLockscreenTransitionRunning = step.getTransitionState() == TransitionState.RUNNING; }; Loading Loading @@ -781,6 +793,8 @@ public final class NotificationPanelViewController implements Dumpable { KeyguardBottomAreaInteractor keyguardBottomAreaInteractor, AlternateBouncerInteractor alternateBouncerInteractor, DreamingToLockscreenTransitionViewModel dreamingToLockscreenTransitionViewModel, OccludedToLockscreenTransitionViewModel occludedToLockscreenTransitionViewModel, @Main CoroutineDispatcher mainDispatcher, KeyguardTransitionInteractor keyguardTransitionInteractor, DumpManager dumpManager) { keyguardStateController.addCallback(new KeyguardStateController.Callback() { Loading @@ -798,6 +812,7 @@ public final class NotificationPanelViewController implements Dumpable { mShadeHeightLogger = shadeHeightLogger; mGutsManager = gutsManager; mDreamingToLockscreenTransitionViewModel = dreamingToLockscreenTransitionViewModel; mOccludedToLockscreenTransitionViewModel = occludedToLockscreenTransitionViewModel; mKeyguardTransitionInteractor = keyguardTransitionInteractor; mView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { @Override Loading Loading @@ -876,6 +891,7 @@ public final class NotificationPanelViewController implements Dumpable { mFalsingCollector = falsingCollector; mPowerManager = powerManager; mWakeUpCoordinator = coordinator; mMainDispatcher = mainDispatcher; mAccessibilityManager = accessibilityManager; mView.setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); setPanelAlpha(255, false /* animate */); Loading Loading @@ -1101,15 +1117,27 @@ public final class NotificationPanelViewController implements Dumpable { controller.setup(mNotificationContainerParent)); if (mUnocclusionTransitionFlagEnabled) { // Dreaming->Lockscreen collectFlow(mView, mKeyguardTransitionInteractor.getDreamingToLockscreenTransition(), mDreamingToLockscreenTransition, mMainDispatcher); collectFlow(mView, mDreamingToLockscreenTransitionViewModel.getLockscreenAlpha(), dreamingToLockscreenTransitionAlpha(mNotificationStackScrollLayoutController)); toLockscreenTransitionAlpha(mNotificationStackScrollLayoutController), mMainDispatcher); collectFlow(mView, mDreamingToLockscreenTransitionViewModel.lockscreenTranslationY( mDreamingToLockscreenTransitionTranslationY), dreamingToLockscreenTransitionY(mNotificationStackScrollLayoutController)); toLockscreenTransitionY(mNotificationStackScrollLayoutController), mMainDispatcher); collectFlow(mView, mKeyguardTransitionInteractor.getDreamingToLockscreenTransition(), mDreamingToLockscreenTransition); // Occluded->Lockscreen collectFlow(mView, mKeyguardTransitionInteractor.getOccludedToLockscreenTransition(), mOccludedToLockscreenTransition, mMainDispatcher); collectFlow(mView, mOccludedToLockscreenTransitionViewModel.getLockscreenAlpha(), toLockscreenTransitionAlpha(mNotificationStackScrollLayoutController), mMainDispatcher); collectFlow(mView, mOccludedToLockscreenTransitionViewModel.lockscreenTranslationY( mOccludedToLockscreenTransitionTranslationY), toLockscreenTransitionY(mNotificationStackScrollLayoutController), mMainDispatcher); } } Loading Loading @@ -1147,6 +1175,8 @@ public final class NotificationPanelViewController implements Dumpable { R.dimen.split_shade_scrim_transition_distance); mDreamingToLockscreenTransitionTranslationY = mResources.getDimensionPixelSize( R.dimen.dreaming_to_lockscreen_transition_lockscreen_translation_y); mOccludedToLockscreenTransitionTranslationY = mResources.getDimensionPixelSize( R.dimen.occluded_to_lockscreen_transition_lockscreen_translation_y); } private void updateViewControllers(KeyguardStatusView keyguardStatusView, Loading Loading @@ -1810,7 +1840,7 @@ public final class NotificationPanelViewController implements Dumpable { } private void updateClock() { if (mIsDreamToLockscreenTransitionRunning) { if (mIsToLockscreenTransitionRunning) { return; } float alpha = mClockPositionResult.clockAlpha * mKeyguardOnlyContentAlpha; Loading Loading @@ -2701,7 +2731,7 @@ public final class NotificationPanelViewController implements Dumpable { } else if (statusBarState == KEYGUARD || statusBarState == StatusBarState.SHADE_LOCKED) { mKeyguardBottomArea.setVisibility(View.VISIBLE); if (!mIsDreamToLockscreenTransitionRunning) { if (!mIsToLockscreenTransitionRunning) { mKeyguardBottomArea.setAlpha(1f); } } else { Loading Loading @@ -3570,7 +3600,7 @@ public final class NotificationPanelViewController implements Dumpable { } private void updateNotificationTranslucency() { if (mIsDreamToLockscreenTransitionRunning) { if (mIsToLockscreenTransitionRunning) { return; } float alpha = 1f; Loading Loading @@ -3628,7 +3658,7 @@ public final class NotificationPanelViewController implements Dumpable { } private void updateKeyguardBottomAreaAlpha() { if (mIsDreamToLockscreenTransitionRunning) { if (mIsToLockscreenTransitionRunning) { return; } // There are two possible panel expansion behaviors: Loading Loading @@ -5860,7 +5890,7 @@ public final class NotificationPanelViewController implements Dumpable { mCurrentPanelState = state; } private Consumer<Float> dreamingToLockscreenTransitionAlpha( private Consumer<Float> toLockscreenTransitionAlpha( NotificationStackScrollLayoutController stackScroller) { return (Float alpha) -> { mKeyguardStatusViewController.setAlpha(alpha); Loading @@ -5878,7 +5908,7 @@ public final class NotificationPanelViewController implements Dumpable { }; } private Consumer<Float> dreamingToLockscreenTransitionY( private Consumer<Float> toLockscreenTransitionY( NotificationStackScrollLayoutController stackScroller) { return (Float translationY) -> { mKeyguardStatusViewController.setTranslationY(translationY, /* excludeMedia= */false); Loading