Loading res/values/arrays.xml +3 −13 Original line number Diff line number Diff line Loading @@ -276,24 +276,14 @@ <item>Require all non-trusted certificate statuses</item> </string-array> <!-- Wi-Fi AP band settings. Either Auto, 2.4GHz or 5GHz. --> <!-- Wi-Fi AP band settings. Either 2.4GHz or 5GHz prefer. --> <!-- Note that adding/removing/moving the items will need wifi settings code change. --> <string-array translatable="false" name="wifi_ap_band_config_full"> <item>1</item> <item>2</item> </string-array> <string-array translatable="false" name="wifi_ap_band_summary_full"> <item>@string/wifi_ap_choose_2G</item> <item>@string/wifi_ap_choose_5G</item> </string-array> <string-array translatable="false" name="wifi_ap_band_dual_mode"> <string-array translatable="false" name="wifi_ap_band"> <item>1</item> <item>3</item> </string-array> <string-array translatable="false" name="wifi_ap_band_dual_mode_summary"> <string-array translatable="false" name="wifi_ap_band_summary"> <item>@string/wifi_ap_choose_2G</item> <item>@string/wifi_ap_prefer_5G</item> </string-array> Loading src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java +7 −18 Original line number Diff line number Diff line Loading @@ -39,12 +39,10 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen private String[] mBandEntries; private String[] mBandSummaries; private int mBandIndex; private boolean isDualMode; public WifiTetherApBandPreferenceController(Context context, OnTetherConfigUpdateListener listener) { super(context, listener); isDualMode = mWifiManager.isStaApConcurrencySupported(); updatePreferenceEntries(); } Loading Loading @@ -106,16 +104,12 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen private int validateSelection(int band) { // unsupported states: // 1: no dual mode means we can't have multiband - default to 5GHZ // 1: BAND_5GHZ only - include 2GHZ since some of countries doesn't support 5G hotspot // 2: no 5 GHZ support means we can't have BAND_5GHZ - default to 2GHZ // 3: With Dual mode support we can't have BAND_5GHZ only - include 2GHZ if (!isDualMode && ((band & SoftApConfiguration.BAND_5GHZ) != 0) && ((band & SoftApConfiguration.BAND_2GHZ) != 0)) { return SoftApConfiguration.BAND_5GHZ; } else if (!is5GhzBandSupported() && SoftApConfiguration.BAND_5GHZ == band) { if (SoftApConfiguration.BAND_5GHZ == band) { if (!is5GhzBandSupported()) { return SoftApConfiguration.BAND_2GHZ; } else if (isDualMode && SoftApConfiguration.BAND_5GHZ == band) { } return SoftApConfiguration.BAND_5GHZ | SoftApConfiguration.BAND_2GHZ; } Loading @@ -125,13 +119,8 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen @VisibleForTesting void updatePreferenceEntries() { Resources res = mContext.getResources(); int entriesRes = R.array.wifi_ap_band_config_full; int summariesRes = R.array.wifi_ap_band_summary_full; // change the list options if this is a dual mode device if (isDualMode) { entriesRes = R.array.wifi_ap_band_dual_mode; summariesRes = R.array.wifi_ap_band_dual_mode_summary; } int entriesRes = R.array.wifi_ap_band; int summariesRes = R.array.wifi_ap_band_summary; mBandEntries = res.getStringArray(entriesRes); mBandSummaries = res.getStringArray(summariesRes); } Loading tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java +2 −32 Original line number Diff line number Diff line Loading @@ -81,7 +81,6 @@ public class WifiTetherApBandPreferenceControllerTest { when(mScreen.findPreference(anyString())).thenReturn(mPreference); when(mWifiManager.getSoftApConfiguration()).thenReturn( new SoftApConfiguration.Builder().build()); when(mWifiManager.isStaApConcurrencySupported()).thenReturn(false); mController = new WifiTetherApBandPreferenceController(mContext, mListener); } Loading @@ -90,9 +89,8 @@ public class WifiTetherApBandPreferenceControllerTest { public void display_5GhzSupported_shouldDisplayFullList() { when(mWifiManager.getCountryCode()).thenReturn("US"); when(mWifiManager.is5GHzBandSupported()).thenReturn(true); when(mWifiManager.isStaApConcurrencySupported()).thenReturn(true); // Create a new instance to pick the proper value of isDualModeSupported() // Create a new instance mController = new WifiTetherApBandPreferenceController(mContext, mListener); mController.displayPreference(mScreen); Loading Loading @@ -126,37 +124,9 @@ public class WifiTetherApBandPreferenceControllerTest { } @Test public void changePreference_noDualModeWith5G_shouldUpdateValue() { when(mWifiManager.getCountryCode()).thenReturn("US"); when(mWifiManager.is5GHzBandSupported()).thenReturn(true); mController.displayPreference(mScreen); // 'Auto' option should be prevented from being set since // it is invalid for this configuration mController.onPreferenceChange(mPreference, VAL_2_5_GHZ_STR); assertThat(mController.getBandIndex()).isEqualTo(VAL_5GHZ_INT); assertThat(mPreference.getSummary()).isEqualTo(FIVE_GHZ_STRING); verify(mListener, times(1)).onTetherConfigUpdated(mController); // set to 5 Ghz mController.onPreferenceChange(mPreference, VAL_5GHZ_STR); assertThat(mController.getBandIndex()).isEqualTo(VAL_5GHZ_INT); assertThat(mPreference.getSummary()).isEqualTo(FIVE_GHZ_STRING); verify(mListener, times(2)).onTetherConfigUpdated(mController); // set to 2 Ghz mController.onPreferenceChange(mPreference, VAL_2GHZ_STR); assertThat(mController.getBandIndex()).isEqualTo(VAL_2GHZ_INT); assertThat(mPreference.getSummary()).isEqualTo(TWO_GHZ_STRING); verify(mListener, times(3)).onTetherConfigUpdated(mController); } @Test public void changePreference_dualModeWith5G_shouldUpdateValue() { public void changePreference_With5G_shouldUpdateValue() { when(mWifiManager.getCountryCode()).thenReturn("US"); when(mWifiManager.is5GHzBandSupported()).thenReturn(true); when(mWifiManager.isStaApConcurrencySupported()).thenReturn(true); // Create a new instance to pick the proper value of isDualModeSupported() mController = new WifiTetherApBandPreferenceController(mContext, mListener); Loading Loading
res/values/arrays.xml +3 −13 Original line number Diff line number Diff line Loading @@ -276,24 +276,14 @@ <item>Require all non-trusted certificate statuses</item> </string-array> <!-- Wi-Fi AP band settings. Either Auto, 2.4GHz or 5GHz. --> <!-- Wi-Fi AP band settings. Either 2.4GHz or 5GHz prefer. --> <!-- Note that adding/removing/moving the items will need wifi settings code change. --> <string-array translatable="false" name="wifi_ap_band_config_full"> <item>1</item> <item>2</item> </string-array> <string-array translatable="false" name="wifi_ap_band_summary_full"> <item>@string/wifi_ap_choose_2G</item> <item>@string/wifi_ap_choose_5G</item> </string-array> <string-array translatable="false" name="wifi_ap_band_dual_mode"> <string-array translatable="false" name="wifi_ap_band"> <item>1</item> <item>3</item> </string-array> <string-array translatable="false" name="wifi_ap_band_dual_mode_summary"> <string-array translatable="false" name="wifi_ap_band_summary"> <item>@string/wifi_ap_choose_2G</item> <item>@string/wifi_ap_prefer_5G</item> </string-array> Loading
src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java +7 −18 Original line number Diff line number Diff line Loading @@ -39,12 +39,10 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen private String[] mBandEntries; private String[] mBandSummaries; private int mBandIndex; private boolean isDualMode; public WifiTetherApBandPreferenceController(Context context, OnTetherConfigUpdateListener listener) { super(context, listener); isDualMode = mWifiManager.isStaApConcurrencySupported(); updatePreferenceEntries(); } Loading Loading @@ -106,16 +104,12 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen private int validateSelection(int band) { // unsupported states: // 1: no dual mode means we can't have multiband - default to 5GHZ // 1: BAND_5GHZ only - include 2GHZ since some of countries doesn't support 5G hotspot // 2: no 5 GHZ support means we can't have BAND_5GHZ - default to 2GHZ // 3: With Dual mode support we can't have BAND_5GHZ only - include 2GHZ if (!isDualMode && ((band & SoftApConfiguration.BAND_5GHZ) != 0) && ((band & SoftApConfiguration.BAND_2GHZ) != 0)) { return SoftApConfiguration.BAND_5GHZ; } else if (!is5GhzBandSupported() && SoftApConfiguration.BAND_5GHZ == band) { if (SoftApConfiguration.BAND_5GHZ == band) { if (!is5GhzBandSupported()) { return SoftApConfiguration.BAND_2GHZ; } else if (isDualMode && SoftApConfiguration.BAND_5GHZ == band) { } return SoftApConfiguration.BAND_5GHZ | SoftApConfiguration.BAND_2GHZ; } Loading @@ -125,13 +119,8 @@ public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferen @VisibleForTesting void updatePreferenceEntries() { Resources res = mContext.getResources(); int entriesRes = R.array.wifi_ap_band_config_full; int summariesRes = R.array.wifi_ap_band_summary_full; // change the list options if this is a dual mode device if (isDualMode) { entriesRes = R.array.wifi_ap_band_dual_mode; summariesRes = R.array.wifi_ap_band_dual_mode_summary; } int entriesRes = R.array.wifi_ap_band; int summariesRes = R.array.wifi_ap_band_summary; mBandEntries = res.getStringArray(entriesRes); mBandSummaries = res.getStringArray(summariesRes); } Loading
tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java +2 −32 Original line number Diff line number Diff line Loading @@ -81,7 +81,6 @@ public class WifiTetherApBandPreferenceControllerTest { when(mScreen.findPreference(anyString())).thenReturn(mPreference); when(mWifiManager.getSoftApConfiguration()).thenReturn( new SoftApConfiguration.Builder().build()); when(mWifiManager.isStaApConcurrencySupported()).thenReturn(false); mController = new WifiTetherApBandPreferenceController(mContext, mListener); } Loading @@ -90,9 +89,8 @@ public class WifiTetherApBandPreferenceControllerTest { public void display_5GhzSupported_shouldDisplayFullList() { when(mWifiManager.getCountryCode()).thenReturn("US"); when(mWifiManager.is5GHzBandSupported()).thenReturn(true); when(mWifiManager.isStaApConcurrencySupported()).thenReturn(true); // Create a new instance to pick the proper value of isDualModeSupported() // Create a new instance mController = new WifiTetherApBandPreferenceController(mContext, mListener); mController.displayPreference(mScreen); Loading Loading @@ -126,37 +124,9 @@ public class WifiTetherApBandPreferenceControllerTest { } @Test public void changePreference_noDualModeWith5G_shouldUpdateValue() { when(mWifiManager.getCountryCode()).thenReturn("US"); when(mWifiManager.is5GHzBandSupported()).thenReturn(true); mController.displayPreference(mScreen); // 'Auto' option should be prevented from being set since // it is invalid for this configuration mController.onPreferenceChange(mPreference, VAL_2_5_GHZ_STR); assertThat(mController.getBandIndex()).isEqualTo(VAL_5GHZ_INT); assertThat(mPreference.getSummary()).isEqualTo(FIVE_GHZ_STRING); verify(mListener, times(1)).onTetherConfigUpdated(mController); // set to 5 Ghz mController.onPreferenceChange(mPreference, VAL_5GHZ_STR); assertThat(mController.getBandIndex()).isEqualTo(VAL_5GHZ_INT); assertThat(mPreference.getSummary()).isEqualTo(FIVE_GHZ_STRING); verify(mListener, times(2)).onTetherConfigUpdated(mController); // set to 2 Ghz mController.onPreferenceChange(mPreference, VAL_2GHZ_STR); assertThat(mController.getBandIndex()).isEqualTo(VAL_2GHZ_INT); assertThat(mPreference.getSummary()).isEqualTo(TWO_GHZ_STRING); verify(mListener, times(3)).onTetherConfigUpdated(mController); } @Test public void changePreference_dualModeWith5G_shouldUpdateValue() { public void changePreference_With5G_shouldUpdateValue() { when(mWifiManager.getCountryCode()).thenReturn("US"); when(mWifiManager.is5GHzBandSupported()).thenReturn(true); when(mWifiManager.isStaApConcurrencySupported()).thenReturn(true); // Create a new instance to pick the proper value of isDualModeSupported() mController = new WifiTetherApBandPreferenceController(mContext, mListener); Loading