diff options
| -rw-r--r-- | wifi/java/android/net/wifi/SoftApConfiguration.java | 14 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/SoftApConfigurationTest.java | 15 |
2 files changed, 26 insertions, 3 deletions
diff --git a/wifi/java/android/net/wifi/SoftApConfiguration.java b/wifi/java/android/net/wifi/SoftApConfiguration.java index c0f6e7a20f95..e9d1a008eb5f 100644 --- a/wifi/java/android/net/wifi/SoftApConfiguration.java +++ b/wifi/java/android/net/wifi/SoftApConfiguration.java @@ -1026,9 +1026,17 @@ public final class SoftApConfiguration implements Parcelable { + channels.size() + ") configured"); } for (int i = 0; i < channels.size(); i++) { - if (!isChannelBandPairValid(channels.valueAt(i), channels.keyAt(i))) { - throw new IllegalArgumentException("Invalid channel(" + channels.valueAt(i) - + ") & band (" + channels.keyAt(i) + ") configured"); + int channel = channels.valueAt(i); + int band = channels.keyAt(i); + if (channel == 0) { + if (!isBandValid(band)) { + throw new IllegalArgumentException("Invalid band type: " + band); + } + } else { + if (!isChannelBandPairValid(channel, band)) { + throw new IllegalArgumentException("Invalid channel(" + channel + + ") & band (" + band + ") configured"); + } } } mChannels = channels.clone(); diff --git a/wifi/tests/src/android/net/wifi/SoftApConfigurationTest.java b/wifi/tests/src/android/net/wifi/SoftApConfigurationTest.java index 4a94f1f47962..ad0fdd3bce26 100644 --- a/wifi/tests/src/android/net/wifi/SoftApConfigurationTest.java +++ b/wifi/tests/src/android/net/wifi/SoftApConfigurationTest.java @@ -398,6 +398,21 @@ public class SoftApConfigurationTest { assertThat(dual_channels_config.getBand()).isEqualTo(SoftApConfiguration.BAND_2GHZ); assertTrue(dual_channels.toString().equals(dual_channels_config.getChannels().toString())); assertThat(dual_channels_config.getChannel()).isEqualTo(2); + + // Test different parameters. + dual_channels.clear(); + dual_channels.put(SoftApConfiguration.BAND_5GHZ, 149); + dual_channels.put(SoftApConfiguration.BAND_2GHZ | SoftApConfiguration.BAND_5GHZ, 0); + expected_dual_bands[0] = SoftApConfiguration.BAND_5GHZ; + expected_dual_bands[1] = SoftApConfiguration.BAND_2GHZ | SoftApConfiguration.BAND_5GHZ; + dual_channels_config = new SoftApConfiguration.Builder() + .setSsid("ssid") + .setChannels(dual_channels) + .build(); + assertTrue(Arrays.equals(expected_dual_bands, dual_channels_config.getBands())); + assertThat(dual_channels_config.getBand()).isEqualTo(SoftApConfiguration.BAND_5GHZ); + assertTrue(dual_channels.toString().equals(dual_channels_config.getChannels().toString())); + assertThat(dual_channels_config.getChannel()).isEqualTo(149); } @Test |