Merge "[Settings] Add voice call status and VoLTE mode detection into VoLTE UI test case" am: 3c934b2859
am: 80a69cb5e0
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1510917 Change-Id: Iaa5acc6cfdd34acf82c0b20b6016f30963c7b737
This commit is contained in:
@@ -57,8 +57,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
private boolean mShow5gLimitedDialog;
|
private boolean mShow5gLimitedDialog;
|
||||||
boolean mIsNrEnabledFromCarrierConfig;
|
boolean mIsNrEnabledFromCarrierConfig;
|
||||||
private boolean mHas5gCapability;
|
private boolean mHas5gCapability;
|
||||||
@VisibleForTesting
|
private Integer mCallState;
|
||||||
Integer mCallState;
|
|
||||||
private final List<On4gLteUpdateListener> m4gLteListeners;
|
private final List<On4gLteUpdateListener> m4gLteListeners;
|
||||||
|
|
||||||
protected static final int MODE_NONE = -1;
|
protected static final int MODE_NONE = -1;
|
||||||
@@ -199,8 +198,13 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
|
|||||||
return new VolteQueryImsState(mContext, subId);
|
return new VolteQueryImsState(mContext, subId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean isCallStateIdle() {
|
||||||
|
return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE);
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isUserControlAllowed(final PersistableBundle carrierConfig) {
|
private boolean isUserControlAllowed(final PersistableBundle carrierConfig) {
|
||||||
return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE)
|
return isCallStateIdle()
|
||||||
&& (carrierConfig != null)
|
&& (carrierConfig != null)
|
||||||
&& carrierConfig.getBoolean(
|
&& carrierConfig.getBoolean(
|
||||||
CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
|
CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
|
||||||
|
@@ -79,6 +79,9 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
|
|
||||||
mCarrierConfig = new PersistableBundle();
|
mCarrierConfig = new PersistableBundle();
|
||||||
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
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 = spy(new MockVolteQueryImsState(mContext, SUB_ID));
|
||||||
mQueryImsState.setEnabledByPlatform(true);
|
mQueryImsState.setEnabledByPlatform(true);
|
||||||
@@ -91,6 +94,8 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
mController = spy(new Enhanced4gLtePreferenceController(mContext, "VoLTE"));
|
mController = spy(new Enhanced4gLtePreferenceController(mContext, "VoLTE"));
|
||||||
mController.init(SUB_ID);
|
mController.init(SUB_ID);
|
||||||
doReturn(mQueryImsState).when(mController).queryImsState(anyInt());
|
doReturn(mQueryImsState).when(mController).queryImsState(anyInt());
|
||||||
|
doReturn(true).when(mController).isCallStateIdle();
|
||||||
|
doReturn(1).when(mController).getMode();
|
||||||
mPreference.setKey(mController.getPreferenceKey());
|
mPreference.setKey(mController.getPreferenceKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,6 +110,16 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
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
|
@Test
|
||||||
public void getAvailabilityStatus_volteDisabled_returnUnavailable() {
|
public void getAvailabilityStatus_volteDisabled_returnUnavailable() {
|
||||||
mQueryImsState.setEnabledByPlatform(false);
|
mQueryImsState.setEnabledByPlatform(false);
|
||||||
@@ -115,17 +130,23 @@ public class Enhanced4gBasePreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState_configEnabled_prefEnabled() {
|
public void updateState_configEnabled_prefEnabled() {
|
||||||
mQueryImsState.setIsEnabledByUser(true);
|
|
||||||
mPreference.setEnabled(false);
|
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);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
assertThat(mPreference.isEnabled()).isTrue();
|
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
|
@Test
|
||||||
public void updateState_configOn_prefChecked() {
|
public void updateState_configOn_prefChecked() {
|
||||||
mQueryImsState.setIsEnabledByUser(true);
|
mQueryImsState.setIsEnabledByUser(true);
|
||||||
|
Reference in New Issue
Block a user