Merge "Add mock satellite toggle" into 24D1-dev
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index e539bac..0a5122f 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -1196,6 +1196,11 @@
&& phone.getHalVersion(HAL_SERVICE_VOICE)
.less(RIL.RADIO_HAL_VERSION_1_4);
if (mDomainSelectionResolver.isDomainSelectionSupported()) {
+ if (resultConnection != null
+ && resultConnection.getState() == Connection.STATE_DISCONNECTED) {
+ // Dialing is discarded.
+ return true;
+ }
if (isEmergencyNumber && phone == phoneForEmergency) {
// Since the domain selection service is enabled,
// dilaing normal routing emergency number only reaches here.
@@ -1399,6 +1404,11 @@
Log.i(this, "Call disconnected before the outgoing call was placed. Skipping call "
+ "placement.");
if (isEmergencyNumber) {
+ if (mDomainSelectionResolver.isDomainSelectionSupported()
+ && mDeviceState.isAirplaneModeOn(this)) {
+ mIsEmergencyCallPending = false;
+ return;
+ }
// If call is already canceled by the user, notify modem to exit emergency call
// mode by sending radio on with forEmergencyCall=false.
for (Phone curPhone : mPhoneFactoryProxy.getPhones()) {
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 2b805c3..435601f 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -2767,6 +2767,23 @@
}
@Test
+ public void testDomainSelectionNormalRoutingEmergencyNumber_exitingApm_DiscardDialing()
+ throws Exception {
+ when(mDeviceState.isAirplaneModeOn(any())).thenReturn(true);
+ Phone testPhone = setupConnectionServiceInApmForDomainSelection(true);
+
+ ArgumentCaptor<RadioOnStateListener.Callback> callback =
+ ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
+ verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
+ eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+
+ mConnection.setDisconnected(null);
+
+ assertTrue(callback.getValue()
+ .isOkToCall(testPhone, ServiceState.STATE_POWER_OFF, false));
+ }
+
+ @Test
public void testDomainSelectionNormalToEmergencyCs() throws Exception {
setupForCallTest();