Loading src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +49 −15 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -404,6 +405,7 @@ public class DatagramDispatcher extends Handler { return; } mSmsTransmissionStartTime = System.currentTimeMillis(); smsDispatchersController.sendCarrierRoamingNbIotNtnText(pendingRequest); break; } Loading Loading @@ -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 Loading Loading @@ -1241,6 +1258,7 @@ public class DatagramDispatcher extends Handler { PendingRequest pendingRequest = entry.getValue(); smsDispatchersController.onSendCarrierRoamingNbIotNtnTextError( pendingRequest, errorCode); reportSendSmsCompleted(pendingRequest, errorCode); } // Clear pending text map Loading Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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); } } } } src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java +3 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +49 −15 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -404,6 +405,7 @@ public class DatagramDispatcher extends Handler { return; } mSmsTransmissionStartTime = System.currentTimeMillis(); smsDispatchersController.sendCarrierRoamingNbIotNtnText(pendingRequest); break; } Loading Loading @@ -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 Loading Loading @@ -1241,6 +1258,7 @@ public class DatagramDispatcher extends Handler { PendingRequest pendingRequest = entry.getValue(); smsDispatchersController.onSendCarrierRoamingNbIotNtnTextError( pendingRequest, errorCode); reportSendSmsCompleted(pendingRequest, errorCode); } // Clear pending text map Loading Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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); } } } }
src/java/com/android/internal/telephony/satellite/metrics/SessionMetricsStats.java +3 −0 Original line number Diff line number Diff line Loading @@ -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); Loading