Loading src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java +11 −5 Original line number Diff line number Diff line Loading @@ -498,17 +498,23 @@ public class EmergencyStateTracker { exitEmergencySmsCallbackMode(); mOngoingConnection = c; mIsTestEmergencyNumber = isTestEmergencyNumber; // Ensure that domain selector requests scan. mLastEmergencyRegistrationResult = new EmergencyRegistrationResult( AccessNetworkConstants.AccessNetworkType.UNKNOWN, NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN, NetworkRegistrationInfo.DOMAIN_UNKNOWN, false, false, 0, 0, "", "", ""); if (isInEcm()) { // Remove pending exit ECM runnable. mHandler.removeCallbacks(mExitEcmRunnable); releaseWakeLock(); ((GsmCdmaPhone) mPhone).notifyEcbmTimerReset(Boolean.TRUE); mOngoingCallProperties = 0; mCallEmergencyModeFuture = new CompletableFuture<>(); setEmergencyMode(mPhone, EMERGENCY_TYPE_CALL, MODE_EMERGENCY_WWAN, MSG_SET_EMERGENCY_MODE_DONE); return mCallEmergencyModeFuture; } // Ensure that domain selector requests scan. mLastEmergencyRegistrationResult = new EmergencyRegistrationResult( AccessNetworkConstants.AccessNetworkType.UNKNOWN, NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN, NetworkRegistrationInfo.DOMAIN_UNKNOWN, false, false, 0, 0, "", "", ""); return CompletableFuture.completedFuture(DisconnectCause.NOT_DISCONNECTED); } Loading tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -951,14 +951,16 @@ public class EmergencyStateTrackerTest extends TelephonyTest { processAllMessages(); assertTrue(emergencyStateTracker.isInEcm()); verify(phone0, times(1)).setEmergencyMode(eq(MODE_EMERGENCY_WWAN), any(Message.class)); verify(phone0, times(1)).setEmergencyMode(eq(MODE_EMERGENCY_CALLBACK), any(Message.class)); // Second emergency call started. CompletableFuture<Integer> future = emergencyStateTracker.startEmergencyCall(phone0, mTestConnection2, false); // Returns DisconnectCause#NOT_DISCONNECTED immediately. assertEquals(future.getNow(DisconnectCause.ERROR_UNSPECIFIED), Integer.valueOf(DisconnectCause.NOT_DISCONNECTED)); assertFalse(future.isDone()); verify(phone0, times(2)).setEmergencyMode(eq(MODE_EMERGENCY_WWAN), any(Message.class)); verify(phone0, times(1)).setEmergencyMode(eq(MODE_EMERGENCY_CALLBACK), any(Message.class)); } @Test Loading Loading @@ -1021,9 +1023,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { future = emergencyStateTracker.startEmergencyCall(phone0, mTestConnection2, false); assertTrue(emergencyStateTracker.isInEmergencyMode()); // Returns DisconnectCause#NOT_DISCONNECTED immediately. assertEquals(future.getNow(DisconnectCause.ERROR_UNSPECIFIED), Integer.valueOf(DisconnectCause.NOT_DISCONNECTED)); assertFalse(future.isDone()); emergencyStateTracker.onEmergencyTransportChanged( EmergencyStateTracker.EMERGENCY_TYPE_CALL, MODE_EMERGENCY_WLAN); Loading Loading
src/java/com/android/internal/telephony/emergency/EmergencyStateTracker.java +11 −5 Original line number Diff line number Diff line Loading @@ -498,17 +498,23 @@ public class EmergencyStateTracker { exitEmergencySmsCallbackMode(); mOngoingConnection = c; mIsTestEmergencyNumber = isTestEmergencyNumber; // Ensure that domain selector requests scan. mLastEmergencyRegistrationResult = new EmergencyRegistrationResult( AccessNetworkConstants.AccessNetworkType.UNKNOWN, NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN, NetworkRegistrationInfo.DOMAIN_UNKNOWN, false, false, 0, 0, "", "", ""); if (isInEcm()) { // Remove pending exit ECM runnable. mHandler.removeCallbacks(mExitEcmRunnable); releaseWakeLock(); ((GsmCdmaPhone) mPhone).notifyEcbmTimerReset(Boolean.TRUE); mOngoingCallProperties = 0; mCallEmergencyModeFuture = new CompletableFuture<>(); setEmergencyMode(mPhone, EMERGENCY_TYPE_CALL, MODE_EMERGENCY_WWAN, MSG_SET_EMERGENCY_MODE_DONE); return mCallEmergencyModeFuture; } // Ensure that domain selector requests scan. mLastEmergencyRegistrationResult = new EmergencyRegistrationResult( AccessNetworkConstants.AccessNetworkType.UNKNOWN, NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN, NetworkRegistrationInfo.DOMAIN_UNKNOWN, false, false, 0, 0, "", "", ""); return CompletableFuture.completedFuture(DisconnectCause.NOT_DISCONNECTED); } Loading
tests/telephonytests/src/com/android/internal/telephony/emergency/EmergencyStateTrackerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -951,14 +951,16 @@ public class EmergencyStateTrackerTest extends TelephonyTest { processAllMessages(); assertTrue(emergencyStateTracker.isInEcm()); verify(phone0, times(1)).setEmergencyMode(eq(MODE_EMERGENCY_WWAN), any(Message.class)); verify(phone0, times(1)).setEmergencyMode(eq(MODE_EMERGENCY_CALLBACK), any(Message.class)); // Second emergency call started. CompletableFuture<Integer> future = emergencyStateTracker.startEmergencyCall(phone0, mTestConnection2, false); // Returns DisconnectCause#NOT_DISCONNECTED immediately. assertEquals(future.getNow(DisconnectCause.ERROR_UNSPECIFIED), Integer.valueOf(DisconnectCause.NOT_DISCONNECTED)); assertFalse(future.isDone()); verify(phone0, times(2)).setEmergencyMode(eq(MODE_EMERGENCY_WWAN), any(Message.class)); verify(phone0, times(1)).setEmergencyMode(eq(MODE_EMERGENCY_CALLBACK), any(Message.class)); } @Test Loading Loading @@ -1021,9 +1023,7 @@ public class EmergencyStateTrackerTest extends TelephonyTest { future = emergencyStateTracker.startEmergencyCall(phone0, mTestConnection2, false); assertTrue(emergencyStateTracker.isInEmergencyMode()); // Returns DisconnectCause#NOT_DISCONNECTED immediately. assertEquals(future.getNow(DisconnectCause.ERROR_UNSPECIFIED), Integer.valueOf(DisconnectCause.NOT_DISCONNECTED)); assertFalse(future.isDone()); emergencyStateTracker.onEmergencyTransportChanged( EmergencyStateTracker.EMERGENCY_TYPE_CALL, MODE_EMERGENCY_WLAN); Loading