Disable Mobile settings in one condition.

If there is no active subscription and esim is unsupported, disable
this preference.

Bug: 129143739
Test: RunSettingsRoboTests
Change-Id: I5f8b0d95df8764a3a505aae5e26df42e9412c021
This commit is contained in:
Lei Yu
2019-04-15 12:28:53 -07:00
parent fd3cf32ad8
commit 8164361792
2 changed files with 14 additions and 0 deletions

View File

@@ -137,6 +137,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
startAddSimFlow();
return true;
});
} else {
mPreference.setEnabled(false);
}
} else {
// We have one or more existing subscriptions, so we want the plus button if eSIM is

View File

@@ -282,6 +282,18 @@ public class MobileNetworkSummaryControllerTest {
assertThat(captor.getValue()).isFalse();
}
@Test
public void onResume_noSubscriptionEsimDisabled_isDisabled() {
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
SubscriptionUtil.setAvailableSubscriptionsForTesting(null);
when(mEuiccManager.isEnabled()).thenReturn(false);
mController.displayPreference(mPreferenceScreen);
mController.onResume();
assertThat(mPreference.isEnabled()).isFalse();
}
@Test
public void onAirplaneModeChanged_oneSubscriptionAirplaneModeGetsTurnedOn_isDisabled() {
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);