Notifying ECBM stop, if an emergency call starts during ECBM
This commit adds logic to EmergencyStateTracker to notify of ECBM stop
if an emergency call starts during ECBM.
This CL is a follow-up to the previously submitted ag/29805066.
It fixes a bug discovered during additional testing.
The bug is caused by a failure to call StopEmergencyCallbackMode when
an emergency call starts during ECBM.
Bug: 377586429
Bug: 359064059
Test: atest EmergencyStateTrackerTest
Flag: com.android.internal.telephony.flags.emergency_callback_mode_notification
Change-Id: Id18419cba24f8bb0577d41814f54d4c9bfc85aa3
diff --git a/src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java b/src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java
index 3040c23..977dd6e 100644
--- a/src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java
+++ b/src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java
@@ -601,6 +601,11 @@
releaseWakeLock();
((GsmCdmaPhone) mPhone).notifyEcbmTimerReset(Boolean.TRUE);
+ if (mFeatureFlags.emergencyCallbackModeNotification()) {
+ mPhone.stopEmergencyCallbackMode(EMERGENCY_CALLBACK_MODE_CALL,
+ STOP_REASON_OUTGOING_EMERGENCY_CALL_INITIATED);
+ }
+
mOngoingCallProperties = 0;
mCallEmergencyModeFuture = new CompletableFuture<>();
setEmergencyMode(mPhone, EMERGENCY_TYPE_CALL, MODE_EMERGENCY_WWAN,
diff --git a/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java
index 62c2010..3f919ae 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java
@@ -1104,7 +1104,7 @@
verify(phone0, never()).exitEmergencyMode(any(Message.class));
verify(phone0, times(2)).startEmergencyCallbackMode(
eq(EMERGENCY_CALLBACK_MODE_CALL), anyLong());
- verify(phone0, never()).stopEmergencyCallbackMode(
+ verify(phone0, times(1)).stopEmergencyCallbackMode(
eq(EMERGENCY_CALLBACK_MODE_CALL), anyInt());
}