diff --git a/src/com/android/settings/network/InternetPreferenceRepository.kt b/src/com/android/settings/network/InternetPreferenceRepository.kt index 30b2f6a638e..229213b331e 100644 --- a/src/com/android/settings/network/InternetPreferenceRepository.kt +++ b/src/com/android/settings/network/InternetPreferenceRepository.kt @@ -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 = combine( airplaneModeOnFlow, diff --git a/tests/spa_unit/src/com/android/settings/network/InternetPreferenceRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/InternetPreferenceRepositoryTest.kt index 58caea75a75..5288202cfa0 100644 --- a/tests/spa_unit/src/com/android/settings/network/InternetPreferenceRepositoryTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/InternetPreferenceRepositoryTest.kt @@ -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 {