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.content.Context
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
|
import android.net.wifi.WifiInfo
|
||||||
import android.net.wifi.WifiManager
|
import android.net.wifi.WifiManager
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@@ -68,6 +69,11 @@ class InternetPreferenceRepository(
|
|||||||
hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) &&
|
hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) &&
|
||||||
hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
|
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) {
|
for (transportType in transportTypes) {
|
||||||
when (transportType) {
|
when (transportType) {
|
||||||
NetworkCapabilities.TRANSPORT_WIFI -> return wifiDisplayInfoFlow()
|
NetworkCapabilities.TRANSPORT_WIFI -> return wifiDisplayInfoFlow()
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.network
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.NetworkCapabilities
|
import android.net.NetworkCapabilities
|
||||||
|
import android.net.wifi.WifiInfo
|
||||||
import android.net.wifi.WifiManager
|
import android.net.wifi.WifiManager
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
@@ -32,6 +33,7 @@ import kotlinx.coroutines.flow.flowOf
|
|||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.kotlin.any
|
||||||
import org.mockito.kotlin.doReturn
|
import org.mockito.kotlin.doReturn
|
||||||
import org.mockito.kotlin.mock
|
import org.mockito.kotlin.mock
|
||||||
import org.mockito.kotlin.stub
|
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
|
@Test
|
||||||
fun displayInfoFlow_cellular() = runBlocking {
|
fun displayInfoFlow_cellular() = runBlocking {
|
||||||
val wifiNetworkCapabilities =
|
val wifiNetworkCapabilities =
|
||||||
|
Reference in New Issue
Block a user