Loading src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java +7 −3 Original line number Diff line number Diff line Loading @@ -57,8 +57,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc private boolean mShow5gLimitedDialog; boolean mIsNrEnabledFromCarrierConfig; private boolean mHas5gCapability; @VisibleForTesting Integer mCallState; private Integer mCallState; private final List<On4gLteUpdateListener> m4gLteListeners; protected static final int MODE_NONE = -1; Loading Loading @@ -199,8 +198,13 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc return new VolteQueryImsState(mContext, subId); } @VisibleForTesting boolean isCallStateIdle() { return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE); } private boolean isUserControlAllowed(final PersistableBundle carrierConfig) { return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE) return isCallStateIdle() && (carrierConfig != null) && carrierConfig.getBoolean( CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL); Loading tests/robotests/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java +25 −4 Original line number Diff line number Diff line Loading @@ -79,6 +79,9 @@ public class Enhanced4gBasePreferenceControllerTest { mCarrierConfig = new PersistableBundle(); doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL, false); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true); mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1); mQueryImsState = spy(new MockVolteQueryImsState(mContext, SUB_ID)); mQueryImsState.setEnabledByPlatform(true); Loading @@ -91,6 +94,8 @@ public class Enhanced4gBasePreferenceControllerTest { mController = spy(new Enhanced4gLtePreferenceController(mContext, "VoLTE")); mController.init(SUB_ID); doReturn(mQueryImsState).when(mController).queryImsState(anyInt()); doReturn(true).when(mController).isCallStateIdle(); doReturn(1).when(mController).getMode(); mPreference.setKey(mController.getPreferenceKey()); } Loading @@ -105,6 +110,16 @@ public class Enhanced4gBasePreferenceControllerTest { BasePreferenceController.CONDITIONALLY_UNAVAILABLE); } @Test public void getAvailabilityStatus_modeMismatch_returnUnavailable() { doReturn(2).when(mController).getMode(); mController.init(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo( BasePreferenceController.CONDITIONALLY_UNAVAILABLE); } @Test public void getAvailabilityStatus_volteDisabled_returnUnavailable() { mQueryImsState.setEnabledByPlatform(false); Loading @@ -115,17 +130,23 @@ public class Enhanced4gBasePreferenceControllerTest { @Test public void updateState_configEnabled_prefEnabled() { mQueryImsState.setIsEnabledByUser(true); mPreference.setEnabled(false); mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1); mController.mCallState = TelephonyManager.CALL_STATE_IDLE; mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isTrue(); } @Test public void updateState_callStateNotIdle_prefDisabled() { doReturn(false).when(mController).isCallStateIdle(); mPreference.setEnabled(true); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isFalse(); } @Test public void updateState_configOn_prefChecked() { mQueryImsState.setIsEnabledByUser(true); Loading Loading
src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java +7 −3 Original line number Diff line number Diff line Loading @@ -57,8 +57,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc private boolean mShow5gLimitedDialog; boolean mIsNrEnabledFromCarrierConfig; private boolean mHas5gCapability; @VisibleForTesting Integer mCallState; private Integer mCallState; private final List<On4gLteUpdateListener> m4gLteListeners; protected static final int MODE_NONE = -1; Loading Loading @@ -199,8 +198,13 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc return new VolteQueryImsState(mContext, subId); } @VisibleForTesting boolean isCallStateIdle() { return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE); } private boolean isUserControlAllowed(final PersistableBundle carrierConfig) { return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE) return isCallStateIdle() && (carrierConfig != null) && carrierConfig.getBoolean( CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL); Loading
tests/robotests/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java +25 −4 Original line number Diff line number Diff line Loading @@ -79,6 +79,9 @@ public class Enhanced4gBasePreferenceControllerTest { mCarrierConfig = new PersistableBundle(); doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL, false); mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true); mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1); mQueryImsState = spy(new MockVolteQueryImsState(mContext, SUB_ID)); mQueryImsState.setEnabledByPlatform(true); Loading @@ -91,6 +94,8 @@ public class Enhanced4gBasePreferenceControllerTest { mController = spy(new Enhanced4gLtePreferenceController(mContext, "VoLTE")); mController.init(SUB_ID); doReturn(mQueryImsState).when(mController).queryImsState(anyInt()); doReturn(true).when(mController).isCallStateIdle(); doReturn(1).when(mController).getMode(); mPreference.setKey(mController.getPreferenceKey()); } Loading @@ -105,6 +110,16 @@ public class Enhanced4gBasePreferenceControllerTest { BasePreferenceController.CONDITIONALLY_UNAVAILABLE); } @Test public void getAvailabilityStatus_modeMismatch_returnUnavailable() { doReturn(2).when(mController).getMode(); mController.init(SUB_ID); assertThat(mController.getAvailabilityStatus()).isEqualTo( BasePreferenceController.CONDITIONALLY_UNAVAILABLE); } @Test public void getAvailabilityStatus_volteDisabled_returnUnavailable() { mQueryImsState.setEnabledByPlatform(false); Loading @@ -115,17 +130,23 @@ public class Enhanced4gBasePreferenceControllerTest { @Test public void updateState_configEnabled_prefEnabled() { mQueryImsState.setIsEnabledByUser(true); mPreference.setEnabled(false); mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1); mController.mCallState = TelephonyManager.CALL_STATE_IDLE; mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isTrue(); } @Test public void updateState_callStateNotIdle_prefDisabled() { doReturn(false).when(mController).isCallStateIdle(); mPreference.setEnabled(true); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isFalse(); } @Test public void updateState_configOn_prefChecked() { mQueryImsState.setIsEnabledByUser(true); Loading