Loading src/java/com/android/internal/telephony/ImsSmsDispatcher.java +2 −2 Original line number Diff line number Diff line Loading @@ -405,12 +405,12 @@ 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()); fallbackToPstn(token, 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 @@ -1643,13 +1643,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 @@ -1665,7 +1682,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 @@ -3521,7 +3538,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 @@ -3547,7 +3565,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 @@ -4072,7 +4090,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 @@ -4101,7 +4119,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 @@ -5599,9 +5617,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 @@ -2157,7 +2157,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 @@ -514,7 +514,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 @@ -39,11 +39,18 @@ public class SmsResponse { @UnsupportedAppUsage 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 @@ -51,6 +58,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 @@ -405,12 +405,12 @@ 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()); fallbackToPstn(token, 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 @@ -1643,13 +1643,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 @@ -1665,7 +1682,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 @@ -3521,7 +3538,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 @@ -3547,7 +3565,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 @@ -4072,7 +4090,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 @@ -4101,7 +4119,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 @@ -5599,9 +5617,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 @@ -2157,7 +2157,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 @@ -514,7 +514,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 @@ -39,11 +39,18 @@ public class SmsResponse { @UnsupportedAppUsage 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 @@ -51,6 +58,7 @@ public class SmsResponse { String ret = "{ mMessageRef = " + mMessageRef + ", mErrorCode = " + mErrorCode + ", mAckPdu = " + mAckPdu + ", mMessageId = " + mMessageId + "}"; return ret; } Loading