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

Commit f6547f7c authored by Ale Nijamkin's avatar Ale Nijamkin
Browse files

[flexiglass] Disable BackActionInteractor when flexi is on

This class isn't needed when flexi is on.

Bug: 283121968
Test: manually verified that the back gesture and back key_event from
adb both seem to still work to close the shade, QS, or bouncer while
flexi is on
Flag: com.android.systemui.scene_container

Change-Id: I4d66c629037fbecffae5c4bf6848bd1c897d3577
parent 8f71e68e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import androidx.test.filters.SmallTest
import com.android.internal.statusbar.IStatusBarService
import com.android.systemui.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.flags.DisableSceneContainer
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
import com.android.systemui.kosmos.testScope
import com.android.systemui.plugins.statusbar.StatusBarStateController
@@ -73,6 +74,7 @@ import org.mockito.junit.MockitoJUnit

@SmallTest
@RunWith(AndroidJUnit4::class)
@DisableSceneContainer
class BackActionInteractorTest : SysuiTestCase() {
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
+13 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.scene.domain.interactor.WindowRootViewVisibilityInteractor
import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.shade.QuickSettingsController
import com.android.systemui.shade.ShadeController
import com.android.systemui.shade.domain.interactor.ShadeBackActionInteractor
@@ -80,6 +81,10 @@ constructor(
            notificationShadeWindowController.windowRootView?.viewRootImpl?.onBackInvokedDispatcher

    override fun start() {
        if (SceneContainerFlag.isEnabled) {
            return
        }

        scope.launch {
            windowRootViewVisibilityInteractor.isLockscreenOrShadeVisibleAndInteractive.collect {
                visible ->
@@ -93,12 +98,20 @@ constructor(
    }

    fun shouldBackBeHandled(): Boolean {
        if (SceneContainerFlag.isEnabled) {
            return false
        }

        return statusBarStateController.state != StatusBarState.KEYGUARD &&
            statusBarStateController.state != StatusBarState.SHADE_LOCKED &&
            !statusBarKeyguardViewManager.isBouncerShowingOverDream
    }

    fun onBackRequested(): Boolean {
        if (SceneContainerFlag.isEnabled) {
            return false
        }

        if (statusBarKeyguardViewManager.canHandleBackPressed()) {
            statusBarKeyguardViewManager.onBackPressed()
            return true