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

Commit d6f44c12 authored by Evan Laird's avatar Evan Laird Committed by Android (Google) Code Review
Browse files

Merge "[mobile] use a mobile context when loading the internet tile's title" into main

parents 752d4d22 b388fae6
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepo
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractorImpl
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiScanEntry
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
@@ -60,6 +59,7 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever
import platform.test.runner.parameterized.ParameterizedAndroidJunit4
import platform.test.runner.parameterized.Parameters
@@ -113,6 +113,7 @@ class InternetTileNewImplTest(flags: FlagsParameterization) : SysuiTestCase() {
                connectivityRepository,
                ethernetInteractor,
                mobileIconsInteractor,
                mock(),
                wifiInteractor,
                context,
                testScope.backgroundScope,
+9 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.systemui.qs.tiles.base.domain.model.DataUpdateTrigger
import com.android.systemui.qs.tiles.impl.internet.domain.model.InternetTileModel
import com.android.systemui.res.R
import com.android.systemui.statusbar.connectivity.WifiIcons
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider
import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
import com.android.systemui.statusbar.pipeline.ethernet.domain.EthernetInteractor
import com.android.systemui.statusbar.pipeline.mobile.data.model.DataConnectionState
@@ -55,13 +56,15 @@ import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
import com.android.systemui.statusbar.policy.data.repository.FakeUserSetupRepository
import com.android.systemui.testKosmos
import com.android.systemui.util.CarrierConfigTracker
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.any
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever

@SmallTest
@RunWith(AndroidJUnit4::class)
@@ -90,6 +93,8 @@ class InternetTileDataInteractorTest : SysuiTestCase() {
    private val mobileConnectionRepository =
        FakeMobileConnectionRepository(SUB_1_ID, tableLogBuffer)

    private val mobileContextProvider = mock<MobileContextProvider>()

    private val flags =
        FakeFeatureFlagsClassic().also {
            it.set(Flags.FILTER_PROVISIONING_NETWORK_SUBSCRIPTIONS, true)
@@ -99,6 +104,8 @@ class InternetTileDataInteractorTest : SysuiTestCase() {

    @Before
    fun setUp() {
        whenever(mobileContextProvider.getMobileContextForSub(any(), any())).thenReturn(context)

        mobileConnectionRepository.apply {
            setNetworkTypeKey(mobileConnectionsRepository.GSM_KEY)
            isInService.value = true
@@ -145,6 +152,7 @@ class InternetTileDataInteractorTest : SysuiTestCase() {
                connectivityRepository,
                ethernetInteractor,
                mobileIconsInteractor,
                mobileContextProvider,
                wifiInteractor,
            )
    }
+11 −11
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.log.table.logcatTableLogBuffer
import com.android.systemui.qs.tileimpl.QSTileImpl.ResourceIcon
import com.android.systemui.res.R
import com.android.systemui.statusbar.connectivity.WifiIcons
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider
import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
import com.android.systemui.statusbar.pipeline.ethernet.domain.EthernetInteractor
import com.android.systemui.statusbar.pipeline.mobile.data.model.DataConnectionState
@@ -51,13 +52,15 @@ import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
import com.android.systemui.statusbar.policy.data.repository.FakeUserSetupRepository
import com.android.systemui.testKosmos
import com.android.systemui.util.CarrierConfigTracker
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.any
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever

@SmallTest
@RunWith(AndroidJUnit4::class)
@@ -85,6 +88,8 @@ class InternetTileViewModelTest : SysuiTestCase() {
    private val mobileConnectionRepository =
        FakeMobileConnectionRepository(SUB_1_ID, tableLogBuffer)

    private val mobileContextProvider = mock<MobileContextProvider>()

    private val flags =
        FakeFeatureFlagsClassic().also {
            it.set(Flags.FILTER_PROVISIONING_NETWORK_SUBSCRIPTIONS, true)
@@ -94,6 +99,8 @@ class InternetTileViewModelTest : SysuiTestCase() {

    @Before
    fun setUp() {
        whenever(mobileContextProvider.getMobileContextForSub(any(), any())).thenReturn(context)

        mobileConnectionRepository.apply {
            setNetworkTypeKey(mobileConnectionsRepository.GSM_KEY)
            isInService.value = true
@@ -125,6 +132,7 @@ class InternetTileViewModelTest : SysuiTestCase() {
                connectivityRepository,
                ethernetInteractor,
                mobileIconsInteractor,
                mobileContextProvider,
                wifiInteractor,
                context,
                testScope.backgroundScope,
@@ -154,11 +162,7 @@ class InternetTileViewModelTest : SysuiTestCase() {
        testScope.runTest {
            val latest by collectLastValue(underTest.tileModel)

            val networkModel =
                WifiNetworkModel.Active.of(
                    level = 4,
                    ssid = "test ssid",
                )
            val networkModel = WifiNetworkModel.Active.of(level = 4, ssid = "test ssid")
            val wifiIcon =
                WifiIcon.fromModel(model = networkModel, context = context, showHotspotInfo = false)
                    as WifiIcon.Visible
@@ -391,11 +395,7 @@ class InternetTileViewModelTest : SysuiTestCase() {

    private fun setWifiNetworkWithHotspot(hotspot: WifiNetworkModel.HotspotDeviceType) {
        val networkModel =
            WifiNetworkModel.Active.of(
                level = 4,
                ssid = "test ssid",
                hotspotDeviceType = hotspot,
            )
            WifiNetworkModel.Active.of(level = 4, ssid = "test ssid", hotspotDeviceType = hotspot)

        connectivityRepository.setWifiConnected()
        wifiRepository.setIsWifiDefault(true)
+8 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.qs.tiles.base.domain.model.DataUpdateTrigger
import com.android.systemui.qs.tiles.impl.internet.domain.model.InternetTileModel
import com.android.systemui.res.R
import com.android.systemui.shade.ShadeDisplayAware
import com.android.systemui.statusbar.connectivity.ui.MobileContextProvider
import com.android.systemui.statusbar.pipeline.airplane.data.repository.AirplaneModeRepository
import com.android.systemui.statusbar.pipeline.ethernet.domain.EthernetInteractor
import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractor
@@ -59,6 +60,7 @@ constructor(
    private val connectivityRepository: ConnectivityRepository,
    ethernetInteractor: EthernetInteractor,
    mobileIconsInteractor: MobileIconsInteractor,
    mobileContextProvider: MobileContextProvider,
    wifiInteractor: WifiInteractor,
) : QSTileDataInteractor<InternetTileModel> {
    private val internetLabel: String = context.getString(R.string.quick_settings_internet_label)
@@ -89,11 +91,13 @@ constructor(
                flowOf(null)
            } else {
                combine(it.isRoaming, it.networkTypeIconGroup) { isRoaming, networkTypeIconGroup ->
                    val cd = loadString(networkTypeIconGroup.contentDescription)
                    val mobileContext =
                        mobileContextProvider.getMobileContextForSub(it.subscriptionId, context)
                    val cd = loadString(networkTypeIconGroup.contentDescription, mobileContext)
                    if (isRoaming) {
                        val roaming = context.getString(R.string.data_connection_roaming)
                        val roaming = mobileContext.getString(R.string.data_connection_roaming)
                        if (cd != null) {
                            context.getString(R.string.mobile_data_text_format, roaming, cd)
                            mobileContext.getString(R.string.mobile_data_text_format, roaming, cd)
                        } else {
                            roaming
                        }
@@ -171,7 +175,7 @@ constructor(
        )
    }

    private fun loadString(@StringRes resId: Int): CharSequence? =
    private fun loadString(@StringRes resId: Int, context: Context): CharSequence? =
        if (resId != 0) {
            context.getString(resId)
        } else {
+7 −0
Original line number Diff line number Diff line
@@ -46,6 +46,11 @@ import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn

interface MobileIconInteractor {
    /** The subscriptionId that this connection represents */
    // TODO(b/423048138): The interactor should have enough information to get the proper RAT
    // indicator icon, rather than just exposing the subId here.
    val subscriptionId: Int

    /** The table log created for this connection */
    val tableLogBuffer: TableLogBuffer

@@ -147,6 +152,8 @@ class MobileIconInteractorImpl(
    private val context: Context,
    val carrierIdOverrides: MobileIconCarrierIdOverrides = MobileIconCarrierIdOverridesImpl(),
) : MobileIconInteractor {
    override val subscriptionId = connectionRepository.subId

    override val tableLogBuffer: TableLogBuffer = connectionRepository.tableLogBuffer

    override val activity = connectionRepository.dataActivityDirection
Loading