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

Commit 53f1272d authored by Danny Burakov's avatar Danny Burakov Committed by Android (Google) Code Review
Browse files

Merge "[Dual Shade] Expand the other shade when swiping down the top edge." into main

parents 16966a34 89f239c2
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -79,4 +79,13 @@ class NotificationsShadeOverlayActionsViewModelTest : SysuiTestCase() {
            assertThat((action.hideCurrentOverlays as HideCurrentOverlays.Some).overlays)
                .containsExactly(Overlays.NotificationsShade)
        }

    @Test
    fun downFromTopEdgeEndHalf_switchesToQuickSettingsShade() =
        kosmos.runTest {
            val action = actions?.get(Swipe.Down(fromSource = SceneContainerArea.TopEdgeEndHalf))
            assertThat((action as ShowOverlay).overlay).isEqualTo(Overlays.QuickSettingsShade)
            assertThat((action.hideCurrentOverlays as HideCurrentOverlays.Some).overlays)
                .containsExactly(Overlays.NotificationsShade)
        }
}
+9 −0
Original line number Diff line number Diff line
@@ -107,4 +107,13 @@ class QuickSettingsShadeOverlayActionsViewModelTest : SysuiTestCase() {
            assertThat((action.hideCurrentOverlays as HideCurrentOverlays.Some).overlays)
                .containsExactly(Overlays.QuickSettingsShade)
        }

    @Test
    fun downFromTopEdgeStartHalf_switchesToNotificationsShade() =
        kosmos.runTest {
            val action = actions?.get(Swipe.Down(fromSource = SceneContainerArea.TopEdgeStartHalf))
            assertThat((action as ShowOverlay).overlay).isEqualTo(Overlays.NotificationsShade)
            assertThat((action.hideCurrentOverlays as HideCurrentOverlays.Some).overlays)
                .containsExactly(Overlays.QuickSettingsShade)
        }
}
+12 −8
Original line number Diff line number Diff line
@@ -24,7 +24,8 @@ import com.android.compose.animation.scene.UserActionResult.HideOverlay
import com.android.compose.animation.scene.UserActionResult.ShowOverlay
import com.android.compose.animation.scene.UserActionResult.ShowOverlay.HideCurrentOverlays
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.EndHalf
import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.TopEdgeEndHalf
import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
@@ -34,15 +35,18 @@ class NotificationsShadeOverlayActionsViewModel @AssistedInject constructor() :
    UserActionsViewModel() {

    override suspend fun hydrateActions(setActions: (Map<UserAction, UserActionResult>) -> Unit) {
        setActions(
            mapOf(
                Swipe.Up to HideOverlay(Overlays.NotificationsShade),
                Back to HideOverlay(Overlays.NotificationsShade),
                Swipe.Down(fromSource = SceneContainerArea.EndHalf) to
        val hideNotificationsShade = HideOverlay(Overlays.NotificationsShade)
        val openQuickSettingsShade =
            ShowOverlay(
                Overlays.QuickSettingsShade,
                hideCurrentOverlays = HideCurrentOverlays.Some(Overlays.NotificationsShade),
                    ),
            )
        setActions(
            mapOf(
                Swipe.Up to hideNotificationsShade,
                Back to hideNotificationsShade,
                Swipe.Down(fromSource = EndHalf) to openQuickSettingsShade,
                Swipe.Down(fromSource = TopEdgeEndHalf) to openQuickSettingsShade,
            )
        )
    }
+11 −10
Original line number Diff line number Diff line
@@ -25,7 +25,9 @@ import com.android.compose.animation.scene.UserActionResult.ShowOverlay
import com.android.compose.animation.scene.UserActionResult.ShowOverlay.HideCurrentOverlays
import com.android.systemui.qs.panels.ui.viewmodel.EditModeViewModel
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.ui.viewmodel.SceneContainerArea
import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.BottomEdge
import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.StartHalf
import com.android.systemui.scene.ui.viewmodel.SceneContainerArea.TopEdgeStartHalf
import com.android.systemui.scene.ui.viewmodel.UserActionsViewModel
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
@@ -40,23 +42,22 @@ constructor(private val editModeViewModel: EditModeViewModel) : UserActionsViewM
        editModeViewModel.isEditing
            .map { isEditing ->
                val hideQuickSettings = HideOverlay(Overlays.QuickSettingsShade)
                val openNotificationsShade =
                    ShowOverlay(
                        Overlays.NotificationsShade,
                        hideCurrentOverlays = HideCurrentOverlays.Some(Overlays.QuickSettingsShade),
                    )
                buildMap {
                    if (isEditing) {
                        // When editing, the back gesture is handled outside of this view-model.
                        // TODO(b/418003378): Back should go back to the QS grid layout.
                        put(Swipe.Up(fromSource = SceneContainerArea.BottomEdge), hideQuickSettings)
                        put(Swipe.Up(fromSource = BottomEdge), hideQuickSettings)
                    } else {
                        put(Back, hideQuickSettings)
                        put(Swipe.Up, hideQuickSettings)
                    }
                    put(
                        Swipe.Down(fromSource = SceneContainerArea.StartHalf),
                        ShowOverlay(
                            Overlays.NotificationsShade,
                            hideCurrentOverlays =
                                HideCurrentOverlays.Some(Overlays.QuickSettingsShade),
                        ),
                    )
                    put(Swipe.Down(fromSource = TopEdgeStartHalf), openNotificationsShade)
                    put(Swipe.Down(fromSource = StartHalf), openNotificationsShade)
                }
            }
            .collect { actions -> setActions(actions) }