Loading src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java +1 −2 Original line number Diff line number Diff line Loading @@ -1738,8 +1738,7 @@ public class EmergencyStateTracker { return phone.getServiceStateTracker().isRadioOn() && !satelliteController.isSatelliteEnabledOrBeingEnabled(); } }, !isTestEmergencyNumber, phone, isTestEmergencyNumber, waitForInServiceTimeout, /* forNormalRoutingEmergencyCall */ false); }, !isTestEmergencyNumber, phone, isTestEmergencyNumber, waitForInServiceTimeout); } else { switchDdsAndSetEmergencyMode(phone, emergencyType); } Loading src/java/com/android/internal/telephony/emergency/RadioOnHelper.java +6 −15 Original line number Diff line number Diff line Loading @@ -85,7 +85,7 @@ public class RadioOnHelper implements RadioOnStateListener.Callback { */ public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback, boolean forEmergencyCall, Phone phoneForEmergencyCall, boolean isTestEmergencyNumber, int emergencyTimeoutIntervalMillis, boolean forNormalRoutingEmergencyCall) { int emergencyTimeoutIntervalMillis) { setupListeners(); mCallback = callback; mInProgressListeners.clear(); Loading @@ -102,8 +102,7 @@ public class RadioOnHelper implements RadioOnStateListener.Callback { mListeners.get(i).waitForRadioOn(phone, this, forEmergencyCall, forEmergencyCall && phone == phoneForEmergencyCall, timeoutCallbackInterval); } powerOnRadio(forEmergencyCall, phoneForEmergencyCall, isTestEmergencyNumber, forNormalRoutingEmergencyCall); powerOnRadio(forEmergencyCall, phoneForEmergencyCall, isTestEmergencyNumber); if (SatelliteController.getInstance().isSatelliteEnabledOrBeingEnabled()) { powerOffSatellite(); } Loading @@ -114,25 +113,17 @@ public class RadioOnHelper implements RadioOnStateListener.Callback { * get an onServiceStateChanged() callback when the radio successfully comes up. */ private void powerOnRadio(boolean forEmergencyCall, Phone phoneForEmergencyCall, boolean isTestEmergencyNumber, boolean forNormalRoutingEmergencyCall) { boolean isTestEmergencyNumber) { // Always try to turn on the radio here independent of APM setting - if we got here in the // first place, the radio is off independent of APM setting. for (Phone phone : PhoneFactory.getPhones()) { Rlog.d(TAG, "powerOnRadio, enabling Radio"); if (isTestEmergencyNumber) { phone.setRadioPowerOnForTestEmergencyCall( (phone == phoneForEmergencyCall) && !forNormalRoutingEmergencyCall); phone.setRadioPowerOnForTestEmergencyCall(phone == phoneForEmergencyCall); } else { if (forNormalRoutingEmergencyCall) { if (phone.getServiceStateTracker() != null) { // Clear all radio off reasons to ensure that the radio is turned on for // normal routing emergency call. phone.getServiceStateTracker().clearAllRadioOffReasons(); } } phone.setRadioPower(true, forEmergencyCall && !forNormalRoutingEmergencyCall, (phone == phoneForEmergencyCall) && !forNormalRoutingEmergencyCall, false); phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall, false); } } Loading tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // isOkToCall() should return true when IN_SERVICE state assertFalse(callback.getValue() .isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false)); Loading Loading @@ -243,7 +243,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // onTimeout should return true when radion on assertFalse(callback.getValue() .isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false)); Loading Loading @@ -291,7 +291,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // Hangup the call emergencyStateTracker.endCall(mTestConnection1); Loading Loading @@ -327,7 +327,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // Verify future completes with DisconnectCause.POWER_OFF if radio not ready CompletableFuture<Void> unused = future.thenAccept((result) -> { assertEquals((Integer) result, (Integer) DisconnectCause.POWER_OFF); Loading Loading @@ -363,7 +363,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(0), eq(false)); eq(false), eq(0)); // isOkToCall() should return true once satellite modem is off assertFalse(callback.getValue() .isOkToCall(testPhone, ServiceState.STATE_IN_SERVICE, false)); Loading Loading @@ -404,7 +404,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(0), eq(false)); eq(false), eq(0)); // Verify future completes with DisconnectCause.POWER_OFF if radio not ready CompletableFuture<Void> unused = future.thenAccept((result) -> { assertEquals((Integer) result, (Integer) DisconnectCause.SATELLITE_ENABLED); Loading Loading @@ -432,7 +432,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { // Radio already on so shouldn't trigger this verify(mRadioOnHelper, never()).triggerRadioOnAndListen(any(), anyBoolean(), any(), anyBoolean(), eq(0), eq(false)); anyBoolean(), eq(0)); // Carrier supports control-plane fallback, so no DDS switch verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any()); } Loading Loading @@ -3198,7 +3198,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { // Wait for the radio off for all phones verify(mSST, times(2)).registerForVoiceRegStateOrRatChanged(any(), anyInt(), any()); verify(mRadioOnHelper, never()).triggerRadioOnAndListen(any(), anyBoolean(), any(), anyBoolean(), eq(0), eq(false)); anyBoolean(), eq(0)); } /** Loading Loading
src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java +1 −2 Original line number Diff line number Diff line Loading @@ -1738,8 +1738,7 @@ public class EmergencyStateTracker { return phone.getServiceStateTracker().isRadioOn() && !satelliteController.isSatelliteEnabledOrBeingEnabled(); } }, !isTestEmergencyNumber, phone, isTestEmergencyNumber, waitForInServiceTimeout, /* forNormalRoutingEmergencyCall */ false); }, !isTestEmergencyNumber, phone, isTestEmergencyNumber, waitForInServiceTimeout); } else { switchDdsAndSetEmergencyMode(phone, emergencyType); } Loading
src/java/com/android/internal/telephony/emergency/RadioOnHelper.java +6 −15 Original line number Diff line number Diff line Loading @@ -85,7 +85,7 @@ public class RadioOnHelper implements RadioOnStateListener.Callback { */ public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback, boolean forEmergencyCall, Phone phoneForEmergencyCall, boolean isTestEmergencyNumber, int emergencyTimeoutIntervalMillis, boolean forNormalRoutingEmergencyCall) { int emergencyTimeoutIntervalMillis) { setupListeners(); mCallback = callback; mInProgressListeners.clear(); Loading @@ -102,8 +102,7 @@ public class RadioOnHelper implements RadioOnStateListener.Callback { mListeners.get(i).waitForRadioOn(phone, this, forEmergencyCall, forEmergencyCall && phone == phoneForEmergencyCall, timeoutCallbackInterval); } powerOnRadio(forEmergencyCall, phoneForEmergencyCall, isTestEmergencyNumber, forNormalRoutingEmergencyCall); powerOnRadio(forEmergencyCall, phoneForEmergencyCall, isTestEmergencyNumber); if (SatelliteController.getInstance().isSatelliteEnabledOrBeingEnabled()) { powerOffSatellite(); } Loading @@ -114,25 +113,17 @@ public class RadioOnHelper implements RadioOnStateListener.Callback { * get an onServiceStateChanged() callback when the radio successfully comes up. */ private void powerOnRadio(boolean forEmergencyCall, Phone phoneForEmergencyCall, boolean isTestEmergencyNumber, boolean forNormalRoutingEmergencyCall) { boolean isTestEmergencyNumber) { // Always try to turn on the radio here independent of APM setting - if we got here in the // first place, the radio is off independent of APM setting. for (Phone phone : PhoneFactory.getPhones()) { Rlog.d(TAG, "powerOnRadio, enabling Radio"); if (isTestEmergencyNumber) { phone.setRadioPowerOnForTestEmergencyCall( (phone == phoneForEmergencyCall) && !forNormalRoutingEmergencyCall); phone.setRadioPowerOnForTestEmergencyCall(phone == phoneForEmergencyCall); } else { if (forNormalRoutingEmergencyCall) { if (phone.getServiceStateTracker() != null) { // Clear all radio off reasons to ensure that the radio is turned on for // normal routing emergency call. phone.getServiceStateTracker().clearAllRadioOffReasons(); } } phone.setRadioPower(true, forEmergencyCall && !forNormalRoutingEmergencyCall, (phone == phoneForEmergencyCall) && !forNormalRoutingEmergencyCall, false); phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall, false); } } Loading
tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // isOkToCall() should return true when IN_SERVICE state assertFalse(callback.getValue() .isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false)); Loading Loading @@ -243,7 +243,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // onTimeout should return true when radion on assertFalse(callback.getValue() .isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false)); Loading Loading @@ -291,7 +291,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // Hangup the call emergencyStateTracker.endCall(mTestConnection1); Loading Loading @@ -327,7 +327,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS), eq(false)); eq(false), eq(DEFAULT_WAIT_FOR_IN_SERVICE_TIMEOUT_MS)); // Verify future completes with DisconnectCause.POWER_OFF if radio not ready CompletableFuture<Void> unused = future.thenAccept((result) -> { assertEquals((Integer) result, (Integer) DisconnectCause.POWER_OFF); Loading Loading @@ -363,7 +363,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(0), eq(false)); eq(false), eq(0)); // isOkToCall() should return true once satellite modem is off assertFalse(callback.getValue() .isOkToCall(testPhone, ServiceState.STATE_IN_SERVICE, false)); Loading Loading @@ -404,7 +404,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { ArgumentCaptor<RadioOnStateListener.Callback> callback = ArgumentCaptor .forClass(RadioOnStateListener.Callback.class); verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true), eq(testPhone), eq(false), eq(0), eq(false)); eq(false), eq(0)); // Verify future completes with DisconnectCause.POWER_OFF if radio not ready CompletableFuture<Void> unused = future.thenAccept((result) -> { assertEquals((Integer) result, (Integer) DisconnectCause.SATELLITE_ENABLED); Loading Loading @@ -432,7 +432,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { // Radio already on so shouldn't trigger this verify(mRadioOnHelper, never()).triggerRadioOnAndListen(any(), anyBoolean(), any(), anyBoolean(), eq(0), eq(false)); anyBoolean(), eq(0)); // Carrier supports control-plane fallback, so no DDS switch verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any()); } Loading Loading @@ -3198,7 +3198,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { // Wait for the radio off for all phones verify(mSST, times(2)).registerForVoiceRegStateOrRatChanged(any(), anyInt(), any()); verify(mRadioOnHelper, never()).triggerRadioOnAndListen(any(), anyBoolean(), any(), anyBoolean(), eq(0), eq(false)); anyBoolean(), eq(0)); } /** Loading