Merge "Change SipMessage API name"

This commit is contained in:
Allen Su
2021-04-07 02:41:42 +00:00
committed by Gerrit Code Review
2 changed files with 26 additions and 1 deletions

View File

@@ -11985,10 +11985,11 @@ package android.telephony.ims {
method public int describeContents();
method @Nullable public String getCallIdParameter();
method @NonNull public byte[] getContent();
method @NonNull public byte[] getEncodedMessage();
method @Deprecated @NonNull public byte[] getEncodedMessage();
method @NonNull public String getHeaderSection();
method @NonNull public String getStartLine();
method @NonNull public String getViaBranchParameter();
method @NonNull public byte[] toEncodedMessage();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.SipMessage> CREATOR;
}

View File

@@ -204,7 +204,9 @@ public final class SipMessage implements Parcelable {
/**
* @return the UTF-8 encoded SIP message.
* @deprecated Use {@link #toEncodedMessage} instead
*/
@Deprecated
public @NonNull byte[] getEncodedMessage() {
byte[] header = new StringBuilder()
.append(mStartLine)
@@ -216,4 +218,26 @@ public final class SipMessage implements Parcelable {
System.arraycopy(mContent, 0, sipMessage, header.length, mContent.length);
return sipMessage;
}
/**
* According RFC-3261 section 7, SIP is a text protocol and uses the UTF-8 charset. Its format
* consists of a start-line, one or more header fields, an empty line indicating the end of the
* header fields, and an optional message-body.
*
* <p>
* Returns a byte array with UTF-8 format representation of the encoded SipMessage.
*
* @return byte array with UTF-8 format representation of the encoded SipMessage.
*/
public @NonNull byte[] toEncodedMessage() {
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;
}
}