Loading src/java/com/android/internal/telephony/ImsSmsDispatcher.java +2 −2 Original line number Diff line number Diff line Loading @@ -434,13 +434,13 @@ public class ImsSmsDispatcher extends SMSDispatcher { isRetry, pdu); mMetrics.writeImsServiceSendSms(mPhone.getPhoneId(), format, ImsSmsImplBase.SEND_STATUS_OK); ImsSmsImplBase.SEND_STATUS_OK, tracker.mMessageId); } catch (ImsException e) { loge("sendSms failed. Falling back to PSTN. Error: " + e.getMessage()); mTrackers.remove(token); fallbackToPstn(tracker); mMetrics.writeImsServiceSendSms(mPhone.getPhoneId(), format, ImsSmsImplBase.SEND_STATUS_ERROR_FALLBACK); ImsSmsImplBase.SEND_STATUS_ERROR_FALLBACK, tracker.mMessageId); } } Loading src/java/com/android/internal/telephony/RIL.java +26 −8 Original line number Diff line number Diff line Loading @@ -1663,13 +1663,30 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_GSM, SmsSession.Event.Format.SMS_FORMAT_3GPP); SmsSession.Event.Format.SMS_FORMAT_3GPP, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendSMS", e); } } } /** * Extract the outgoing sms messageId from the tracker, if there is one. This is specifically * for SMS related APIs. * @param result the result Message * @return messageId unique identifier or 0 if there is no message id */ public static long getOutgoingSmsMessageId(Message result) { if (result == null || !(result.obj instanceof SMSDispatcher.SmsTracker)) { return 0L; } long messageId = ((SMSDispatcher.SmsTracker) result.obj).mMessageId; if (RILJ_LOGV) { Rlog.d(RILJ_LOG_TAG, "getOutgoingSmsMessageId messageId: " + messageId); } return messageId; } @Override public void sendSMSExpectMore(String smscPdu, String pdu, Message result) { IRadio radioProxy = getRadioProxy(result); Loading @@ -1685,7 +1702,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendSMSExpectMore(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_GSM, SmsSession.Event.Format.SMS_FORMAT_3GPP); SmsSession.Event.Format.SMS_FORMAT_3GPP, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendSMSExpectMore", e); } Loading Loading @@ -3577,7 +3594,8 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy15.sendCdmaSmsExpectMore(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_CDMA, SmsSession.Event.Format.SMS_FORMAT_3GPP2); SmsSession.Event.Format.SMS_FORMAT_3GPP2, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendCdmaSMSExpectMore", e); } Loading @@ -3603,7 +3621,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendCdmaSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_CDMA, SmsSession.Event.Format.SMS_FORMAT_3GPP2); SmsSession.Event.Format.SMS_FORMAT_3GPP2, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendCdmaSms", e); } Loading Loading @@ -4128,7 +4146,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendImsSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_IMS, SmsSession.Event.Format.SMS_FORMAT_3GPP); SmsSession.Event.Format.SMS_FORMAT_3GPP, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendImsGsmSms", e); } Loading Loading @@ -4157,7 +4175,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendImsSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_IMS, SmsSession.Event.Format.SMS_FORMAT_3GPP2); SmsSession.Event.Format.SMS_FORMAT_3GPP2, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendImsCdmaSms", e); } Loading Loading @@ -5624,9 +5642,9 @@ public class RIL extends BaseCommands implements CommandsInterface { } private void processResponseCleanUp(RILRequest rr, RadioResponseInfo responseInfo, Object ret) { if (rr != null) { mMetrics.writeOnRilSolicitedResponse(mPhoneId, rr.mSerial, responseInfo.error, rr.mRequest, ret); if (rr != null) { if (responseInfo.type == RadioResponseType.SOLICITED) { decrementWakeLock(rr); } Loading src/java/com/android/internal/telephony/RadioResponse.java +2 −1 Original line number Diff line number Diff line Loading @@ -2163,7 +2163,8 @@ public class RadioResponse extends IRadioResponse.Stub { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { SmsResponse ret = new SmsResponse(sms.messageRef, sms.ackPDU, sms.errorCode); long messageId = RIL.getOutgoingSmsMessageId(rr.mResult); SmsResponse ret = new SmsResponse(sms.messageRef, sms.ackPDU, sms.errorCode, messageId); if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, ret); } Loading src/java/com/android/internal/telephony/SMSDispatcher.java +2 −1 Original line number Diff line number Diff line Loading @@ -506,7 +506,8 @@ public abstract class SMSDispatcher extends Handler { return; } SmsResponse smsResponse = new SmsResponse(messageRef, null /* ackPdu */, NO_ERROR_CODE); SmsResponse smsResponse = new SmsResponse(messageRef, null /* ackPdu */, NO_ERROR_CODE, tracker.mMessageId); switch (result) { case CarrierMessagingService.SEND_STATUS_OK: Loading src/java/com/android/internal/telephony/SmsResponse.java +9 −1 Original line number Diff line number Diff line Loading @@ -40,11 +40,18 @@ public class SmsResponse { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mErrorCode; public long mMessageId; @UnsupportedAppUsage public SmsResponse(int messageRef, String ackPdu, int errorCode) { this(messageRef, ackPdu, errorCode, /* messageId= */ 0L); } public SmsResponse(int messageRef, String ackPdu, int errorCode, long messageId) { mMessageRef = messageRef; mAckPdu = ackPdu; mErrorCode = errorCode; mMessageId = messageId; } @Override Loading @@ -52,6 +59,7 @@ public class SmsResponse { String ret = "{ mMessageRef = " + mMessageRef + ", mErrorCode = " + mErrorCode + ", mAckPdu = " + mAckPdu + ", mMessageId = " + mMessageId + "}"; return ret; } Loading Loading
src/java/com/android/internal/telephony/ImsSmsDispatcher.java +2 −2 Original line number Diff line number Diff line Loading @@ -434,13 +434,13 @@ public class ImsSmsDispatcher extends SMSDispatcher { isRetry, pdu); mMetrics.writeImsServiceSendSms(mPhone.getPhoneId(), format, ImsSmsImplBase.SEND_STATUS_OK); ImsSmsImplBase.SEND_STATUS_OK, tracker.mMessageId); } catch (ImsException e) { loge("sendSms failed. Falling back to PSTN. Error: " + e.getMessage()); mTrackers.remove(token); fallbackToPstn(tracker); mMetrics.writeImsServiceSendSms(mPhone.getPhoneId(), format, ImsSmsImplBase.SEND_STATUS_ERROR_FALLBACK); ImsSmsImplBase.SEND_STATUS_ERROR_FALLBACK, tracker.mMessageId); } } Loading
src/java/com/android/internal/telephony/RIL.java +26 −8 Original line number Diff line number Diff line Loading @@ -1663,13 +1663,30 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_GSM, SmsSession.Event.Format.SMS_FORMAT_3GPP); SmsSession.Event.Format.SMS_FORMAT_3GPP, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendSMS", e); } } } /** * Extract the outgoing sms messageId from the tracker, if there is one. This is specifically * for SMS related APIs. * @param result the result Message * @return messageId unique identifier or 0 if there is no message id */ public static long getOutgoingSmsMessageId(Message result) { if (result == null || !(result.obj instanceof SMSDispatcher.SmsTracker)) { return 0L; } long messageId = ((SMSDispatcher.SmsTracker) result.obj).mMessageId; if (RILJ_LOGV) { Rlog.d(RILJ_LOG_TAG, "getOutgoingSmsMessageId messageId: " + messageId); } return messageId; } @Override public void sendSMSExpectMore(String smscPdu, String pdu, Message result) { IRadio radioProxy = getRadioProxy(result); Loading @@ -1685,7 +1702,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendSMSExpectMore(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_GSM, SmsSession.Event.Format.SMS_FORMAT_3GPP); SmsSession.Event.Format.SMS_FORMAT_3GPP, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendSMSExpectMore", e); } Loading Loading @@ -3577,7 +3594,8 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy15.sendCdmaSmsExpectMore(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_CDMA, SmsSession.Event.Format.SMS_FORMAT_3GPP2); SmsSession.Event.Format.SMS_FORMAT_3GPP2, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendCdmaSMSExpectMore", e); } Loading @@ -3603,7 +3621,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendCdmaSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_CDMA, SmsSession.Event.Format.SMS_FORMAT_3GPP2); SmsSession.Event.Format.SMS_FORMAT_3GPP2, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendCdmaSms", e); } Loading Loading @@ -4128,7 +4146,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendImsSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_IMS, SmsSession.Event.Format.SMS_FORMAT_3GPP); SmsSession.Event.Format.SMS_FORMAT_3GPP, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendImsGsmSms", e); } Loading Loading @@ -4157,7 +4175,7 @@ public class RIL extends BaseCommands implements CommandsInterface { try { radioProxy.sendImsSms(rr.mSerial, msg); mMetrics.writeRilSendSms(mPhoneId, rr.mSerial, SmsSession.Event.Tech.SMS_IMS, SmsSession.Event.Format.SMS_FORMAT_3GPP2); SmsSession.Event.Format.SMS_FORMAT_3GPP2, getOutgoingSmsMessageId(result)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "sendImsCdmaSms", e); } Loading Loading @@ -5624,9 +5642,9 @@ public class RIL extends BaseCommands implements CommandsInterface { } private void processResponseCleanUp(RILRequest rr, RadioResponseInfo responseInfo, Object ret) { if (rr != null) { mMetrics.writeOnRilSolicitedResponse(mPhoneId, rr.mSerial, responseInfo.error, rr.mRequest, ret); if (rr != null) { if (responseInfo.type == RadioResponseType.SOLICITED) { decrementWakeLock(rr); } Loading
src/java/com/android/internal/telephony/RadioResponse.java +2 −1 Original line number Diff line number Diff line Loading @@ -2163,7 +2163,8 @@ public class RadioResponse extends IRadioResponse.Stub { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { SmsResponse ret = new SmsResponse(sms.messageRef, sms.ackPDU, sms.errorCode); long messageId = RIL.getOutgoingSmsMessageId(rr.mResult); SmsResponse ret = new SmsResponse(sms.messageRef, sms.ackPDU, sms.errorCode, messageId); if (responseInfo.error == RadioError.NONE) { sendMessageResponse(rr.mResult, ret); } Loading
src/java/com/android/internal/telephony/SMSDispatcher.java +2 −1 Original line number Diff line number Diff line Loading @@ -506,7 +506,8 @@ public abstract class SMSDispatcher extends Handler { return; } SmsResponse smsResponse = new SmsResponse(messageRef, null /* ackPdu */, NO_ERROR_CODE); SmsResponse smsResponse = new SmsResponse(messageRef, null /* ackPdu */, NO_ERROR_CODE, tracker.mMessageId); switch (result) { case CarrierMessagingService.SEND_STATUS_OK: Loading
src/java/com/android/internal/telephony/SmsResponse.java +9 −1 Original line number Diff line number Diff line Loading @@ -40,11 +40,18 @@ public class SmsResponse { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public int mErrorCode; public long mMessageId; @UnsupportedAppUsage public SmsResponse(int messageRef, String ackPdu, int errorCode) { this(messageRef, ackPdu, errorCode, /* messageId= */ 0L); } public SmsResponse(int messageRef, String ackPdu, int errorCode, long messageId) { mMessageRef = messageRef; mAckPdu = ackPdu; mErrorCode = errorCode; mMessageId = messageId; } @Override Loading @@ -52,6 +59,7 @@ public class SmsResponse { String ret = "{ mMessageRef = " + mMessageRef + ", mErrorCode = " + mErrorCode + ", mAckPdu = " + mAckPdu + ", mMessageId = " + mMessageId + "}"; return ret; } Loading