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

Commit 65fd5398 authored by Lucas Silva's avatar Lucas Silva
Browse files

Disable home control dream when flag disabled

This is disabled by default, but its possible that the flag flips from
true to false, in which case we should disable the service again the
next time we boot up. This prevents the flag state in sysui from
becoming out-of-sync with the flag state in WM.

Bug: 328312051
Flag: ACONFIG android.service.controls.flags.home_panel_dream TRUNKFOOD
Test: atest SystemUiRoboTests:HomeControlsDreamStartableTest
Change-Id: I71d3f60eb542d5dcf2352f89ce1f801a4246aee1
parent 10274506
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import com.android.systemui.kosmos.testScope
import com.android.systemui.testKosmos
import com.android.systemui.user.data.repository.FakeUserRepository
import com.android.systemui.user.data.repository.fakeUserRepository
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.whenever
import java.util.Optional
@@ -50,7 +49,6 @@ import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.never
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations

@@ -136,12 +134,17 @@ class HomeControlsDreamStartableTest : SysuiTestCase() {

    @Test
    @DisableFlags(FLAG_HOME_PANEL_DREAM)
    fun testStartDoesNotRunDreamServiceWhenFlagIsDisabled() =
    fun testStartDisablesDreamServiceWhenFlagIsDisabled() =
        testScope.runTest {
            selectedComponentRepository.setSelectedComponent(TEST_SELECTED_COMPONENT_NON_PANEL)
            startable.start()
            runCurrent()
            verify(packageManager, never()).setComponentEnabledSetting(any(), any(), any())
            verify(packageManager)
                .setComponentEnabledSetting(
                    eq(componentName),
                    eq(PackageManager.COMPONENT_ENABLED_STATE_DISABLED),
                    eq(PackageManager.DONT_KILL_APP)
                )
        }

    private fun ControlsServiceInfo(
+7 −4
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ import kotlinx.coroutines.launch
class HomeControlsDreamStartable
@Inject
constructor(
    private val context: Context,
    context: Context,
    private val packageManager: PackageManager,
    private val homeControlsComponentInteractor: HomeControlsComponentInteractor,
    @Background private val bgScope: CoroutineScope,
@@ -39,11 +39,14 @@ constructor(
    private val componentName = ComponentName(context, HomeControlsDreamService::class.java)

    override fun start() {
        if (!homePanelDream()) return
        bgScope.launch {
            if (homePanelDream()) {
                homeControlsComponentInteractor.panelComponent.collect { selectedPanelComponent ->
                    setEnableHomeControlPanel(selectedPanelComponent != null)
                }
            } else {
                setEnableHomeControlPanel(false)
            }
        }
    }