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

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

Merge cherrypicks of ['googleplex-android-review.googlesource.com/31157950',...

Merge cherrypicks of ['googleplex-android-review.googlesource.com/31157950', 'googleplex-android-review.googlesource.com/31156006', 'googleplex-android-review.googlesource.com/31178803', 'googleplex-android-review.googlesource.com/31171156'] into 25Q1-release.

Change-Id: I7c05bd800460ec93c511300a1ae64d1fec4b7df5
parents 51ef54a2 2f6d5b67
Loading
Loading
Loading
Loading
+49 −15
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ public class DatagramDispatcher extends Handler {
    private boolean mIsMtSmsPollingThrottled = false;
    @GuardedBy("mLock")
    private int mConnectedStateCounter = 0;
    private long mSmsTransmissionStartTime = 0;

    /**
     * Create the DatagramDispatcher singleton instance.
@@ -404,6 +405,7 @@ public class DatagramDispatcher extends Handler {
                    return;
                }

                mSmsTransmissionStartTime = System.currentTimeMillis();
                smsDispatchersController.sendCarrierRoamingNbIotNtnText(pendingRequest);
                break;
            }
@@ -754,6 +756,21 @@ public class DatagramDispatcher extends Handler {
        msg.sendToTarget();
    }

    private void reportSendSmsCompleted(@NonNull PendingRequest pendingRequest,
            @SatelliteManager.SatelliteResult int resultCode) {
        int datagramType = pendingRequest.isMtSmsPolling
                ? DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS : DATAGRAM_TYPE_SMS;
        if (resultCode == SATELLITE_RESULT_SUCCESS) {
            long smsTransmissionTime = mSmsTransmissionStartTime > 0
                    ? (System.currentTimeMillis() - mSmsTransmissionStartTime) : 0;
            mSessionMetricsStats.addCountOfSuccessfulOutgoingDatagram(
                    datagramType, smsTransmissionTime);
        } else {
            mSessionMetricsStats.addCountOfFailedOutgoingDatagram(
                    datagramType, resultCode);
        }
    }

    private void reportSendDatagramCompleted(@NonNull SendSatelliteDatagramArgument argument,
            @NonNull @SatelliteManager.SatelliteResult int resultCode) {
        long datagramTransmissionTime = argument.datagramStartTime > 0
@@ -1241,6 +1258,7 @@ public class DatagramDispatcher extends Handler {
            PendingRequest pendingRequest = entry.getValue();
            smsDispatchersController.onSendCarrierRoamingNbIotNtnTextError(
                    pendingRequest, errorCode);
            reportSendSmsCompleted(pendingRequest, errorCode);
        }

        // Clear pending text map
@@ -1268,6 +1286,7 @@ public class DatagramDispatcher extends Handler {
                mDatagramController.updateSendStatus(subId, datagramType,
                        SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS,
                        getPendingMessagesCount(), SATELLITE_RESULT_SUCCESS);
                reportSendSmsCompleted(pendingSms, SATELLITE_RESULT_SUCCESS);
                if (datagramType == DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS) {
                    startMtSmsPollingThrottle();
                    mShouldPollMtSms = false;
@@ -1277,6 +1296,7 @@ public class DatagramDispatcher extends Handler {
                mDatagramController.updateSendStatus(subId, datagramType,
                        SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED,
                        getPendingMessagesCount(), SATELLITE_RESULT_NETWORK_ERROR);
                reportSendSmsCompleted(pendingSms, SATELLITE_RESULT_NETWORK_ERROR);
            }

            if (getPendingMessagesCount() > 0) {
@@ -1424,21 +1444,35 @@ public class DatagramDispatcher extends Handler {
    }

    public void updateSessionStatsWithPendingUserMsgCount(SatelliteSessionStats datagramStats) {
        synchronized (mLock) {
            Log.d("SessionMetricsStats1",
                " mPendingEmergencyDatagramsMap size = " + mPendingEmergencyDatagramsMap.size());
                    " mPendingEmergencyDatagramsMap size = "
                            + mPendingEmergencyDatagramsMap.size());
            Log.d("SessionMetricsStats1", " mPendingNonEmergencyDatagramsMap size = "
                    + mPendingNonEmergencyDatagramsMap.size());
            Log.d("SessionMetricsStats1", " mPendingSmsMap size = "
                    + mPendingSmsMap.size());
            for (Entry<Long, SendSatelliteDatagramArgument> entry :
                    mPendingEmergencyDatagramsMap.entrySet()) {
                SendSatelliteDatagramArgument argument = entry.getValue();
            Log.d("SessionMetricsStats1", "DataGramType1 =  " + argument.datagramType);
                Log.d("SessionMetricsStats1", "DataGramType1 =  "
                        + argument.datagramType);
                datagramStats.updateCountOfUserMessagesInQueueToBeSent(argument.datagramType);
            }
            for (Entry<Long, SendSatelliteDatagramArgument> entry :
                    mPendingNonEmergencyDatagramsMap.entrySet()) {
                SendSatelliteDatagramArgument argument = entry.getValue();
            Log.d("SessionMetricsStats1", "DataGramType2 =  " + argument.datagramType);
                Log.d("SessionMetricsStats1", "DataGramType2 =  "
                        + argument.datagramType);
                datagramStats.updateCountOfUserMessagesInQueueToBeSent(argument.datagramType);
            }
            for (Entry<Long, PendingRequest> entry : mPendingSmsMap.entrySet()) {
                PendingRequest pendingRequest = entry.getValue();
                int datagramType = pendingRequest.isMtSmsPolling
                        ? DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS : DATAGRAM_TYPE_SMS;
                Log.d("SessionMetricsStats1", "DataGramType3 =  " + datagramType);
                datagramStats.updateCountOfUserMessagesInQueueToBeSent(datagramType);
            }
        }
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -334,6 +334,9 @@ public class SessionMetricsStats {
                .build();
        bundle.putParcelable(SatelliteManager.KEY_SESSION_STATS, sessionStats);

        // Reset countOfUserMessagesInQueueToBeSent for each datagramType to 0.
        mDatagramStats.resetCountOfUserMessagesInQueueToBeSent();

        DatagramDispatcher.getInstance().updateSessionStatsWithPendingUserMsgCount(mDatagramStats);
        bundle.putParcelable(KEY_SESSION_STATS_V2, mDatagramStats);
        Log.i(TAG, "[END] DatagramStats = " + mDatagramStats);
+3 −0
Original line number Diff line number Diff line
@@ -4721,6 +4721,9 @@ public class SubscriptionManagerService extends ISub.Stub {
    public boolean isSatelliteProvisionedForNonIpDatagram(int subId) {
        SubscriptionInfoInternal subInfo = mSubscriptionDatabaseManager.getSubscriptionInfoInternal(
                subId);
        if (subInfo == null) {
            return false;
        }

        return subInfo.getIsSatelliteProvisionedForNonIpDatagram() == 1;
    }
+5 −0
Original line number Diff line number Diff line
@@ -838,6 +838,8 @@ public class DatagramDispatcherTest extends TelephonyTest {
                .updateSendStatus(eq(SUB_ID), eq(datagramType),
                        eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0),
                        eq(SATELLITE_RESULT_SUCCESS));
        verify(mMockSessionMetricsStats, times(1))
                .addCountOfSuccessfulOutgoingDatagram(eq(datagramType), anyLong());
        verifyNoMoreInteractions(mMockDatagramController);
    }

@@ -874,6 +876,9 @@ public class DatagramDispatcherTest extends TelephonyTest {
                        eq(datagramType),
                        eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0),
                        eq(SATELLITE_RESULT_SUCCESS));
        verify(mMockSessionMetricsStats, times(1))
                .addCountOfFailedOutgoingDatagram(eq(datagramType), eq(
                        SatelliteManager.SATELLITE_RESULT_NETWORK_ERROR));
    }

    @Test
+5 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import static com.android.internal.telephony.subscription.SubscriptionDatabaseMa
import static com.google.common.truth.Truth.assertThat;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -3434,4 +3435,8 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
        assertEquals(expectedPlmnList,
                mSubscriptionManagerServiceUT.getSatelliteEntitlementPlmnList(subId));
    }

    public void testIsSatelliteProvisionedForNonIpDatagram() {
        assertFalse(mSubscriptionManagerServiceUT.isSatelliteProvisionedForNonIpDatagram(-1));
    }
}