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

Commit 965c666c authored by Steve Elliott's avatar Steve Elliott Committed by Android (Google) Code Review
Browse files

Merge "[kairos] fix carrierId icon override" into main

parents 926a255a a5a0fc01
Loading
Loading
Loading
Loading
+4 −17
Original line number Diff line number Diff line
@@ -56,8 +56,8 @@ import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.ArgumentMatchers.anyString
import org.mockito.ArgumentMatchers.eq
import org.mockito.kotlin.any
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
@@ -143,7 +143,6 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
        connectionRepo.isGsm.setValue(true)
        connectionRepo.primaryLevel.setValue(GSM_LEVEL)
        connectionRepo.cdmaLevel.setValue(CDMA_LEVEL)
        //            mobileIconsInteractor.alwaysUseCdmaLevel.setValue(true)
        alwaysUseCdmaLevel.setValue(true)

        val latest by underTest.signalLevelIcon.collectLastValue()
@@ -165,7 +164,6 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
        connectionRepo.isGsm.setValue(false)
        connectionRepo.primaryLevel.setValue(GSM_LEVEL)
        connectionRepo.cdmaLevel.setValue(CDMA_LEVEL)
        //            mobileIconsInteractor.alwaysUseCdmaLevel.setValue(true)
        alwaysUseCdmaLevel.setValue(true)

        val latest by underTest.signalLevelIcon.collectLastValue()
@@ -178,7 +176,6 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
        connectionRepo.isGsm.setValue(false)
        connectionRepo.primaryLevel.setValue(GSM_LEVEL)
        connectionRepo.cdmaLevel.setValue(CDMA_LEVEL)
        //            mobileIconsInteractor.alwaysUseCdmaLevel.setValue(false)
        alwaysUseCdmaLevel.setValue(false)

        val latest by underTest.signalLevelIcon.collectLastValue()
