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

Commit bab6daa0 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov Committed by Android (Google) Code Review
Browse files

Merge changes If38ad8b1,Ibc1f4e83 into main

* changes:
  [Battery] Use un-deprecated BatteryInteractor if flag is on.
  [Battery] Mark battery classes in common/ as deprecated.
parents 7964c62c b6abfde6
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -382,6 +382,16 @@ flag {
    }
}

flag {
    name: "status_bar_universal_battery_data_source"
    namespace: "systemui"
    description: "Refactors SysUI to always use the battery data source in status bar"
    bug: "434194794"
    metadata {
      purpose: PURPOSE_BUGFIX
    }
}

flag {
  name: "status_bar_system_status_icons_in_compose"
  namespace: "systemui"
+134 −10
Original line number Diff line number Diff line
@@ -16,13 +16,14 @@

package com.android.systemui.communal.domain.interactor

import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.provider.Settings
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.data.repository.batteryRepository
import com.android.systemui.common.data.repository.batteryRepositoryDeprecated
import com.android.systemui.common.data.repository.fake
import com.android.systemui.communal.data.model.FEATURE_AUTO_OPEN
import com.android.systemui.communal.data.model.FEATURE_MANUAL_OPEN
@@ -39,6 +40,9 @@ import com.android.systemui.kosmos.advanceTimeBy
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.statusbar.pipeline.battery.shared.StatusBarUniversalBatteryDataSource
import com.android.systemui.statusbar.policy.batteryController
import com.android.systemui.statusbar.policy.fake
import com.android.systemui.testKosmos
import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID
import com.android.systemui.user.data.repository.fakeUserRepository
@@ -72,7 +76,8 @@ class CommunalAutoOpenInteractorTest : SysuiTestCase() {
    }

    @Test
    fun testStartWhileCharging() =
    @DisableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartWhileCharging_universalBatteryFlagOff() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)
@@ -83,20 +88,74 @@ class CommunalAutoOpenInteractorTest : SysuiTestCase() {
                MAIN_USER_ID,
            )

            batteryRepository.fake.setDevicePluggedIn(false)
            batteryRepositoryDeprecated.fake.setDevicePluggedIn(false)
            assertThat(shouldAutoOpen).isFalse()
            assertThat(suppressionReason)
                .isEqualTo(
                    SuppressionReason.ReasonWhenToAutoShow(FEATURE_AUTO_OPEN or FEATURE_MANUAL_OPEN)
                )

            batteryRepository.fake.setDevicePluggedIn(true)
            batteryRepositoryDeprecated.fake.setDevicePluggedIn(true)
            assertThat(shouldAutoOpen).isTrue()
            assertThat(suppressionReason).isNull()
        }

    @Test
    fun testStartWhileDocked() =
    @EnableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartWhileCharging_universalBatteryFlagOn() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)

            fakeSettings.putIntForUser(
                Settings.Secure.WHEN_TO_START_GLANCEABLE_HUB,
                Settings.Secure.GLANCEABLE_HUB_START_CHARGING,
                MAIN_USER_ID,
            )

            batteryController.fake._isPluggedIn = false
            assertThat(shouldAutoOpen).isFalse()
            assertThat(suppressionReason)
                .isEqualTo(
                    SuppressionReason.ReasonWhenToAutoShow(FEATURE_AUTO_OPEN or FEATURE_MANUAL_OPEN)
                )

            batteryController.fake._isPluggedIn = true
            assertThat(shouldAutoOpen).isTrue()
            assertThat(suppressionReason).isNull()
        }

    @Test
    @DisableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartWhileDocked_universalBatteryFlagOff() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)

            fakeSettings.putIntForUser(
                Settings.Secure.WHEN_TO_START_GLANCEABLE_HUB,
                Settings.Secure.GLANCEABLE_HUB_START_DOCKED,
                MAIN_USER_ID,
            )

            batteryRepositoryDeprecated.fake.setDevicePluggedIn(true)
            fakeDockManager.setIsDocked(false)

            assertThat(shouldAutoOpen).isFalse()
            assertThat(suppressionReason)
                .isEqualTo(
                    SuppressionReason.ReasonWhenToAutoShow(FEATURE_AUTO_OPEN or FEATURE_MANUAL_OPEN)
                )

            fakeDockManager.setIsDocked(true)
            fakeDockManager.setDockEvent(DockManager.STATE_DOCKED)
            assertThat(shouldAutoOpen).isTrue()
            assertThat(suppressionReason).isNull()
        }

    @Test
    @EnableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartWhileDocked_universalBatteryFlagOn() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)
