Merge "Fix NPE" into qt-dev

This commit is contained in:
Julia Reynolds
2022-09-22 18:37:39 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 3 deletions

View File

@@ -94,8 +94,11 @@ public final class NotificationChannelGroup implements Parcelable {
} else { } else {
mId = null; mId = null;
} }
mName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); if (in.readByte() != 0) {
mName = getTrimmedString(mName.toString()); mName = getTrimmedString(in.readString());
} else {
mName = "";
}
if (in.readByte() != 0) { if (in.readByte() != 0) {
mDescription = getTrimmedString(in.readString()); mDescription = getTrimmedString(in.readString());
} else { } else {
@@ -121,7 +124,12 @@ public final class NotificationChannelGroup implements Parcelable {
} else { } else {
dest.writeByte((byte) 0); dest.writeByte((byte) 0);
} }
TextUtils.writeToParcel(mName.toString(), dest, flags); if (mName != null) {
dest.writeByte((byte) 1);
dest.writeString(mName.toString());
} else {
dest.writeByte((byte) 0);
}
if (mDescription != null) { if (mDescription != null) {
dest.writeByte((byte) 1); dest.writeByte((byte) 1);
dest.writeString(mDescription); dest.writeString(mDescription);

View File

@@ -17,9 +17,11 @@
package android.app; package android.app;
import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertTrue;
import android.os.Parcel; import android.os.Parcel;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import android.text.TextUtils;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.runner.AndroidJUnit4;
@@ -70,4 +72,18 @@ public class NotificationChannelGroupTest {
assertEquals(NotificationChannelGroup.MAX_TEXT_LENGTH, assertEquals(NotificationChannelGroup.MAX_TEXT_LENGTH,
fromParcel.getDescription().length()); fromParcel.getDescription().length());
} }
@Test
public void testNullableFields() {
NotificationChannelGroup group = new NotificationChannelGroup("my_group_01", null);
Parcel parcel = Parcel.obtain();
group.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
NotificationChannelGroup fromParcel =
NotificationChannelGroup.CREATOR.createFromParcel(parcel);
assertEquals(group.getId(), fromParcel.getId());
assertTrue(TextUtils.isEmpty(fromParcel.getName()));
}
} }