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

Commit 4a27a1b6 authored by Brad Ebinger's avatar Brad Ebinger Committed by android-build-merger
Browse files

Merge "Parse SMS locally upon error to get message ref" into pi-dev

am: 2d108c37

Change-Id: I3b75da909f1f07125c5696f7f9e525736732f3c1
parents abd29040 2d108c37
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -207,7 +207,10 @@ public class SmsMessage {
     */
    public static SmsMessage createFromPdu(byte[] pdu, String format) {
        SmsMessageBase wrappedMessage;

        if (pdu == null) {
            Rlog.i(LOG_TAG, "createFromPdu(): pdu is null");
            return null;
        }
        if (SmsConstants.FORMAT_3GPP2.equals(format)) {
            wrappedMessage = com.android.internal.telephony.cdma.SmsMessage.createFromPdu(pdu);
        } else if (SmsConstants.FORMAT_3GPP.equals(format)) {
+11 −1
Original line number Diff line number Diff line
@@ -197,6 +197,9 @@ public class ImsSmsImplBase {
     * platform will deliver the message to the messages database and notify the IMS provider of the
     * result by calling {@link #acknowledgeSms(int, int, int)}.
     *
     * This method must not be called before {@link #onReady()} is called or the call will fail. If
     * the platform is not available, {@link #acknowledgeSms(int, int, int)} will be called with the
     * {@link #DELIVER_STATUS_ERROR_GENERIC} result code.
     * @param token unique token generated by IMS providers that the platform will use to trigger
     *              callbacks for this message.
     * @param format the format of the message. Valid values are {@link SmsMessage#FORMAT_3GPP} and
@@ -213,10 +216,17 @@ public class ImsSmsImplBase {
                mListener.onSmsReceived(token, format, pdu);
            } catch (RemoteException e) {
                Log.e(LOG_TAG, "Can not deliver sms: " + e.getMessage());
                SmsMessage message = SmsMessage.createFromPdu(pdu, format);
                if (message != null && message.mWrappedSmsMessage != null) {
                    acknowledgeSms(token, message.mWrappedSmsMessage.mMessageRef,
                            DELIVER_STATUS_ERROR_GENERIC);
                } else {
                    Log.w(LOG_TAG, "onSmsReceived: Invalid pdu entered.");
                    acknowledgeSms(token, 0, DELIVER_STATUS_ERROR_GENERIC);
                }
            }
        }
    }

    /**
     * This method should be triggered by the IMS providers to pass the result of the sent message