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

Commit 227d47f9 authored by allenwtsu's avatar allenwtsu
Browse files

[RCS]Add getEncodedMessage() in SipMessage.java

Test: atest
Bug: 177889282
Change-Id: Ib4b2da5b8c8bab490f00d87b785e87a74a2f6dfc
parent 2f9749cd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11781,6 +11781,7 @@ package android.telephony.ims {
    ctor public SipMessage(@NonNull String, @NonNull String, @NonNull byte[]);
    method public int describeContents();
    method @NonNull public byte[] getContent();
    method @NonNull public byte[] getEncodedMessage();
    method @NonNull public String getHeaderSection();
    method @NonNull public String getStartLine();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
+18 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.telephony.ims;

import static java.nio.charset.StandardCharsets.UTF_8;

import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Build;
@@ -39,6 +41,7 @@ import java.util.Objects;
public final class SipMessage implements Parcelable {
    // Should not be set to true for production!
    private static final boolean IS_DEBUGGING = Build.IS_ENG;
    private static final String CRLF = "\r\n";

    private final String mStartLine;
    private final String mHeaderSection;
@@ -165,4 +168,19 @@ public final class SipMessage implements Parcelable {
        result = 31 * result + Arrays.hashCode(mContent);
        return result;
    }

    /**
     * @return the UTF-8 encoded SIP message.
     */
    public @NonNull byte[] getEncodedMessage() {
        byte[] header = new StringBuilder()
                .append(mStartLine)
                .append(mHeaderSection)
                .append(CRLF)
                .toString().getBytes(UTF_8);
        byte[] sipMessage = new byte[header.length + mContent.length];
        System.arraycopy(header, 0, sipMessage, 0, header.length);
        System.arraycopy(mContent, 0, sipMessage, header.length, mContent.length);
        return sipMessage;
    }
}