summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wifi/java/android/net/wifi/SoftApConfiguration.java14
-rw-r--r--wifi/tests/src/android/net/wifi/SoftApConfigurationTest.java15
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