Merge "Fixed unable to enable hotspot with Security None" into udc-dev am: 52d2daf3b3 am: 89b497a051

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23442438

Change-Id: I1c9beadacb0731dfb425932a077cb7354d924cd0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-05-26 07:09:34 +00:00
committed by Automerger Merge Worker
2 changed files with 38 additions and 10 deletions

View File

@@ -84,8 +84,10 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
WifiTetherSSIDPreferenceController mSSIDPreferenceController; WifiTetherSSIDPreferenceController mSSIDPreferenceController;
@VisibleForTesting @VisibleForTesting
WifiTetherPasswordPreferenceController mPasswordPreferenceController; WifiTetherPasswordPreferenceController mPasswordPreferenceController;
private WifiTetherSecurityPreferenceController mSecurityPreferenceController; @VisibleForTesting
private WifiTetherMaximizeCompatibilityPreferenceController mMaxCompatibilityPrefController; WifiTetherSecurityPreferenceController mSecurityPreferenceController;
@VisibleForTesting
WifiTetherMaximizeCompatibilityPreferenceController mMaxCompatibilityPrefController;
@VisibleForTesting @VisibleForTesting
WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController; WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController;
@@ -276,15 +278,16 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
SoftApConfiguration buildNewConfig() { SoftApConfiguration buildNewConfig() {
SoftApConfiguration currentConfig = mWifiTetherViewModel.getSoftApConfiguration(); SoftApConfiguration currentConfig = mWifiTetherViewModel.getSoftApConfiguration();
SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder(currentConfig); SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder(currentConfig);
int securityType = (mWifiTetherViewModel.isSpeedFeatureAvailable()) configBuilder.setSsid(mSSIDPreferenceController.getSSID());
int securityType =
mWifiTetherViewModel.isSpeedFeatureAvailable()
? currentConfig.getSecurityType() ? currentConfig.getSecurityType()
: mSecurityPreferenceController.getSecurityType(); : mSecurityPreferenceController.getSecurityType();
configBuilder.setSsid(mSSIDPreferenceController.getSSID()); String passphrase =
if (securityType != SoftApConfiguration.SECURITY_TYPE_OPEN) { securityType == SoftApConfiguration.SECURITY_TYPE_OPEN
configBuilder.setPassphrase( ? null
mPasswordPreferenceController.getPasswordValidated(securityType), : mPasswordPreferenceController.getPasswordValidated(securityType);
securityType); configBuilder.setPassphrase(passphrase, securityType);
}
if (!mWifiTetherViewModel.isSpeedFeatureAvailable()) { if (!mWifiTetherViewModel.isSpeedFeatureAvailable()) {
mMaxCompatibilityPrefController.setupMaximizeCompatibility(configBuilder); mMaxCompatibilityPrefController.setupMaximizeCompatibility(configBuilder);
} }

View File

@@ -16,6 +16,7 @@
package com.android.settings.wifi.tether; package com.android.settings.wifi.tether;
import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_OPEN;
import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_WPA3_SAE; import static android.net.wifi.SoftApConfiguration.SECURITY_TYPE_WPA3_SAE;
import static android.view.View.INVISIBLE; import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
@@ -125,9 +126,13 @@ public class WifiTetherSettingsTest {
@Mock @Mock
private WifiTetherSSIDPreferenceController mSSIDPreferenceController; private WifiTetherSSIDPreferenceController mSSIDPreferenceController;
@Mock @Mock
private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
@Mock
private WifiTetherPasswordPreferenceController mPasswordPreferenceController; private WifiTetherPasswordPreferenceController mPasswordPreferenceController;
@Mock @Mock
private WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController; private WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController;
@Mock
private WifiTetherMaximizeCompatibilityPreferenceController mMaxCompatibilityPrefController;
private WifiTetherSettings mSettings; private WifiTetherSettings mSettings;
@@ -156,10 +161,13 @@ public class WifiTetherSettingsTest {
mSettings.mMainSwitchBar = mMainSwitchBar; mSettings.mMainSwitchBar = mMainSwitchBar;
mSettings.mSSIDPreferenceController = mSSIDPreferenceController; mSettings.mSSIDPreferenceController = mSSIDPreferenceController;
when(mSSIDPreferenceController.getSSID()).thenReturn(SSID); when(mSSIDPreferenceController.getSSID()).thenReturn(SSID);
mSettings.mSecurityPreferenceController = mSecurityPreferenceController;
when(mSecurityPreferenceController.getSecurityType()).thenReturn(SECURITY_TYPE_WPA3_SAE);
mSettings.mPasswordPreferenceController = mPasswordPreferenceController; mSettings.mPasswordPreferenceController = mPasswordPreferenceController;
when(mPasswordPreferenceController.getPasswordValidated(anyInt())).thenReturn(PASSWORD); when(mPasswordPreferenceController.getPasswordValidated(anyInt())).thenReturn(PASSWORD);
mSettings.mWifiTetherAutoOffPreferenceController = mWifiTetherAutoOffPreferenceController; mSettings.mWifiTetherAutoOffPreferenceController = mWifiTetherAutoOffPreferenceController;
when(mWifiTetherAutoOffPreferenceController.isEnabled()).thenReturn(true); when(mWifiTetherAutoOffPreferenceController.isEnabled()).thenReturn(true);
mSettings.mMaxCompatibilityPrefController = mMaxCompatibilityPrefController;
mSettings.mWifiTetherViewModel = mWifiTetherViewModel; mSettings.mWifiTetherViewModel = mWifiTetherViewModel;
when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SECURITY)).thenReturn(mWifiHotspotSecurity); when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SECURITY)).thenReturn(mWifiHotspotSecurity);
when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SPEED)).thenReturn(mWifiHotspotSpeed); when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SPEED)).thenReturn(mWifiHotspotSpeed);
@@ -359,6 +367,23 @@ public class WifiTetherSettingsTest {
assertThat(newConfig.getBand()).isEqualTo(currentConfig.getBand()); assertThat(newConfig.getBand()).isEqualTo(currentConfig.getBand());
} }
@Test
public void buildNewConfig_securityTypeChangeToOpen_setSecurityTypeCorrectly() {
SoftApConfiguration currentConfig = new SoftApConfiguration.Builder()
.setPassphrase(PASSWORD, SECURITY_TYPE_WPA3_SAE)
.setBand(BAND_2GHZ_5GHZ_6GHZ)
.build();
when(mWifiTetherViewModel.getSoftApConfiguration()).thenReturn(currentConfig);
when(mWifiTetherViewModel.isSpeedFeatureAvailable()).thenReturn(false);
doNothing().when(mMaxCompatibilityPrefController)
.setupMaximizeCompatibility(any(SoftApConfiguration.Builder.class));
when(mSecurityPreferenceController.getSecurityType()).thenReturn(SECURITY_TYPE_OPEN);
SoftApConfiguration newConfig = mSettings.buildNewConfig();
assertThat(newConfig.getSecurityType()).isEqualTo(SECURITY_TYPE_OPEN);
}
@Test @Test
public void onRestartingChanged_restartingFalse_setLoadingFalse() { public void onRestartingChanged_restartingFalse_setLoadingFalse() {
doNothing().when(mSettings).setLoading(anyBoolean(), anyBoolean()); doNothing().when(mSettings).setLoading(anyBoolean(), anyBoolean());