Loading src/java/com/android/internal/telephony/SmsDispatchersController.java +5 −3 Original line number Diff line number Diff line Loading @@ -1234,7 +1234,7 @@ public class SmsDispatchersController extends Handler { boolean isOverIms, boolean isLastSmsPart, boolean success) { notifySmsSentToEmergencyStateTracker(tracker.mDestAddress, tracker.mMessageId, isOverIms, isLastSmsPart, success); notifySmsSentToDatagramDispatcher(tracker.mUniqueMessageId, success); notifySmsSentToDatagramDispatcher(tracker.mUniqueMessageId, isLastSmsPart, success); } /** Loading @@ -1254,9 +1254,11 @@ public class SmsDispatchersController extends Handler { } } private void notifySmsSentToDatagramDispatcher(long messageId, boolean success) { private void notifySmsSentToDatagramDispatcher( long messageId, boolean isLastSmsPart, boolean success) { if (SatelliteController.getInstance().shouldSendSmsToDatagramDispatcher(mPhone)) { DatagramDispatcher.getInstance().onSendSmsDone(mPhone.getSubId(), messageId, success); DatagramDispatcher.getInstance().onSendSmsDone( mPhone.getSubId(), messageId, isLastSmsPart, success); } } Loading src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +18 −10 Original line number Diff line number Diff line Loading @@ -406,9 +406,10 @@ public class DatagramDispatcher extends Handler { SomeArgs args = (SomeArgs) msg.obj; int subId = (int) args.arg1; long messageId = (long) args.arg2; boolean success = (boolean) args.arg3; boolean isLastPartSms = (boolean) args.arg3; boolean success = (boolean) args.arg4; try { handleEventSendSmsDone(subId, messageId, success); handleEventSendSmsDone(subId, messageId, isLastPartSms, success); } finally { args.recycle(); } Loading Loading @@ -1181,13 +1182,15 @@ public class DatagramDispatcher extends Handler { * Sending MO SMS is completed. * @param subId subscription ID * @param messageId message ID of MO SMS * @param isLastSmsPart whether this is the last sms part of MO SMS * @param success boolean specifying whether MO SMS is successfully sent or not. */ public void onSendSmsDone(int subId, long messageId, boolean success) { public void onSendSmsDone(int subId, long messageId, boolean isLastSmsPart, boolean success) { SomeArgs args = SomeArgs.obtain(); args.arg1 = subId; args.arg2 = messageId; args.arg3 = success; args.arg3 = isLastSmsPart; args.arg4 = success; sendMessage(obtainMessage(EVENT_SEND_SMS_DONE, args)); } Loading Loading @@ -1228,7 +1231,8 @@ public class DatagramDispatcher extends Handler { pendingSmsMap.clear(); } private void handleEventSendSmsDone(int subId, long messageId, boolean success) { private void handleEventSendSmsDone( int subId, long messageId, boolean isLastPartSms, boolean success) { synchronized (mLock) { mSendingInProgress = false; PendingRequest pendingSms = mPendingSmsMap.remove(messageId); Loading @@ -1236,12 +1240,16 @@ public class DatagramDispatcher extends Handler { ? DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS : DATAGRAM_TYPE_SMS; plogd("handleEventSendSmsDone subId=" + subId + " messageId=" + messageId + " success=" + success); + " isLastPartSms=" + isLastPartSms + " success=" + success + " datagramType=" + datagramType); if (success) { // Update send status for current datagram if (isLastPartSms) { // Update send status only after all parts of the SMS are sent mDatagramController.updateSendStatus(subId, datagramType, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS, getPendingMessagesCount(), SATELLITE_RESULT_SUCCESS); } if (datagramType == DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS) { startMtSmsPollingThrottle(); } Loading tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java +8 −4 Original line number Diff line number Diff line Loading @@ -824,7 +824,8 @@ public class DatagramDispatcherTest extends TelephonyTest { eq(SATELLITE_RESULT_SUCCESS)); verify(mMockSmsDispatchersController).sendCarrierRoamingNbIotNtnText(eq(mPendingSms)); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, true); processAllMessages(); mInOrder.verify(mMockDatagramController) Loading Loading @@ -858,7 +859,8 @@ public class DatagramDispatcherTest extends TelephonyTest { eq(SATELLITE_RESULT_SUCCESS)); verify(mMockSmsDispatchersController).sendCarrierRoamingNbIotNtnText(eq(mPendingSms)); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, false); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, false); processAllMessages(); mInOrder.verify(mMockDatagramController) Loading Loading @@ -1056,7 +1058,8 @@ public class DatagramDispatcherTest extends TelephonyTest { eq(SATELLITE_RESULT_SUCCESS)); verify(mMockSmsDispatchersController).sendCarrierRoamingNbIotNtnText(eq(mPendingSms)); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, true); processAllMessages(); mInOrder.verify(mMockDatagramController) Loading Loading @@ -1107,7 +1110,8 @@ public class DatagramDispatcherTest extends TelephonyTest { processAllMessages(); verifyZeroInteractions(mMockSatelliteModemInterface); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, true); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateSendStatus(eq(SUB_ID), eq(datagramTypeSms), Loading Loading
src/java/com/android/internal/telephony/SmsDispatchersController.java +5 −3 Original line number Diff line number Diff line Loading @@ -1234,7 +1234,7 @@ public class SmsDispatchersController extends Handler { boolean isOverIms, boolean isLastSmsPart, boolean success) { notifySmsSentToEmergencyStateTracker(tracker.mDestAddress, tracker.mMessageId, isOverIms, isLastSmsPart, success); notifySmsSentToDatagramDispatcher(tracker.mUniqueMessageId, success); notifySmsSentToDatagramDispatcher(tracker.mUniqueMessageId, isLastSmsPart, success); } /** Loading @@ -1254,9 +1254,11 @@ public class SmsDispatchersController extends Handler { } } private void notifySmsSentToDatagramDispatcher(long messageId, boolean success) { private void notifySmsSentToDatagramDispatcher( long messageId, boolean isLastSmsPart, boolean success) { if (SatelliteController.getInstance().shouldSendSmsToDatagramDispatcher(mPhone)) { DatagramDispatcher.getInstance().onSendSmsDone(mPhone.getSubId(), messageId, success); DatagramDispatcher.getInstance().onSendSmsDone( mPhone.getSubId(), messageId, isLastSmsPart, success); } } Loading
src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +18 −10 Original line number Diff line number Diff line Loading @@ -406,9 +406,10 @@ public class DatagramDispatcher extends Handler { SomeArgs args = (SomeArgs) msg.obj; int subId = (int) args.arg1; long messageId = (long) args.arg2; boolean success = (boolean) args.arg3; boolean isLastPartSms = (boolean) args.arg3; boolean success = (boolean) args.arg4; try { handleEventSendSmsDone(subId, messageId, success); handleEventSendSmsDone(subId, messageId, isLastPartSms, success); } finally { args.recycle(); } Loading Loading @@ -1181,13 +1182,15 @@ public class DatagramDispatcher extends Handler { * Sending MO SMS is completed. * @param subId subscription ID * @param messageId message ID of MO SMS * @param isLastSmsPart whether this is the last sms part of MO SMS * @param success boolean specifying whether MO SMS is successfully sent or not. */ public void onSendSmsDone(int subId, long messageId, boolean success) { public void onSendSmsDone(int subId, long messageId, boolean isLastSmsPart, boolean success) { SomeArgs args = SomeArgs.obtain(); args.arg1 = subId; args.arg2 = messageId; args.arg3 = success; args.arg3 = isLastSmsPart; args.arg4 = success; sendMessage(obtainMessage(EVENT_SEND_SMS_DONE, args)); } Loading Loading @@ -1228,7 +1231,8 @@ public class DatagramDispatcher extends Handler { pendingSmsMap.clear(); } private void handleEventSendSmsDone(int subId, long messageId, boolean success) { private void handleEventSendSmsDone( int subId, long messageId, boolean isLastPartSms, boolean success) { synchronized (mLock) { mSendingInProgress = false; PendingRequest pendingSms = mPendingSmsMap.remove(messageId); Loading @@ -1236,12 +1240,16 @@ public class DatagramDispatcher extends Handler { ? DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS : DATAGRAM_TYPE_SMS; plogd("handleEventSendSmsDone subId=" + subId + " messageId=" + messageId + " success=" + success); + " isLastPartSms=" + isLastPartSms + " success=" + success + " datagramType=" + datagramType); if (success) { // Update send status for current datagram if (isLastPartSms) { // Update send status only after all parts of the SMS are sent mDatagramController.updateSendStatus(subId, datagramType, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS, getPendingMessagesCount(), SATELLITE_RESULT_SUCCESS); } if (datagramType == DATAGRAM_TYPE_CHECK_PENDING_INCOMING_SMS) { startMtSmsPollingThrottle(); } Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java +8 −4 Original line number Diff line number Diff line Loading @@ -824,7 +824,8 @@ public class DatagramDispatcherTest extends TelephonyTest { eq(SATELLITE_RESULT_SUCCESS)); verify(mMockSmsDispatchersController).sendCarrierRoamingNbIotNtnText(eq(mPendingSms)); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, true); processAllMessages(); mInOrder.verify(mMockDatagramController) Loading Loading @@ -858,7 +859,8 @@ public class DatagramDispatcherTest extends TelephonyTest { eq(SATELLITE_RESULT_SUCCESS)); verify(mMockSmsDispatchersController).sendCarrierRoamingNbIotNtnText(eq(mPendingSms)); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, false); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, false); processAllMessages(); mInOrder.verify(mMockDatagramController) Loading Loading @@ -1056,7 +1058,8 @@ public class DatagramDispatcherTest extends TelephonyTest { eq(SATELLITE_RESULT_SUCCESS)); verify(mMockSmsDispatchersController).sendCarrierRoamingNbIotNtnText(eq(mPendingSms)); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, true); processAllMessages(); mInOrder.verify(mMockDatagramController) Loading Loading @@ -1107,7 +1110,8 @@ public class DatagramDispatcherTest extends TelephonyTest { processAllMessages(); verifyZeroInteractions(mMockSatelliteModemInterface); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true); mDatagramDispatcherUT.onSendSmsDone(mPhone.getSubId(), mPendingSms.uniqueMessageId, true, true); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateSendStatus(eq(SUB_ID), eq(datagramTypeSms), Loading