From a8df3064cdf1b8760dc27e352c64bd412b5a6129 Mon Sep 17 00:00:00 2001 From: Ningyuan Wang Date: Wed, 17 Jan 2018 16:01:49 -0800 Subject: [PATCH] Wifi Settings: Add auto option for softap For device with 5g support, settings will display auto, 2g, and 5g options. For decice without 5g support, auto and 2g option are shown. Bug: 68763822 Test: compile Test: m RunSettingsRoboTests -j40 Test: manually test by checking UI and start hotspot with no issue Test: manually test that wifi settings logs expected values Change-Id: Iee9f8cff6aa48df80f5c228596cd9a14f884c274 --- res/values/arrays.xml | 4 +++- res/values/strings.xml | 2 ++ .../tether/WifiTetherApBandPreferenceController.java | 9 ++++++--- .../tether/WifiTetherApBandPreferenceControllerTest.java | 9 +++++++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 7ab9afbb008..cb6f9be5d04 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -266,14 +266,16 @@ PWD - + + @string/wifi_ap_choose_auto @string/wifi_ap_choose_2G @string/wifi_ap_choose_5G + @string/wifi_ap_choose_auto @string/wifi_ap_choose_2G diff --git a/res/values/strings.xml b/res/values/strings.xml index 4182fd95f3b..4ca5f6e4a5e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1941,6 +1941,8 @@ Show password Select AP Band + + Auto 2.4 GHz Band diff --git a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java index 1e299abc2e3..4c47a0d02a3 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java @@ -18,6 +18,7 @@ package com.android.settings.wifi.tether; import static android.net.wifi.WifiConfiguration.AP_BAND_2GHZ; import static android.net.wifi.WifiConfiguration.AP_BAND_5GHZ; +import static android.net.wifi.WifiConfiguration.AP_BAND_ANY; import android.content.Context; import android.net.wifi.WifiConfiguration; @@ -32,7 +33,8 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen private static final String TAG = "WifiTetherApBandPref"; private static final String PREF_KEY = "wifi_tether_network_ap_band"; private static final String[] BAND_VALUES = - {String.valueOf(AP_BAND_2GHZ), String.valueOf(AP_BAND_5GHZ)}; + {String.valueOf(AP_BAND_ANY), String.valueOf(AP_BAND_2GHZ), + String.valueOf(AP_BAND_5GHZ)}; private final String[] mBandEntries; private int mBandIndex; @@ -65,7 +67,7 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen } else { preference.setEntries(mBandEntries); preference.setEntryValues(BAND_VALUES); - preference.setSummary(mBandEntries[mBandIndex]); + preference.setSummary(mBandEntries[mBandIndex + 1]); preference.setValue(String.valueOf(mBandIndex)); } } @@ -78,7 +80,8 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen @Override public boolean onPreferenceChange(Preference preference, Object newValue) { mBandIndex = Integer.parseInt((String) newValue); - preference.setSummary(mBandEntries[mBandIndex]); + Log.d(TAG, "Band preference changed, updating band index to " + mBandIndex); + preference.setSummary(mBandEntries[mBandIndex + 1]); mListener.onTetherConfigUpdated(); return true; } diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java index 6832ca8e6d8..2a633d9a6c1 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java @@ -80,7 +80,7 @@ public class WifiTetherApBandPreferenceControllerTest { mController.displayPreference(mScreen); - assertThat(mListPreference.getEntries().length).isEqualTo(2); + assertThat(mListPreference.getEntries().length).isEqualTo(3); } @Test @@ -113,13 +113,18 @@ public class WifiTetherApBandPreferenceControllerTest { when(mWifiManager.is5GHzBandSupported()).thenReturn(true); mController.displayPreference(mScreen); + + // -1 is WifiConfiguration.AP_BAND_ANY, for 'Auto' option. + mController.onPreferenceChange(mListPreference, "-1"); + assertThat(mController.getBandIndex()).isEqualTo(-1); + mController.onPreferenceChange(mListPreference, "1"); assertThat(mController.getBandIndex()).isEqualTo(1); mController.onPreferenceChange(mListPreference, "0"); assertThat(mController.getBandIndex()).isEqualTo(0); - verify(mListener, times(2)).onTetherConfigUpdated(); + verify(mListener, times(3)).onTetherConfigUpdated(); } @Test