Fix VoLTE to CS redialing of emergency calls

Issue: Dialing is requested to ImsPhone instead of GsmCdmaPhone.
So redialing is routed to IMS service.

Bug: 266551230
Test: atest TelephonyConnectionServiceTest
Change-Id: I0f32da08c60cbb06c7440b2d4b0aceffe631e382
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 4a89bd6..1754ea5 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -2282,7 +2282,7 @@
 
         if (reasonInfo != null
                 && reasonInfo.getCode() == ImsReasonInfo.CODE_SIP_ALTERNATE_EMERGENCY_CALL) {
-            onEmergencyRedial(c, c.getPhone());
+            onEmergencyRedial(c, c.getPhone().getDefaultPhone());
             return true;
         }
 
@@ -2317,7 +2317,7 @@
             if (future != null) {
                 future.thenAcceptAsync((result) -> {
                     Log.d(this, "reselectDomain-complete");
-                    onEmergencyRedialOnDomain(c, c.getPhone(), result);
+                    onEmergencyRedialOnDomain(c, c.getPhone().getDefaultPhone(), result);
                 }, mDomainSelectionMainExecutor);
                 return true;
             }
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index a1d7405..e8365b0 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -1527,9 +1527,10 @@
         int selectedDomain = DOMAIN_CS;
 
         setupForDialForDomainSelection(mPhone0, selectedDomain, true);
+        doReturn(mPhone0).when(mImsPhone).getDefaultPhone();
 
         TestTelephonyConnection c = setupForReDialForDomainSelection(
-                mPhone0, selectedDomain, preciseDisconnectCause, disconnectCause, false);
+                mImsPhone, selectedDomain, preciseDisconnectCause, disconnectCause, false);
         c.setEmergencyServiceCategory(eccCategory);
         c.setAddress(TEST_ADDRESS, TelecomManager.PRESENTATION_ALLOWED);
 
@@ -1566,9 +1567,10 @@
         int selectedDomain = DOMAIN_PS;
 
         setupForDialForDomainSelection(mPhone0, selectedDomain, true);
+        doReturn(mPhone0).when(mImsPhone).getDefaultPhone();
 
         TestTelephonyConnection c = setupForReDialForDomainSelection(
-                mPhone0, selectedDomain, preciseDisconnectCause, disconnectCause, false);
+                mImsPhone, selectedDomain, preciseDisconnectCause, disconnectCause, false);
         c.setEmergencyServiceCategory(eccCategory);
         c.setAddress(TEST_ADDRESS, TelecomManager.PRESENTATION_ALLOWED);