Merge "Revert switchBar if enable / disable subscription fails." into qt-dev

This commit is contained in:
Xiangyu/Malcolm Chen
2019-04-08 21:38:25 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 2 deletions

View File

@@ -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;
@@ -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();

View File

@@ -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;
@@ -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);
@@ -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);