InternetPreferenceController V2 (6/n)
Treat carrier merged Wi-Fi as cellular. Bug: 339884322 Flag: com.android.settings.flags.internet_preference_controller_v2 Test: manual - on Internet Test: unit test Change-Id: Ie14c36f0f22c332319c097150b06cfeec97e946f
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.settings.network
|
||||
|
||||
import android.content.Context
|
||||
import android.net.NetworkCapabilities
|
||||
import android.net.wifi.WifiInfo
|
||||
import android.net.wifi.WifiManager
|
||||
import android.provider.Settings
|
||||
import android.util.Log
|
||||
@@ -68,6 +69,11 @@ class InternetPreferenceRepository(
|
||||
hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) &&
|
||||
hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
|
||||
) {
|
||||
val transportInfo = transportInfo
|
||||
if (transportInfo is WifiInfo && transportInfo.isCarrierMerged) {
|
||||
Log.i(TAG, "Detect a merged carrier Wi-Fi connected.")
|
||||
return cellularDisplayInfoFlow()
|
||||
}
|
||||
for (transportType in transportTypes) {
|
||||
when (transportType) {
|
||||
NetworkCapabilities.TRANSPORT_WIFI -> return wifiDisplayInfoFlow()
|
||||
|
@@ -18,6 +18,7 @@ package com.android.settings.network
|
||||
|
||||
import android.content.Context
|
||||
import android.net.NetworkCapabilities
|
||||
import android.net.wifi.WifiInfo
|
||||
import android.net.wifi.WifiManager
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
@@ -32,6 +33,7 @@ import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.kotlin.any
|
||||
import org.mockito.kotlin.doReturn
|
||||
import org.mockito.kotlin.mock
|
||||
import org.mockito.kotlin.stub
|
||||
@@ -81,6 +83,36 @@ class InternetPreferenceRepositoryTest {
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun displayInfoFlow_carrierMergedWifi_asCellular() = runBlocking {
|
||||
val wifiInfo =
|
||||
mock<WifiInfo> {
|
||||
on { isCarrierMerged } doReturn true
|
||||
on { makeCopy(any()) } doReturn mock
|
||||
}
|
||||
val wifiNetworkCapabilities =
|
||||
NetworkCapabilities.Builder()
|
||||
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
|
||||
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
|
||||
.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
|
||||
.setTransportInfo(wifiInfo)
|
||||
.build()
|
||||
mockConnectivityRepository.stub {
|
||||
on { networkCapabilitiesFlow() } doReturn flowOf(wifiNetworkCapabilities)
|
||||
}
|
||||
mockDataSubscriptionRepository.stub { on { dataSummaryFlow() } doReturn flowOf(SUMMARY) }
|
||||
|
||||
val displayInfo = repository.displayInfoFlow().firstWithTimeoutOrNull()
|
||||
|
||||
assertThat(displayInfo)
|
||||
.isEqualTo(
|
||||
InternetPreferenceRepository.DisplayInfo(
|
||||
summary = SUMMARY,
|
||||
iconResId = R.drawable.ic_network_cell,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun displayInfoFlow_cellular() = runBlocking {
|
||||
val wifiNetworkCapabilities =
|
||||
|
Reference in New Issue
Block a user