@@ -318,13 +315,14 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
    fun overrideIcon_usesCarrierIdOverride() = runTest {
        overrides =
            mock<MobileIconCarrierIdOverrides> {
                on { carrierIdEntryExists(anyInt()) } doReturn true
                on { getOverrideFor(anyInt(), anyString(), any()) } doReturn 1234
                on { carrierIdEntryExists(eq(4321)) } doReturn true
                on { getOverrideFor(eq(4321), anyString(), any()) } doReturn 1234
            }

        connectionRepo.resolvedNetworkType.setValue(
            DefaultNetworkType(mobileMappingsProxy.toIconKey(THREE_G))
        )
        connectionRepo.carrierId.setValue(4321)

        val latest by underTest.networkTypeIconGroup.collectLastValue()

@@ -336,12 +334,10 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
    fun alwaysShowDataRatIcon_matchesParent() = runTest {
        val latest by underTest.alwaysShowDataRatIcon.collectLastValue()

        //            mobileIconsInteractor.alwaysShowDataRatIcon.setValue(true)
        alwaysShowDataRatIcon.setValue(true)

        assertThat(latest).isTrue()

        //            mobileIconsInteractor.alwaysShowDataRatIcon.setValue(false)
        alwaysShowDataRatIcon.setValue(false)

        assertThat(latest).isFalse()
@@ -479,11 +475,9 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
    fun isSingleCarrier_matchesParent() = runTest {
        val latest by underTest.isSingleCarrier.collectLastValue()

        //            mobileIconsInteractor.isSingleCarrier.setValue(true)
        isSingleCarrier.setValue(true)
        assertThat(latest).isTrue()

        //            mobileIconsInteractor.isSingleCarrier.setValue(false)
        isSingleCarrier.setValue(false)
        assertThat(latest).isFalse()
    }
@@ -492,11 +486,9 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
    fun isForceHidden_matchesParent() = runTest {
        val latest by underTest.isForceHidden.collectLastValue()

        //            mobileIconsInteractor.isForceHidden.setValue(true)
        isForceHidden.setValue(true)
        assertThat(latest).isTrue()

        //            mobileIconsInteractor.isForceHidden.setValue(false)
        isForceHidden.setValue(false)
        assertThat(latest).isFalse()
    }
@@ -524,9 +516,6 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
            underTest.signalLevelIcon.map { it as? SignalIconModel.Cellular }.collectLastValue()

        assertThat(latest?.level).isEqualTo(1)

        // TODO: need to provision MobileIconsInteractorKairos#isDefaultConnectionFailed +
        // defaultSubscriptionHasDataEnabled?
        assertThat(latest?.showExclamationMark).isEqualTo(false)
    }

@@ -572,7 +561,6 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
    @Test
    fun cellBasedIcon_defaultConnectionFailed_showExclamationTrue() = runTest {
        connectionRepo.isNonTerrestrial.setValue(false)
        //            mobileIconsInteractor.isDefaultConnectionFailed.setValue(true)
        isDefaultConnectionFailed.setValue(true)

        val latest by underTest.signalLevelIcon.collectLastValue()
@@ -585,7 +573,6 @@ class MobileIconInteractorKairosTest : SysuiTestCase() {
        connectionRepo.isNonTerrestrial.setValue(false)
        connectionRepo.isInService.setValue(true)
        connectionRepo.dataEnabled.setValue(true)
        //            mobileIconsInteractor.isDefaultConnectionFailed.setValue(false)
        isDefaultConnectionFailed.setValue(false)

        val latest by underTest.signalLevelIcon.collectLastValue()
+19 −31
Original line number Diff line number Diff line
@@ -163,12 +163,6 @@ class MobileIconInteractorKairosImpl(
    override val carrierNetworkChangeActive: State<Boolean>
        get() = connectionRepository.carrierNetworkChangeActive

    // True if there exists _any_ icon override for this carrierId. Note that overrides can include
    // any or none of the icon groups defined in MobileMappings, so we still need to check on a
    // per-network-type basis whether or not the given icon group is overridden
    private val carrierIdIconOverrideExists: State<Boolean> =
        connectionRepository.carrierId.map { carrierIdOverrides.carrierIdEntryExists(it) }

    override val networkName: State<NetworkNameModel> =
        combine(connectionRepository.operatorAlphaShort, connectionRepository.networkName) {
            operatorAlphaShort,
@@ -201,22 +195,17 @@ class MobileIconInteractorKairosImpl(
            when (resolvedNetworkType) {
                is ResolvedNetworkType.CarrierMergedNetworkType ->
                    resolvedNetworkType.iconGroupOverride

                else -> {
                    mapping[resolvedNetworkType.lookupKey] ?: defaultGroup
                }
                else -> mapping[resolvedNetworkType.lookupKey] ?: defaultGroup
            }
        }

    override val networkTypeIconGroup: State<NetworkTypeIconModel> = buildState {
        combineTransactionally(defaultNetworkType, carrierIdIconOverrideExists) {
                networkType,
                overrideExists ->
    override val networkTypeIconGroup: State<NetworkTypeIconModel> =
        combine(defaultNetworkType, connectionRepository.carrierId) { networkType, carrierId ->
                // DefaultIcon comes out of the icongroup lookup, we check for overrides here
                if (overrideExists) {
                if (carrierIdOverrides.carrierIdEntryExists(carrierId)) {
                    val iconOverride =
                        carrierIdOverrides.getOverrideFor(
                            connectionRepository.carrierId.sample(),
                            carrierId,
                            networkType.name,
                            context.resources,
                        )
@@ -230,6 +219,7 @@ class MobileIconInteractorKairosImpl(
                }
            }
            .also {
                onActivated {
                    logDiffsForTable(
                        name =
                            nameTag {
@@ -259,12 +249,10 @@ class MobileIconInteractorKairosImpl(
            connectionRepository.isRoaming,
            connectionRepository.cdmaRoaming,
        ) { carrierNetworkChangeActive, isGsm, isRoaming, cdmaRoaming ->
            if (carrierNetworkChangeActive) {
                false
            } else if (isGsm) {
                isRoaming
            } else {
                cdmaRoaming
            when {
                carrierNetworkChangeActive -> false
                isGsm -> isRoaming
                else -> cdmaRoaming
            }
        }