[Wi-Fi] Support multi-SIM for SIM dependent EAP methods
Before this change, users are not able to choose SIM card for SIM dependent EAP methods when a device supports multi-SIM. This change support to choose a SIM when adding an EAP Wi-Fi network. And this change support to show the related SIM information on Wi-Fi detail screen. Bug: 142792009 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.WifiConfigControllerTest make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.WifiConfigController2Test make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.details2.WifiDetailPreferenceController2Test Manually add an EAP Wi-Fi network of EAP-SIM type, observe the value in Wi-Fi detail screen. Change-Id: I2910931166dc6541897663857c46abcc1b3115fa
This commit is contained in:
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Mockito.anyString;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@@ -32,6 +33,9 @@ import android.net.wifi.WifiEnterpriseConfig.Phase2;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.ServiceSpecificException;
|
||||
import android.security.KeyStore;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
@@ -56,6 +60,9 @@ import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowInputMethodManager;
|
||||
import org.robolectric.shadows.ShadowSubscriptionManager;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = ShadowConnectivityManager.class)
|
||||
@@ -71,6 +78,7 @@ public class WifiConfigControllerTest {
|
||||
private KeyStore mKeyStore;
|
||||
private View mView;
|
||||
private Spinner mHiddenSettingsSpinner;
|
||||
private ShadowSubscriptionManager mShadowSubscriptionManager;
|
||||
|
||||
public WifiConfigController mController;
|
||||
private static final String HEX_PSK = "01234567012345670123456701234567012345670123456701234567"
|
||||
@@ -95,6 +103,7 @@ public class WifiConfigControllerTest {
|
||||
final Spinner ipSettingsSpinner = mView.findViewById(R.id.ip_settings);
|
||||
mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
|
||||
ipSettingsSpinner.setSelection(DHCP);
|
||||
mShadowSubscriptionManager = shadowOf(mContext.getSystemService(SubscriptionManager.class));
|
||||
|
||||
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
|
||||
WifiConfigUiBase.MODE_CONNECT);
|
||||
@@ -575,4 +584,41 @@ public class WifiConfigControllerTest {
|
||||
|
||||
assertThat(advButton.getVisibility()).isEqualTo(View.GONE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loadSims_noSim_simSpinnerDefaultNoSim() {
|
||||
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
|
||||
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
|
||||
WifiConfigUiBase.MODE_CONNECT);
|
||||
final Spinner eapMethodSpinner = mock(Spinner.class);
|
||||
when(eapMethodSpinner.getSelectedItemPosition()).thenReturn(
|
||||
WifiConfigController2.WIFI_EAP_METHOD_SIM);
|
||||
mController.mEapMethodSpinner = eapMethodSpinner;
|
||||
|
||||
mController.loadSims();
|
||||
|
||||
final WifiConfiguration wifiConfiguration = mController.getConfig();
|
||||
assertThat(wifiConfiguration.carrierId).isEqualTo(TelephonyManager.UNKNOWN_CARRIER_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loadSims_oneSim_simSpinnerDefaultSubscription() {
|
||||
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
|
||||
final SubscriptionInfo subscriptionInfo = mock(SubscriptionInfo.class);
|
||||
final int carrierId = 6;
|
||||
when(subscriptionInfo.getCarrierId()).thenReturn(carrierId);
|
||||
when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
|
||||
mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));
|
||||
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
|
||||
WifiConfigUiBase.MODE_CONNECT);
|
||||
final Spinner eapMethodSpinner = mock(Spinner.class);
|
||||
when(eapMethodSpinner.getSelectedItemPosition()).thenReturn(
|
||||
WifiConfigController2.WIFI_EAP_METHOD_SIM);
|
||||
mController.mEapMethodSpinner = eapMethodSpinner;
|
||||
|
||||
mController.loadSims();
|
||||
|
||||
final WifiConfiguration wifiConfiguration = mController.getConfig();
|
||||
assertThat(wifiConfiguration.carrierId).isEqualTo(carrierId);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user