Move reselect domain code block to a method
Bug: 353404282
Flag: EXEMPT refactor
Test: atest TeleServiceTests:NormalCallDomainSelectorTest
Change-Id: I7589f0965a312d62f76c89f81f4cbf2f82daaeb6
diff --git a/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java b/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
index bf6c647..906aa28 100644
--- a/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
+++ b/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
@@ -327,6 +327,49 @@
}
}
+ private void handleReselectDomain(ImsReasonInfo imsReasonInfo) {
+ mReselectDomain = false;
+
+ // Out of service
+ if (isOutOfService()) {
+ loge("Cannot place call in current ServiceState: " + mServiceState.getState());
+ notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
+ return;
+ }
+
+ // IMS -> CS
+ if (imsReasonInfo != null) {
+ logd("PsDisconnectCause:" + imsReasonInfo.getCode());
+ if (imsReasonInfo.getCode() == ImsReasonInfo.CODE_LOCAL_CALL_CS_RETRY_REQUIRED) {
+ logd("Redialing over CS");
+ notifyCsSelected();
+ } else {
+ // Not a valid redial
+ logd("Redialing cancelled.");
+ notifySelectionTerminated(DisconnectCause.NOT_VALID);
+ }
+ return;
+ }
+
+ // CS -> IMS
+ int csDisconnectCause = mSelectionAttributes.getCsDisconnectCause();
+ if (csDisconnectCause == CallFailCause.EMC_REDIAL_ON_IMS
+ || csDisconnectCause == CallFailCause.EMC_REDIAL_ON_VOWIFI) {
+ // Check IMS registration state.
+ if (mImsStateTracker.isImsRegistered()) {
+ logd("IMS is registered");
+ notifyPsSelected();
+ return;
+ }
+
+ logd("IMS is NOT registered");
+ }
+
+ // Not a valid redial
+ logd("Redialing cancelled.");
+ notifySelectionTerminated(DisconnectCause.NOT_VALID);
+ }
+
private boolean isTtySupportedByIms() {
CarrierConfigManager configManager = mContext.getSystemService(CarrierConfigManager.class);
@@ -363,50 +406,8 @@
}
// Check if this is a re-dial scenario
- ImsReasonInfo imsReasonInfo = mSelectionAttributes.getPsDisconnectCause();
if (mReselectDomain) {
- mReselectDomain = false;
-
- // Out of service
- if (isOutOfService()) {
- loge("Cannot place call in current ServiceState: " + mServiceState.getState());
- notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
-
- return;
- }
-
- // IMS -> CS
- if (imsReasonInfo != null) {
- logd("PsDisconnectCause:" + imsReasonInfo.getCode());
- if (imsReasonInfo.getCode() == ImsReasonInfo.CODE_LOCAL_CALL_CS_RETRY_REQUIRED) {
- logd("Redialing over CS");
- notifyCsSelected();
- } else {
- // Not a valid redial
- logd("Redialing cancelled.");
- notifySelectionTerminated(DisconnectCause.NOT_VALID);
- }
- return;
- }
-
- // CS -> IMS
- int csDisconnectCause = mSelectionAttributes.getCsDisconnectCause();
- switch (csDisconnectCause) {
- case CallFailCause.EMC_REDIAL_ON_IMS:
- case CallFailCause.EMC_REDIAL_ON_VOWIFI:
- // Check IMS registration state.
- if (mImsStateTracker.isImsRegistered()) {
- logd("IMS is registered");
- notifyPsSelected();
- return;
- } else {
- logd("IMS is NOT registered");
- }
- }
-
- // Not a valid redial
- logd("Redialing cancelled.");
- notifySelectionTerminated(DisconnectCause.NOT_VALID);
+ handleReselectDomain(mSelectionAttributes.getPsDisconnectCause());
return;
}