Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 499012c6 authored by lesl's avatar lesl
Browse files

wifi: Allow specific channel + ACS in dual bands setting.

Bug: 162686273
Test: Atest FrameworksWifiApiTests
Change-Id: Iad0373683a2ea93ee05be949168156389e98ae23
parent 3d5a0d06
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -1021,9 +1021,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();
+15 −0
Original line number Diff line number Diff line
@@ -397,6 +397,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