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

Commit 4fd1fd09 authored by Sungcheol Ahn's avatar Sungcheol Ahn Committed by Android (Google) Code Review
Browse files

Merge "added eSOS test mode flag" into main

parents 57cf8b65 5bb40d1a
Loading
Loading
Loading
Loading
+19 −8
Original line number Diff line number Diff line
@@ -124,6 +124,8 @@ public class SatelliteSOSMessageRecommender extends Handler {

    @Nullable private PersistentLogger mPersistentLogger = null;

    private boolean mIsTestEmergencyNumber = false;

    /**
     * Create an instance of SatelliteSOSMessageRecommender.
     *
@@ -213,11 +215,13 @@ public class SatelliteSOSMessageRecommender extends Handler {
     * @param connection The connection created by TelephonyConnectionService for the emergency
     *                   call.
     */
    public void onEmergencyCallStarted(@NonNull Connection connection) {
    public void onEmergencyCallStarted(@NonNull Connection connection,
            boolean isTestEmergencyNumber) {
        if (!isSatelliteSupported()) {
            plogd("onEmergencyCallStarted: satellite is not supported");
            return;
        }
        mIsTestEmergencyNumber = isTestEmergencyNumber;

        if (hasMessages(EVENT_EMERGENCY_CALL_STARTED)) {
            logd("onEmergencyCallStarted: Ignoring due to ongoing event:");
@@ -321,7 +325,8 @@ public class SatelliteSOSMessageRecommender extends Handler {
                    || isSatelliteConnectedViaCarrierWithinHysteresisTime())
                    && shouldTrackCall(mEmergencyConnection.getState())) {
                plogd("handleTimeoutEvent: Sent EVENT_DISPLAY_EMERGENCY_MESSAGE to Dialer");
                Bundle extras = createExtraBundleForEventDisplayEmergencyMessage();
                Bundle extras = createExtraBundleForEventDisplayEmergencyMessage(
                        mIsTestEmergencyNumber);
                mEmergencyConnection.sendConnectionEvent(
                        TelephonyManager.EVENT_DISPLAY_EMERGENCY_MESSAGE, extras);
                isDialerNotified = true;
@@ -426,6 +431,7 @@ public class SatelliteSOSMessageRecommender extends Handler {
            mIsTimerTimedOut = false;
            mCheckingAccessRestrictionInProgress = false;
            mIsSatelliteAllowedForCurrentLocation = false;
            mIsTestEmergencyNumber = false;
        }
    }

@@ -585,11 +591,13 @@ public class SatelliteSOSMessageRecommender extends Handler {

    @Nullable
    private static String getSatelliteEmergencyHandoverIntentActionFromOverlayConfig(
            @NonNull Context context) {
            @NonNull Context context, boolean isTestEmergencyNumber) {
        String action;
        try {
            action = context.getResources().getString(
                    R.string.config_satellite_emergency_handover_intent_action);
            int actionIntent = isTestEmergencyNumber
                    ? R.string.config_satellite_test_with_esp_replies_intent_action
                    : R.string.config_satellite_emergency_handover_intent_action;
            action = context.getResources().getString(actionIntent);
        } catch (Resources.NotFoundException ex) {
            loge("getSatelliteEmergencyHandoverIntentFilterActionFromOverlayConfig: ex=" + ex);
            action = null;
@@ -635,13 +643,15 @@ public class SatelliteSOSMessageRecommender extends Handler {
        return callback;
    }

    @NonNull private Bundle createExtraBundleForEventDisplayEmergencyMessage() {
    @NonNull private Bundle createExtraBundleForEventDisplayEmergencyMessage(
            boolean isTestEmergencyNumber) {
        int handoverType = EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS;
        Pair<String, String> oemSatelliteMessagingApp =
                getOemEnabledSatelliteHandoverAppFromOverlayConfig(mContext);
        String packageName = oemSatelliteMessagingApp.first;
        String className = oemSatelliteMessagingApp.second;
        String action = getSatelliteEmergencyHandoverIntentActionFromOverlayConfig(mContext);
        String action = getSatelliteEmergencyHandoverIntentActionFromOverlayConfig(mContext,
                isTestEmergencyNumber);

        if (isSatelliteConnectedViaCarrierWithinHysteresisTime()
                || isEmergencyCallToSatelliteHandoverTypeT911Enforced()) {
@@ -710,7 +720,8 @@ public class SatelliteSOSMessageRecommender extends Handler {
            @NonNull Connection connection) {
        plogd("Sent EVENT_DISPLAY_EMERGENCY_MESSAGE to Dialer forcefully.");
        mEmergencyConnection = connection;
        Bundle extras = createExtraBundleForEventDisplayEmergencyMessage();
        Bundle extras = createExtraBundleForEventDisplayEmergencyMessage(
                /* isTestEmergencyNumber= */ true);
        connection.sendConnectionEvent(TelephonyManager.EVENT_DISPLAY_EMERGENCY_MESSAGE, extras);
        mEmergencyConnection = null;
    }
+22 −22
Original line number Diff line number Diff line
@@ -204,7 +204,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        when(mServiceState.getState()).thenReturn(STATE_OUT_OF_SERVICE);
        when(mServiceState2.getState()).thenReturn(STATE_OUT_OF_SERVICE);
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSOSMessageRecommender.onEmergencyCallStarted(null);
        mTestSOSMessageRecommender.onEmergencyCallStarted(null, false);
        processAllMessages();
        assertFalse(mTestSOSMessageRecommender.isTimerStarted());
        assertEquals(0, mTestSOSMessageRecommender.getCountOfTimerStarted());
@@ -213,7 +213,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
    private void testTimeoutBeforeEmergencyCallEnd(int expectedHandoverType,
            String expectedPackageName, String expectedClassName, String expectedAction) {
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertEquals(1, mTestSOSMessageRecommender.getCountOfTimerStarted());
        assertRegisterForStateChangedEventsTriggered(mPhone, 1,  1);
@@ -246,7 +246,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
        mTestSatelliteController.setIsSatelliteViaOemProvisioned(false);
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertEquals(1, mTestSOSMessageRecommender.getCountOfTimerStarted());
        assertRegisterForStateChangedEventsTriggered(mPhone, 1, 1);
@@ -273,7 +273,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
        mTestSatelliteController.isOemEnabledSatelliteSupported = false;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertEquals(1, mTestSOSMessageRecommender.getCountOfTimerStarted());
        assertRegisterForStateChangedEventsTriggered(mPhone, 1, 1);
@@ -312,7 +312,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
    @Test
    public void testNetworkStateChangedBeforeTimeout() {
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
        assertEquals(1, mTestSOSMessageRecommender.getCountOfTimerStarted());
@@ -341,7 +341,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {

    @Test
    public void testSatelliteProvisionStateChangedBeforeTimeout() {
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();

        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
@@ -358,7 +358,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        assertUnregisterForStateChangedEventsTriggered(mPhone, 1, 1);
        assertUnregisterForStateChangedEventsTriggered(mPhone2, 1, 1);

        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
        assertEquals(1, mTestSOSMessageRecommender.getCountOfTimerStarted());
@@ -392,7 +392,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
    @Test
    public void testEmergencyCallRedialBeforeTimeout() {
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
        assertEquals(1, mTestSOSMessageRecommender.getCountOfTimerStarted());
@@ -400,7 +400,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        assertRegisterForStateChangedEventsTriggered(mPhone2, 1, 1);
        assertNull(mTestSOSMessageRecommender.isSatelliteAllowedCallback);

        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertNull(mTestSOSMessageRecommender.isSatelliteAllowedCallback);
        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
@@ -454,7 +454,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {

    @Test
    public void testOnEmergencyCallConnectionStateChangedWithWrongCallId() {
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();

        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
@@ -476,7 +476,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
    @Test
    public void testSatelliteNotAllowedInCurrentLocation() {
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertNull(mTestSOSMessageRecommender.isSatelliteAllowedCallback);
        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
@@ -508,7 +508,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
                mContext,
                Looper.myLooper(),
                satelliteController, mTestImsManager);
        testSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        testSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();

        assertFalse(testSOSMessageRecommender.isTimerStarted());
@@ -538,13 +538,13 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        // Both OEM and carrier don't support satellite
        mTestSatelliteController.isSatelliteEmergencyMessagingSupportedViaCarrier = false;
        mTestSatelliteController.isOemEnabledSatelliteSupported = false;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertEquals(0, mTestSOSMessageRecommender.getTimeOutMillis());

        // Only OEM support satellite
        mTestSatelliteController.isOemEnabledSatelliteSupported = true;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertEquals(TEST_EMERGENCY_CALL_TO_SOS_MSG_HYSTERESIS_TIMEOUT_MILLIS,
                mTestSOSMessageRecommender.getTimeOutMillis());
@@ -556,7 +556,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
        mTestSatelliteController.carrierEmergencyCallWaitForConnectionTimeoutMillis =
                carrierTimeoutMillis;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertEquals(TEST_EMERGENCY_CALL_TO_SOS_MSG_HYSTERESIS_TIMEOUT_MILLIS,
                mTestSOSMessageRecommender.getTimeOutMillis());
@@ -567,7 +567,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true);
        mTestSatelliteController.carrierEmergencyCallWaitForConnectionTimeoutMillis =
                carrierTimeoutMillis;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertEquals(carrierTimeoutMillis, mTestSOSMessageRecommender.getTimeOutMillis());
    }
@@ -578,7 +578,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {

        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true);
        mTestSatelliteController.mIsSatelliteViaOemProvisioned = true;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911,
                mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());

@@ -591,7 +591,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {

        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(true);
        mTestSatelliteController.mIsSatelliteViaOemProvisioned = false;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_T911,
                mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());

@@ -604,13 +604,13 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {

        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
        mTestSatelliteController.mIsSatelliteViaOemProvisioned = true;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS,
                mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());

        mTestSatelliteController.setSatelliteConnectedViaCarrierWithinHysteresisTime(false);
        mTestSatelliteController.mIsSatelliteViaOemProvisioned = false;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        assertEquals(EMERGENCY_CALL_TO_SATELLITE_HANDOVER_TYPE_SOS,
                mTestSOSMessageRecommender.getEmergencyCallToSatelliteHandoverType());

@@ -619,7 +619,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {

    private void testStopTrackingCallBeforeTimeout(
            @Connection.ConnectionState int connectionState) {
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();

        assertTrue(mTestSOSMessageRecommender.isTimerStarted());
@@ -641,7 +641,7 @@ public class SatelliteSOSMessageRecommenderTest extends TelephonyTest {
            @ServiceState.RegState int availableServiceState,
            @ServiceState.RegState int unavailableServiceState) {
        mTestSOSMessageRecommender.isSatelliteAllowedCallback = null;
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection);
        mTestSOSMessageRecommender.onEmergencyCallStarted(mTestConnection, false);
        processAllMessages();
        assertNull(mTestSOSMessageRecommender.isSatelliteAllowedCallback);
        assertTrue(mTestSOSMessageRecommender.isTimerStarted());