Loading src/com/android/settings/network/telephony/MobileNetworkSwitchController.java +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; import android.content.Context; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.util.Log; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; Loading Loading @@ -80,8 +81,9 @@ public class MobileNetworkSwitchController extends BasePreferenceController impl R.string.mobile_network_use_sim_off); mSwitchBar.addOnSwitchChangeListener((switchView, isChecked) -> { if (mSubscriptionManager.isSubscriptionEnabled(mSubId) != isChecked) { mSubscriptionManager.setSubscriptionEnabled(mSubId, isChecked); if (mSubscriptionManager.isSubscriptionEnabled(mSubId) != isChecked && (!mSubscriptionManager.setSubscriptionEnabled(mSubId, isChecked))) { mSwitchBar.setChecked(!isChecked); } }); update(); Loading tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSwitchControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.network.telephony; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; Loading Loading @@ -71,6 +72,8 @@ public class MobileNetworkSwitchControllerTest { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mSubscriptionManager.setSubscriptionEnabled(eq(mSubId), anyBoolean())) .thenReturn(true); mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); Loading Loading @@ -128,6 +131,19 @@ public class MobileNetworkSwitchControllerTest { verify(mSubscriptionManager).setSubscriptionEnabled(eq(mSubId), eq(false)); } @Test public void switchChangeListener_fromEnabledToDisabled_setSubscriptionEnabledFailed() { when(mSubscriptionManager.setSubscriptionEnabled(eq(mSubId), anyBoolean())) .thenReturn(false); when(mSubscriptionManager.isSubscriptionEnabled(mSubId)).thenReturn(true); mController.displayPreference(mScreen); assertThat(mSwitchBar.isShowing()).isTrue(); assertThat(mSwitchBar.isChecked()).isTrue(); mSwitchBar.setChecked(false); verify(mSubscriptionManager).setSubscriptionEnabled(eq(mSubId), eq(false)); assertThat(mSwitchBar.isChecked()).isTrue(); } @Test public void switchChangeListener_fromDisabledToEnabled_setSubscriptionEnabledCalledCorrectly() { when(mSubscriptionManager.isSubscriptionEnabled(mSubId)).thenReturn(false); Loading Loading
src/com/android/settings/network/telephony/MobileNetworkSwitchController.java +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; import android.content.Context; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.util.Log; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; Loading Loading @@ -80,8 +81,9 @@ public class MobileNetworkSwitchController extends BasePreferenceController impl R.string.mobile_network_use_sim_off); mSwitchBar.addOnSwitchChangeListener((switchView, isChecked) -> { if (mSubscriptionManager.isSubscriptionEnabled(mSubId) != isChecked) { mSubscriptionManager.setSubscriptionEnabled(mSubId, isChecked); if (mSubscriptionManager.isSubscriptionEnabled(mSubId) != isChecked && (!mSubscriptionManager.setSubscriptionEnabled(mSubId, isChecked))) { mSwitchBar.setChecked(!isChecked); } }); update(); Loading
tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSwitchControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.network.telephony; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; Loading Loading @@ -71,6 +72,8 @@ public class MobileNetworkSwitchControllerTest { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mSubscriptionManager.setSubscriptionEnabled(eq(mSubId), anyBoolean())) .thenReturn(true); mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); Loading Loading @@ -128,6 +131,19 @@ public class MobileNetworkSwitchControllerTest { verify(mSubscriptionManager).setSubscriptionEnabled(eq(mSubId), eq(false)); } @Test public void switchChangeListener_fromEnabledToDisabled_setSubscriptionEnabledFailed() { when(mSubscriptionManager.setSubscriptionEnabled(eq(mSubId), anyBoolean())) .thenReturn(false); when(mSubscriptionManager.isSubscriptionEnabled(mSubId)).thenReturn(true); mController.displayPreference(mScreen); assertThat(mSwitchBar.isShowing()).isTrue(); assertThat(mSwitchBar.isChecked()).isTrue(); mSwitchBar.setChecked(false); verify(mSubscriptionManager).setSubscriptionEnabled(eq(mSubId), eq(false)); assertThat(mSwitchBar.isChecked()).isTrue(); } @Test public void switchChangeListener_fromDisabledToEnabled_setSubscriptionEnabledCalledCorrectly() { when(mSubscriptionManager.isSubscriptionEnabled(mSubId)).thenReturn(false); Loading