Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cef2c097 authored by Hunsuk Choi's avatar Hunsuk Choi Committed by Android (Google) Code Review
Browse files

Merge "Change emergency mode from CALLBACK to WWAN when starting a call" into main

parents d7deae04 3c7bda82
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -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);
            }

+6 −6
Original line number Diff line number Diff line
@@ -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
@@ -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);