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

Commit c5cc30f0 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

InternetPreferenceController V2 (5/n)

Support ethernet.

Bug: 339884322
Flag: com.android.settings.flags.internet_preference_controller_v2
Test: manual - on Internet
Test: unit test
Change-Id: I73fc9334379daa979f736fc9ff31c3d576a3381b
parent 0d758dfd
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach
@@ -71,6 +72,7 @@ class InternetPreferenceRepository(
                when (transportType) {
                    NetworkCapabilities.TRANSPORT_WIFI -> return wifiDisplayInfoFlow()
                    NetworkCapabilities.TRANSPORT_CELLULAR -> return cellularDisplayInfoFlow()
                    NetworkCapabilities.TRANSPORT_ETHERNET -> return ethernetDisplayInfoFlow()
                }
            }
        }
@@ -93,6 +95,14 @@ class InternetPreferenceRepository(
            )
        }

    private fun ethernetDisplayInfoFlow() =
        flowOf(
            DisplayInfo(
                summary = context.getString(R.string.to_switch_networks_disconnect_ethernet),
                iconResId = R.drawable.ic_settings_ethernet,
            )
        )

    private fun defaultDisplayInfoFlow(): Flow<DisplayInfo> =
        combine(
            airplaneModeOnFlow,
+23 −0
Original line number Diff line number Diff line
@@ -105,6 +105,29 @@ class InternetPreferenceRepositoryTest {
            )
    }

    @Test
    fun displayInfoFlow_ethernet() = runBlocking {
        val wifiNetworkCapabilities =
            NetworkCapabilities.Builder()
                .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
                .build()
        mockConnectivityRepository.stub {
            on { networkCapabilitiesFlow() } doReturn flowOf(wifiNetworkCapabilities)
        }

        val displayInfo = repository.displayInfoFlow().firstWithTimeoutOrNull()

        assertThat(displayInfo)
            .isEqualTo(
                InternetPreferenceRepository.DisplayInfo(
                    summary = context.getString(R.string.to_switch_networks_disconnect_ethernet),
                    iconResId = R.drawable.ic_settings_ethernet,
                )
            )
    }

    @Test
    fun displayInfoFlow_airplaneModeOnAndWifiOn() = runBlocking {
        mockConnectivityRepository.stub {