@@ -107,7 +166,7 @@ class CommunalAutoOpenInteractorTest : SysuiTestCase() {
                MAIN_USER_ID,
            )

            batteryRepository.fake.setDevicePluggedIn(true)
            batteryController.fake._isPluggedIn = true
            fakeDockManager.setIsDocked(false)

            assertThat(shouldAutoOpen).isFalse()
@@ -123,7 +182,8 @@ class CommunalAutoOpenInteractorTest : SysuiTestCase() {
        }

    @Test
    fun testStartWhilePostured() =
    @DisableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartWhilePostured_universalBatteryFlagOff() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)
@@ -134,7 +194,7 @@ class CommunalAutoOpenInteractorTest : SysuiTestCase() {
                MAIN_USER_ID,
            )

            batteryRepository.fake.setDevicePluggedIn(true)
            batteryRepositoryDeprecated.fake.setDevicePluggedIn(true)
            posturingRepository.fake.emitPositionState(
                PositionState(
                    stationary = ConfidenceLevel.Positive(confidence = 1f),
@@ -161,7 +221,71 @@ class CommunalAutoOpenInteractorTest : SysuiTestCase() {
        }

    @Test
    fun testStartNever() =
    @EnableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartWhilePostured_universalBatteryFlagOn() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)

            fakeSettings.putIntForUser(
                Settings.Secure.WHEN_TO_START_GLANCEABLE_HUB,
                Settings.Secure.GLANCEABLE_HUB_START_CHARGING_UPRIGHT,
                MAIN_USER_ID,
            )

            batteryController.fake._isPluggedIn = true
            posturingRepository.fake.emitPositionState(
                PositionState(
                    stationary = ConfidenceLevel.Positive(confidence = 1f),
                    orientation = ConfidenceLevel.Negative(confidence = 1f),
                )
            )

            assertThat(shouldAutoOpen).isFalse()
            assertThat(suppressionReason)
                .isEqualTo(
                    SuppressionReason.ReasonWhenToAutoShow(FEATURE_AUTO_OPEN or FEATURE_MANUAL_OPEN)
                )

            advanceTimeBy(1.milliseconds)
            posturingRepository.fake.emitPositionState(
                PositionState(
                    stationary = ConfidenceLevel.Positive(confidence = 1f),
                    orientation = ConfidenceLevel.Positive(confidence = 1f),
                )
            )
            advanceTimeBySlidingWindowAndRun()
            assertThat(shouldAutoOpen).isTrue()
            assertThat(suppressionReason).isNull()
        }

    @Test
    @DisableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartNever_universalBatteryFlagOff() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)

            fakeSettings.putIntForUser(
                Settings.Secure.WHEN_TO_START_GLANCEABLE_HUB,
                Settings.Secure.GLANCEABLE_HUB_START_NEVER,
                MAIN_USER_ID,
            )

            batteryRepositoryDeprecated.fake.setDevicePluggedIn(true)
            posturingRepository.fake.emitPositionState(PositionState())
            fakeDockManager.setIsDocked(true)

            assertThat(shouldAutoOpen).isFalse()
            assertThat(suppressionReason)
                .isEqualTo(
                    SuppressionReason.ReasonWhenToAutoShow(FEATURE_AUTO_OPEN or FEATURE_MANUAL_OPEN)
                )
        }

    @Test
    @EnableFlags(StatusBarUniversalBatteryDataSource.FLAG_NAME)
    fun testStartNever_universalBatteryFlagOn() =
        kosmos.runTest {
            val shouldAutoOpen by collectLastValue(underTest.shouldAutoOpen)
            val suppressionReason by collectLastValue(underTest.suppressionReason)
@@ -172,7 +296,7 @@ class CommunalAutoOpenInteractorTest : SysuiTestCase() {
                MAIN_USER_ID,
            )

            batteryRepository.fake.setDevicePluggedIn(true)
            batteryController.fake._isPluggedIn = true
            posturingRepository.fake.emitPositionState(PositionState())
            fakeDockManager.setIsDocked(true)

+9 −2
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ import com.android.systemui.Flags.FLAG_GLANCEABLE_HUB_V2
import com.android.systemui.Flags.glanceableHubV2
import com.android.systemui.SysuiTestCase
import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository
import com.android.systemui.common.data.repository.batteryRepository
import com.android.systemui.common.data.repository.batteryRepositoryDeprecated
import com.android.systemui.common.data.repository.fake
import com.android.systemui.communal.data.repository.communalSceneRepository
import com.android.systemui.communal.domain.interactor.setCommunalAvailable
@@ -50,6 +50,9 @@ import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest
import com.android.systemui.power.domain.interactor.powerInteractor
import com.android.systemui.statusbar.domain.interactor.keyguardOcclusionInteractor
import com.android.systemui.statusbar.pipeline.battery.shared.StatusBarUniversalBatteryDataSource
import com.android.systemui.statusbar.policy.batteryController
import com.android.systemui.statusbar.policy.fake
import com.android.systemui.testKosmos
import com.android.systemui.user.data.repository.fakeUserRepository
import com.android.systemui.util.settings.fakeSettings
@@ -215,7 +218,11 @@ class FromDreamingTransitionInteractorTest(flags: FlagsParameterization?) : Sysu
                    1,
                    user.id,
                )
                batteryRepository.fake.setDevicePluggedIn(true)
                if (StatusBarUniversalBatteryDataSource.isEnabled) {
                    batteryController.fake._isPluggedIn = true
                } else {
                    batteryRepositoryDeprecated.fake.setDevicePluggedIn(true)
                }
            } else {
                whenever(dreamManager.canStartDreaming(anyBoolean())).thenReturn(true)
            }
