diff options
2 files changed, 60 insertions, 17 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt index c96faabcda6c..062c3d1a4b10 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt @@ -21,7 +21,9 @@ import androidx.annotation.VisibleForTesting /** Provides information about the current wifi network. */ sealed class WifiNetworkModel { /** A model representing that we have no active wifi network. */ - object Inactive : WifiNetworkModel() + object Inactive : WifiNetworkModel() { + override fun toString() = "WifiNetwork.Inactive" + } /** * A model representing that our wifi network is actually a carrier merged network, meaning it's @@ -29,7 +31,9 @@ sealed class WifiNetworkModel { * * See [android.net.wifi.WifiInfo.isCarrierMerged] for more information. */ - object CarrierMerged : WifiNetworkModel() + object CarrierMerged : WifiNetworkModel() { + override fun toString() = "WifiNetwork.CarrierMerged" + } /** Provides information about an active wifi network. */ data class Active( @@ -72,6 +76,24 @@ sealed class WifiNetworkModel { } } + override fun toString(): String { + // Only include the passpoint-related values in the string if we have them. (Most + // networks won't have them so they'll be mostly clutter.) + val passpointString = + if (isPasspointAccessPoint || + isOnlineSignUpForPasspointAccessPoint || + passpointProviderFriendlyName != null) { + ", isPasspointAp=$isPasspointAccessPoint, " + + "isOnlineSignUpForPasspointAp=$isOnlineSignUpForPasspointAccessPoint, " + + "passpointName=$passpointProviderFriendlyName" + } else { + "" + } + + return "WifiNetworkModel.Active(networkId=$networkId, isValidated=$isValidated, " + + "level=$level, ssid=$ssid$passpointString)" + } + companion object { @VisibleForTesting internal const val MIN_VALID_LEVEL = 0 diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt index 929e5294de3d..a3ad028519bb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt @@ -23,9 +23,9 @@ import com.android.settingslib.AccessibilityContentDescriptions.WIFI_CONNECTION_ import com.android.settingslib.AccessibilityContentDescriptions.WIFI_NO_CONNECTION import com.android.systemui.SysuiTestCase import com.android.systemui.common.shared.model.ContentDescription -import com.android.systemui.statusbar.connectivity.WifiIcons import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_FULL_ICONS import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_INTERNET_ICONS +import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_NETWORK import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags import com.android.systemui.statusbar.pipeline.shared.ConnectivityConstants import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger @@ -144,7 +144,12 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase /** A function that, given a context, calculates the correct content description string. */ val contentDescription: (Context) -> String, - ) + + /** A human-readable description used for the test names. */ + val description: String, + ) { + override fun toString() = description + } // Note: We use default values for the boolean parameters to reflect a "typical configuration" // for wifi. This allows each TestCase to only define the parameter values that are critical @@ -158,12 +163,21 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase /** The expected output. Null if we expect the output to be null. */ val expected: Expected? - ) + ) { + override fun toString(): String { + return "when INPUT(enabled=$enabled, " + + "forceHidden=$forceHidden, " + + "showWhenEnabled=$alwaysShowIconWhenEnabled, " + + "hasDataCaps=$hasDataCapabilities, " + + "network=$network) then " + + "EXPECTED($expected)" + } + } companion object { - @Parameters(name = "{0}") - @JvmStatic - fun data(): Collection<TestCase> = + @Parameters(name = "{0}") @JvmStatic fun data(): Collection<TestCase> = testData + + private val testData: List<TestCase> = listOf( // Enabled = false => no networks shown TestCase( @@ -215,11 +229,12 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase network = WifiNetworkModel.Inactive, expected = Expected( - iconResource = WifiIcons.WIFI_NO_NETWORK, + iconResource = WIFI_NO_NETWORK, contentDescription = { context -> "${context.getString(WIFI_NO_CONNECTION)}," + context.getString(NO_INTERNET) - } + }, + description = "No network icon", ), ), TestCase( @@ -231,7 +246,8 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase contentDescription = { context -> "${context.getString(WIFI_CONNECTION_STRENGTH[4])}," + context.getString(NO_INTERNET) - } + }, + description = "No internet level 4 icon", ), ), TestCase( @@ -242,7 +258,8 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase iconResource = WIFI_FULL_ICONS[2], contentDescription = { context -> context.getString(WIFI_CONNECTION_STRENGTH[2]) - } + }, + description = "Full internet level 2 icon", ), ), @@ -252,11 +269,12 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase network = WifiNetworkModel.Inactive, expected = Expected( - iconResource = WifiIcons.WIFI_NO_NETWORK, + iconResource = WIFI_NO_NETWORK, contentDescription = { context -> "${context.getString(WIFI_NO_CONNECTION)}," + context.getString(NO_INTERNET) - } + }, + description = "No network icon", ), ), TestCase( @@ -268,7 +286,8 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase contentDescription = { context -> "${context.getString(WIFI_CONNECTION_STRENGTH[2])}," + context.getString(NO_INTERNET) - } + }, + description = "No internet level 2 icon", ), ), TestCase( @@ -279,7 +298,8 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase iconResource = WIFI_FULL_ICONS[0], contentDescription = { context -> context.getString(WIFI_CONNECTION_STRENGTH[0]) - } + }, + description = "Full internet level 0 icon", ), ), @@ -309,7 +329,8 @@ internal class WifiViewModelIconParameterizedTest(private val testCase: TestCase iconResource = WIFI_FULL_ICONS[4], contentDescription = { context -> context.getString(WIFI_CONNECTION_STRENGTH[4]) - } + }, + description = "Full internet level 4 icon", ), ), |