diff options
| author | 2020-11-05 01:29:33 +0000 | |
|---|---|---|
| committer | 2020-11-05 01:29:33 +0000 | |
| commit | ef55c3db2ffd3f93b2526473eaba47c05ffbe4cd (patch) | |
| tree | 75daaa3c24cf2330021ff97e927c06e716af3fad | |
| parent | 0e287358ad44b0672144166f8a98bc7a182f1fb6 (diff) | |
| parent | 499012c6383395183b7ff931d415193d0188ead3 (diff) | |
Merge "wifi: Allow specific channel + ACS in dual bands setting."
| -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 |