+13 −4
Original line number Diff line number Diff line
@@ -21,9 +21,9 @@ import android.provider.Settings
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.common.data.repository.batteryRepository
import com.android.systemui.common.data.repository.batteryRepositoryDeprecated
import com.android.systemui.common.data.repository.fake
import com.android.systemui.common.domain.interactor.batteryInteractor
import com.android.systemui.common.domain.interactor.batteryInteractorDeprecated
import com.android.systemui.display.data.repository.displayRepository
import com.android.systemui.display.domain.interactor.displayStateInteractor
import com.android.systemui.dreams.domain.interactor.dreamSettingsInteractorKosmos
@@ -49,6 +49,10 @@ import com.android.systemui.lowlightclock.LowLightLogger
import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest
import com.android.systemui.power.domain.interactor.powerInteractor
import com.android.systemui.res.R
import com.android.systemui.statusbar.pipeline.battery.domain.interactor.batteryInteractor
import com.android.systemui.statusbar.pipeline.battery.shared.StatusBarUniversalBatteryDataSource
import com.android.systemui.statusbar.policy.batteryController
import com.android.systemui.statusbar.policy.fake
import com.android.systemui.testKosmos
import com.android.systemui.user.data.repository.fakeUserRepository
import com.android.systemui.user.domain.interactor.selectedUserInteractor
@@ -87,6 +91,7 @@ class LowLightBehaviorCoreStartableTest : SysuiTestCase() {
                lowLightBehaviorShellCommand = lowLightBehaviorShellCommand,
                lowLightShellCommand = lowLightShellCommand,
                scope = backgroundScope,
                batteryInteractorDeprecated = batteryInteractorDeprecated,
                batteryInteractor = batteryInteractor,
            )
        }
@@ -96,7 +101,11 @@ class LowLightBehaviorCoreStartableTest : SysuiTestCase() {
    }

    private fun Kosmos.setBatteryPluggedIn(pluggedIn: Boolean) {
        batteryRepository.fake.setDevicePluggedIn(pluggedIn)
        if (StatusBarUniversalBatteryDataSource.isEnabled) {
            batteryController.fake._isPluggedIn = pluggedIn
        } else {
            batteryRepositoryDeprecated.fake.setDevicePluggedIn(pluggedIn)
        }
    }

    private fun Kosmos.setDreamEnabled(enabled: Boolean) {
@@ -151,7 +160,7 @@ class LowLightBehaviorCoreStartableTest : SysuiTestCase() {
        }
        kosmos.lowLightRepository.addAction(LowLightDisplayBehavior.LOW_LIGHT_DREAM, action)

        kosmos.batteryRepository.fake.setDevicePluggedIn(true)
        kosmos.batteryRepositoryDeprecated.fake.setDevicePluggedIn(true)
    }

    @Test
+6 −3
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ package com.android.systemui.common.data

import com.android.systemui.common.data.datastore.DataStoreWrapperFactory
import com.android.systemui.common.data.datastore.DataStoreWrapperFactoryImpl
import com.android.systemui.common.data.repository.BatteryRepository
import com.android.systemui.common.data.repository.BatteryRepositoryImpl
import com.android.systemui.common.data.repository.BatteryRepositoryDeprecated
import com.android.systemui.common.data.repository.BatteryRepositoryDeprecatedImpl
import com.android.systemui.common.data.repository.PackageChangeRepository
import com.android.systemui.common.data.repository.PackageChangeRepositoryImpl
import dagger.Binds
@@ -32,7 +32,10 @@ abstract class CommonDataLayerModule {
        impl: PackageChangeRepositoryImpl
    ): PackageChangeRepository

    @Binds abstract fun bindBatteryRepository(impl: BatteryRepositoryImpl): BatteryRepository
    @Binds
    abstract fun bindBatteryRepository(
        impl: BatteryRepositoryDeprecatedImpl
    ): BatteryRepositoryDeprecated

    @Binds
    abstract fun bindDataStoreWrapperFactory(
Loading