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

Commit 9a9abb28 authored by Sooraj Sasindran's avatar Sooraj Sasindran Committed by Android (Google) Code Review
Browse files

Merge "Add sms log to session metrics" into main

parents 4f6188d2 162453c8
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);