Loading src/com/android/settings/network/telephony/RoamingPreferenceController.java +10 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,16 @@ public class RoamingPreferenceController extends TelephonyTogglePreferenceContro mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); } @Override public int getAvailabilityStatus() { final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId); if (carrierConfig != null && carrierConfig.getBoolean( CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)) { return CONDITIONALLY_UNAVAILABLE; } return AVAILABLE; } @Override public void onStart() { if (mListener == null) { Loading tests/unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java +29 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.settings.network.telephony; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyBoolean; Loading Loading @@ -92,7 +95,7 @@ public class RoamingPreferenceControllerTest { @Test public void getAvailabilityStatus_validSubId_returnAvailable() { assertThat(mController.getAvailabilityStatus()).isEqualTo( BasePreferenceController.AVAILABLE); AVAILABLE); } @Test Loading Loading @@ -168,4 +171,29 @@ public class RoamingPreferenceControllerTest { verify(mPreference, never()).setEnabled(anyBoolean()); } @Test public void getAvailabilityStatus_carrierConfigIsNull_shouldReturnAvailable() { doReturn(null).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_forceHomeNetworkIsFalse_shouldReturnAvailable() { final PersistableBundle bundle = new PersistableBundle(); bundle.putBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL, false); doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_forceHomeNetworkIsTrue_shouldReturnConditionallyAvailable() { final PersistableBundle bundle = new PersistableBundle(); bundle.putBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL, false); doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } } Loading
src/com/android/settings/network/telephony/RoamingPreferenceController.java +10 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,16 @@ public class RoamingPreferenceController extends TelephonyTogglePreferenceContro mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); } @Override public int getAvailabilityStatus() { final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId); if (carrierConfig != null && carrierConfig.getBoolean( CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)) { return CONDITIONALLY_UNAVAILABLE; } return AVAILABLE; } @Override public void onStart() { if (mListener == null) { Loading
tests/unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java +29 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.settings.network.telephony; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyBoolean; Loading Loading @@ -92,7 +95,7 @@ public class RoamingPreferenceControllerTest { @Test public void getAvailabilityStatus_validSubId_returnAvailable() { assertThat(mController.getAvailabilityStatus()).isEqualTo( BasePreferenceController.AVAILABLE); AVAILABLE); } @Test Loading Loading @@ -168,4 +171,29 @@ public class RoamingPreferenceControllerTest { verify(mPreference, never()).setEnabled(anyBoolean()); } @Test public void getAvailabilityStatus_carrierConfigIsNull_shouldReturnAvailable() { doReturn(null).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_forceHomeNetworkIsFalse_shouldReturnAvailable() { final PersistableBundle bundle = new PersistableBundle(); bundle.putBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL, false); doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); } @Test public void getAvailabilityStatus_forceHomeNetworkIsTrue_shouldReturnConditionallyAvailable() { final PersistableBundle bundle = new PersistableBundle(); bundle.putBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL, false); doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE); } }