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

Commit 439b3658 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11840485 from 88c9f84c to 24Q3-release

Change-Id: I42d317e4271df7110fdd28e668e3ef75a6a12dbe
parents e3643f61 88c9f84c
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -420,13 +420,15 @@ public class DatagramController {

    /**
     * Set last sent datagram for demo mode
     * @param datagramType datagram type, only DATAGRAM_TYPE_SOS_MESSAGE will be saved
     * @param datagramType datagram type, DATAGRAM_TYPE_SOS_MESSAGE,
     *                     DATAGRAM_TYPE_LAST_SOS_MESSAGE_STILL_NEED_HELP,
     *                     DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED will be saved
     * @param datagram datagram The last datagram saved when sendSatelliteDatagramForDemo is called
     */
    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
    public void pushDemoModeDatagram(@SatelliteManager.DatagramType int datagramType,
            SatelliteDatagram datagram) {
        if (mIsDemoMode && datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE) {
        if (mIsDemoMode && SatelliteServiceUtils.isSosMessage(datagramType)) {
            synchronized (mLock) {
                mDemoModeDatagramList.add(datagram);
                logd("pushDemoModeDatagram size=" + mDemoModeDatagramList.size());
+5 −5
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ public class DatagramDispatcher extends Handler {
                    } else {
                        SatelliteModemInterface.getInstance().sendSatelliteDatagram(
                                argument.datagram,
                                argument.datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE,
                                SatelliteServiceUtils.isSosMessage(argument.datagramType),
                                argument.needFullScreenPointingUI, onCompleted);
                        startWaitForDatagramSendingResponseTimer(argument);
                    }
@@ -266,7 +266,7 @@ public class DatagramDispatcher extends Handler {
                    // Log metrics about the outgoing datagram
                    reportSendDatagramCompleted(argument, error);
                    // Remove current datagram from pending map.
                    if (argument.datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE) {
                    if (SatelliteServiceUtils.isSosMessage(argument.datagramType)) {
                        mPendingEmergencyDatagramsMap.remove(argument.datagramId);
                    } else {
                        mPendingNonEmergencyDatagramsMap.remove(argument.datagramId);
@@ -373,7 +373,7 @@ public class DatagramDispatcher extends Handler {

        synchronized (mLock) {
            // Add datagram to pending datagram map
            if (datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE) {
            if (SatelliteServiceUtils.isSosMessage(datagramType)) {
                mPendingEmergencyDatagramsMap.put(datagramId, datagramArgs);
            } else {
                mPendingNonEmergencyDatagramsMap.put(datagramId, datagramArgs);
@@ -765,7 +765,7 @@ public class DatagramDispatcher extends Handler {
    private boolean shouldProcessEventSendSatelliteDatagramDone(
            @NonNull SendSatelliteDatagramArgument argument) {
        synchronized (mLock) {
            if (argument.datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE) {
            if (SatelliteServiceUtils.isSosMessage(argument.datagramType)) {
                return mPendingEmergencyDatagramsMap.containsKey(argument.datagramId);
            } else {
                return mPendingNonEmergencyDatagramsMap.containsKey(argument.datagramId);
@@ -801,7 +801,7 @@ public class DatagramDispatcher extends Handler {
            mControllerMetricsStats.reportOutgoingDatagramFailCount(argument.datagramType,
                    mIsDemoMode);
            // Remove current datagram from pending map.
            if (argument.datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE) {
            if (SatelliteServiceUtils.isSosMessage(argument.datagramType)) {
                mPendingEmergencyDatagramsMap.remove(argument.datagramId);
            } else {
                mPendingNonEmergencyDatagramsMap.remove(argument.datagramId);
+10 −2
Original line number Diff line number Diff line
@@ -282,7 +282,7 @@ public class SatelliteSOSMessageRecommender extends Handler {
            updateSatelliteViaCarrierAvailability();

            boolean isDialerNotified = false;
            if (!isImsRegistered() && !isCellularAvailable()
            if (!isCellularAvailable()
                    && isSatelliteAllowed()
                    && (isSatelliteViaOemAvailable() || isSatelliteViaCarrierAvailable())
                    && shouldTrackCall(mEmergencyConnection.getState())) {
@@ -441,10 +441,12 @@ public class SatelliteSOSMessageRecommender extends Handler {
                int state = serviceState.getState();
                if ((state == STATE_IN_SERVICE || state == STATE_EMERGENCY_ONLY)
                        && !serviceState.isUsingNonTerrestrialNetwork()) {
                    logv("isCellularAvailable true");
                    return true;
                }
            }
        }
        logv("isCellularAvailable false");
        return false;
    }

@@ -479,9 +481,10 @@ public class SatelliteSOSMessageRecommender extends Handler {
    }

    private synchronized void handleStateChangedEventForHysteresisTimer() {
        if (!isImsRegistered() && !isCellularAvailable()) {
        if (!isCellularAvailable()) {
            startTimer();
        } else {
            logv("handleStateChangedEventForHysteresisTimer stopTimer");
            stopTimer();
        }
    }
@@ -494,6 +497,7 @@ public class SatelliteSOSMessageRecommender extends Handler {
            sendMessageDelayed(obtainMessage(EVENT_TIME_OUT), mTimeoutMillis);
            mCountOfTimerStarted++;
            mIsTimerTimedOut = false;
            logd("startTimer mCountOfTimerStarted=" + mCountOfTimerStarted);
        }
    }

@@ -744,6 +748,10 @@ public class SatelliteSOSMessageRecommender extends Handler {
                || SystemProperties.getBoolean(BOOT_ALLOW_MOCK_MODEM_PROPERTY, false));
    }

    private static void logv(@NonNull String log) {
        Rlog.v(TAG, log);
    }

    private static void logd(@NonNull String log) {
        Rlog.d(TAG, log);
    }
+9 −0
Original line number Diff line number Diff line
@@ -346,6 +346,15 @@ public class SatelliteServiceUtils {
        return mergedStrSet.stream().toList();
    }

    /**
     *
     */
    public static boolean isSosMessage(int datagramType) {
        return datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE
                || datagramType == SatelliteManager.DATAGRAM_TYPE_LAST_SOS_MESSAGE_STILL_NEED_HELP
                || datagramType == SatelliteManager.DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED;
    }

    /**
     * Return phone associated with phoneId 0.
     *
+3 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.metrics.SatelliteStats;
import com.android.internal.telephony.satellite.SatelliteServiceUtils;

/**
 * Stats to log to satellite metrics
@@ -142,7 +143,7 @@ public class ControllerMetricsStats {
            builder.setCountOfOutgoingDatagramSuccess(ADD_COUNT);
        }

        if (datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE) {
        if (SatelliteServiceUtils.isSosMessage(datagramType)) {
            builder.setCountOfDatagramTypeSosSmsSuccess(ADD_COUNT);
        } else if (datagramType == SatelliteManager.DATAGRAM_TYPE_LOCATION_SHARING) {
            builder.setCountOfDatagramTypeLocationSharingSuccess(ADD_COUNT);
@@ -167,7 +168,7 @@ public class ControllerMetricsStats {
            builder.setCountOfOutgoingDatagramFail(ADD_COUNT);
        }

        if (datagramType == SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE) {
        if (SatelliteServiceUtils.isSosMessage(datagramType)) {
            builder.setCountOfDatagramTypeSosSmsFail(ADD_COUNT);
        } else if (datagramType == SatelliteManager.DATAGRAM_TYPE_LOCATION_SHARING) {
            builder.setCountOfDatagramTypeLocationSharingFail(ADD_COUNT);
Loading