diff options
| -rw-r--r-- | core/java/android/app/NotificationChannel.java | 12 | ||||
| -rw-r--r-- | services/tests/notification/src/com/android/server/notification/NotificationChannelTest.java | 17 |
2 files changed, 23 insertions, 6 deletions
diff --git a/core/java/android/app/NotificationChannel.java b/core/java/android/app/NotificationChannel.java index 143d147ab4e7..d6e36914ac6c 100644 --- a/core/java/android/app/NotificationChannel.java +++ b/core/java/android/app/NotificationChannel.java @@ -15,11 +15,6 @@ */ package android.app; -import org.json.JSONException; -import org.json.JSONObject; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlSerializer; - import android.annotation.SystemApi; import android.app.NotificationManager.Importance; import android.content.Intent; @@ -31,6 +26,11 @@ import android.provider.Settings; import android.service.notification.NotificationListenerService; import android.text.TextUtils; +import org.json.JSONException; +import org.json.JSONObject; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlSerializer; + import java.io.IOException; import java.util.Arrays; @@ -743,7 +743,7 @@ public final class NotificationChannel implements Parcelable { private static String longArrayToString(long[] values) { StringBuffer sb = new StringBuffer(); - if (values != null) { + if (values != null && values.length > 0) { for (int i = 0; i < values.length - 1; i++) { sb.append(values[i]).append(DELIMITER); } diff --git a/services/tests/notification/src/com/android/server/notification/NotificationChannelTest.java b/services/tests/notification/src/com/android/server/notification/NotificationChannelTest.java index 3007cb1755e2..f457f6a550c1 100644 --- a/services/tests/notification/src/com/android/server/notification/NotificationChannelTest.java +++ b/services/tests/notification/src/com/android/server/notification/NotificationChannelTest.java @@ -25,8 +25,14 @@ import android.os.Parcel; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; +import com.android.internal.util.FastXmlSerializer; + import org.junit.Test; import org.junit.runner.RunWith; +import org.xmlpull.v1.XmlSerializer; + +import java.io.BufferedOutputStream; +import java.io.ByteArrayOutputStream; @SmallTest @RunWith(AndroidJUnit4.class) @@ -50,4 +56,15 @@ public class NotificationChannelTest extends NotificationTestCase { channel.setBlockableSystem(true); assertEquals(true, channel.isBlockableSystem()); } + + @Test + public void testEmptyVibration_noException() throws Exception { + NotificationChannel channel = new NotificationChannel("a", "ab", IMPORTANCE_DEFAULT); + channel.setVibrationPattern(new long[0]); + + XmlSerializer serializer = new FastXmlSerializer(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + serializer.setOutput(new BufferedOutputStream(baos), "utf-8"); + channel.writeXml(serializer); + } } |