Merge "[RCS]Add getEncodedMessage() in SipMessage.java" am: 725e04e4f1

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1554295

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7bb5a4b7f759804f0c3f9138cdd530638c21058a
This commit is contained in:
Allen Su
2021-01-25 18:44:56 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 0 deletions

View File

@@ -11880,6 +11880,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);

View File

@@ -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;
}
}