Loading packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.java +24 −3 Original line number Diff line number Diff line Loading @@ -133,7 +133,8 @@ public class VisualStabilityCoordinatorTest extends SysuiTestCase { mVisibilityLocationProvider, mVisualStabilityProvider, mWakefulnessLifecycle, mKosmos.getCommunalInteractor(), mKosmos.getCommunalSceneInteractor(), mKosmos.getShadeInteractor(), mKosmos.getKeyguardTransitionInteractor(), mLogger); mCoordinator.attach(mNotifPipeline); Loading Loading @@ -561,17 +562,32 @@ public class VisualStabilityCoordinatorTest extends SysuiTestCase { @Test public void testCommunalShowingWillNotSuppressReordering() { // GIVEN panel is expanded and communal is showing // GIVEN panel is expanded, communal is showing, and QS is collapsed setPulsing(false); setFullyDozed(false); setSleepy(false); setPanelExpanded(true); setQsExpanded(false); setCommunalShowing(true); // Reordering should be allowed assertTrue(mNotifStabilityManager.isEntryReorderingAllowed(mEntry)); } @Test public void testQsExpandedOverCommunalWillSuppressReordering() { // GIVEN panel is expanded and communal is showing, but QS is expanded setPulsing(false); setFullyDozed(false); setSleepy(false); setPanelExpanded(true); setQsExpanded(true); setCommunalShowing(true); // Reordering should not be allowed assertFalse(mNotifStabilityManager.isEntryReorderingAllowed(mEntry)); } @Test public void testQueryingEntryReorderingButNotReportingReorderSuppressedDoesNotInvalidate() { // GIVEN visual stability is being maintained b/c panel is expanded Loading Loading @@ -631,7 +647,12 @@ public class VisualStabilityCoordinatorTest extends SysuiTestCase { new ObservableTransitionState.Idle( isShowing ? CommunalScenes.Communal : CommunalScenes.Blank) ); mKosmos.getCommunalRepository().setTransitionState(showingFlow); mKosmos.getCommunalSceneInteractor().setTransitionState(showingFlow); mTestScope.getTestScheduler().runCurrent(); } private void setQsExpanded(boolean isExpanded) { mKosmos.getShadeRepository().setQsExpansion(isExpanded ? 1.0f : 0.0f); mTestScope.getTestScheduler().runCurrent(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java +14 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import com.android.systemui.Dumpable; import com.android.systemui.communal.domain.interactor.CommunalInteractor; import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dump.DumpManager; Loading @@ -32,6 +32,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardState; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor; import com.android.systemui.shade.domain.interactor.ShadeInteractor; import com.android.systemui.statusbar.notification.VisibilityLocationProvider; import com.android.systemui.statusbar.notification.collection.GroupEntry; import com.android.systemui.statusbar.notification.collection.ListEntry; Loading @@ -43,6 +44,7 @@ import com.android.systemui.statusbar.notification.domain.interactor.SeenNotific import com.android.systemui.statusbar.notification.shared.NotificationMinimalismPrototype; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.kotlin.BooleanFlowOperators; import com.android.systemui.util.kotlin.JavaAdapter; import java.io.PrintWriter; Loading Loading @@ -70,7 +72,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { private final VisibilityLocationProvider mVisibilityLocationProvider; private final VisualStabilityProvider mVisualStabilityProvider; private final WakefulnessLifecycle mWakefulnessLifecycle; private final CommunalInteractor mCommunalInteractor; private final CommunalSceneInteractor mCommunalSceneInteractor; private final ShadeInteractor mShadeInteractor; private final KeyguardTransitionInteractor mKeyguardTransitionInteractor; private final VisualStabilityCoordinatorLogger mLogger; Loading Loading @@ -110,7 +113,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { VisibilityLocationProvider visibilityLocationProvider, VisualStabilityProvider visualStabilityProvider, WakefulnessLifecycle wakefulnessLifecycle, CommunalInteractor communalInteractor, CommunalSceneInteractor communalSceneInteractor, ShadeInteractor shadeInteractor, KeyguardTransitionInteractor keyguardTransitionInteractor, VisualStabilityCoordinatorLogger logger) { mHeadsUpManager = headsUpManager; Loading @@ -122,7 +126,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { mWakefulnessLifecycle = wakefulnessLifecycle; mStatusBarStateController = statusBarStateController; mDelayableExecutor = delayableExecutor; mCommunalInteractor = communalInteractor; mCommunalSceneInteractor = communalSceneInteractor; mShadeInteractor = shadeInteractor; mKeyguardTransitionInteractor = keyguardTransitionInteractor; mLogger = logger; Loading @@ -141,7 +146,11 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { this::onShadeOrQsClosingChanged); mJavaAdapter.alwaysCollectFlow(mShadeAnimationInteractor.isLaunchingActivity(), this::onLaunchingActivityChanged); mJavaAdapter.alwaysCollectFlow(mCommunalInteractor.isIdleOnCommunal(), mJavaAdapter.alwaysCollectFlow( BooleanFlowOperators.INSTANCE.allOf( mCommunalSceneInteractor.isIdleOnCommunal(), BooleanFlowOperators.INSTANCE.not(mShadeInteractor.isAnyFullyExpanded()) ), this::onCommunalShowingChanged); if (SceneContainerFlag.isEnabled()) { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinatorTest.java +24 −3 Original line number Diff line number Diff line Loading @@ -133,7 +133,8 @@ public class VisualStabilityCoordinatorTest extends SysuiTestCase { mVisibilityLocationProvider, mVisualStabilityProvider, mWakefulnessLifecycle, mKosmos.getCommunalInteractor(), mKosmos.getCommunalSceneInteractor(), mKosmos.getShadeInteractor(), mKosmos.getKeyguardTransitionInteractor(), mLogger); mCoordinator.attach(mNotifPipeline); Loading Loading @@ -561,17 +562,32 @@ public class VisualStabilityCoordinatorTest extends SysuiTestCase { @Test public void testCommunalShowingWillNotSuppressReordering() { // GIVEN panel is expanded and communal is showing // GIVEN panel is expanded, communal is showing, and QS is collapsed setPulsing(false); setFullyDozed(false); setSleepy(false); setPanelExpanded(true); setQsExpanded(false); setCommunalShowing(true); // Reordering should be allowed assertTrue(mNotifStabilityManager.isEntryReorderingAllowed(mEntry)); } @Test public void testQsExpandedOverCommunalWillSuppressReordering() { // GIVEN panel is expanded and communal is showing, but QS is expanded setPulsing(false); setFullyDozed(false); setSleepy(false); setPanelExpanded(true); setQsExpanded(true); setCommunalShowing(true); // Reordering should not be allowed assertFalse(mNotifStabilityManager.isEntryReorderingAllowed(mEntry)); } @Test public void testQueryingEntryReorderingButNotReportingReorderSuppressedDoesNotInvalidate() { // GIVEN visual stability is being maintained b/c panel is expanded Loading Loading @@ -631,7 +647,12 @@ public class VisualStabilityCoordinatorTest extends SysuiTestCase { new ObservableTransitionState.Idle( isShowing ? CommunalScenes.Communal : CommunalScenes.Blank) ); mKosmos.getCommunalRepository().setTransitionState(showingFlow); mKosmos.getCommunalSceneInteractor().setTransitionState(showingFlow); mTestScope.getTestScheduler().runCurrent(); } private void setQsExpanded(boolean isExpanded) { mKosmos.getShadeRepository().setQsExpansion(isExpanded ? 1.0f : 0.0f); mTestScope.getTestScheduler().runCurrent(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java +14 −5 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import com.android.systemui.Dumpable; import com.android.systemui.communal.domain.interactor.CommunalInteractor; import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dump.DumpManager; Loading @@ -32,6 +32,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardState; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.scene.shared.flag.SceneContainerFlag; import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor; import com.android.systemui.shade.domain.interactor.ShadeInteractor; import com.android.systemui.statusbar.notification.VisibilityLocationProvider; import com.android.systemui.statusbar.notification.collection.GroupEntry; import com.android.systemui.statusbar.notification.collection.ListEntry; Loading @@ -43,6 +44,7 @@ import com.android.systemui.statusbar.notification.domain.interactor.SeenNotific import com.android.systemui.statusbar.notification.shared.NotificationMinimalismPrototype; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.util.concurrency.DelayableExecutor; import com.android.systemui.util.kotlin.BooleanFlowOperators; import com.android.systemui.util.kotlin.JavaAdapter; import java.io.PrintWriter; Loading Loading @@ -70,7 +72,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { private final VisibilityLocationProvider mVisibilityLocationProvider; private final VisualStabilityProvider mVisualStabilityProvider; private final WakefulnessLifecycle mWakefulnessLifecycle; private final CommunalInteractor mCommunalInteractor; private final CommunalSceneInteractor mCommunalSceneInteractor; private final ShadeInteractor mShadeInteractor; private final KeyguardTransitionInteractor mKeyguardTransitionInteractor; private final VisualStabilityCoordinatorLogger mLogger; Loading Loading @@ -110,7 +113,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { VisibilityLocationProvider visibilityLocationProvider, VisualStabilityProvider visualStabilityProvider, WakefulnessLifecycle wakefulnessLifecycle, CommunalInteractor communalInteractor, CommunalSceneInteractor communalSceneInteractor, ShadeInteractor shadeInteractor, KeyguardTransitionInteractor keyguardTransitionInteractor, VisualStabilityCoordinatorLogger logger) { mHeadsUpManager = headsUpManager; Loading @@ -122,7 +126,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { mWakefulnessLifecycle = wakefulnessLifecycle; mStatusBarStateController = statusBarStateController; mDelayableExecutor = delayableExecutor; mCommunalInteractor = communalInteractor; mCommunalSceneInteractor = communalSceneInteractor; mShadeInteractor = shadeInteractor; mKeyguardTransitionInteractor = keyguardTransitionInteractor; mLogger = logger; Loading @@ -141,7 +146,11 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable { this::onShadeOrQsClosingChanged); mJavaAdapter.alwaysCollectFlow(mShadeAnimationInteractor.isLaunchingActivity(), this::onLaunchingActivityChanged); mJavaAdapter.alwaysCollectFlow(mCommunalInteractor.isIdleOnCommunal(), mJavaAdapter.alwaysCollectFlow( BooleanFlowOperators.INSTANCE.allOf( mCommunalSceneInteractor.isIdleOnCommunal(), BooleanFlowOperators.INSTANCE.not(mShadeInteractor.isAnyFullyExpanded()) ), this::onCommunalShowingChanged); if (SceneContainerFlag.isEnabled()) { Loading