From e480d8974810d97536cfbf6bda69709e6f679ce5 Mon Sep 17 00:00:00 2001 From: Chong Shao Date: Wed, 18 Dec 2019 17:41:22 -0800 Subject: [PATCH 1/4] fix issues in event_time timestamp conversion --- .../com/google/firebase/messaging/AndroidNotification.java | 6 ++++-- .../java/com/google/firebase/messaging/MessageTest.java | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/google/firebase/messaging/AndroidNotification.java b/src/main/java/com/google/firebase/messaging/AndroidNotification.java index 08a872c50..632a6b3ce 100644 --- a/src/main/java/com/google/firebase/messaging/AndroidNotification.java +++ b/src/main/java/com/google/firebase/messaging/AndroidNotification.java @@ -28,6 +28,7 @@ import java.util.Date; import java.util.List; import java.util.Map; +import java.util.TimeZone; import java.util.concurrent.TimeUnit; /** @@ -456,8 +457,9 @@ public Builder setSticky(boolean sticky) { * @return This builder. */ public Builder setEventTimeInMillis(long eventTimeInMillis) { - this.eventTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'") - .format(new Date(eventTimeInMillis)); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'"); + dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + this.eventTime = dateFormat.format(new Date(1546304523123L)); return this; } diff --git a/src/test/java/com/google/firebase/messaging/MessageTest.java b/src/test/java/com/google/firebase/messaging/MessageTest.java index 5c8c3cbbf..5b81070e0 100644 --- a/src/test/java/com/google/firebase/messaging/MessageTest.java +++ b/src/test/java/com/google/firebase/messaging/MessageTest.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.TimeZone; import java.util.concurrent.TimeUnit; import org.junit.Test; @@ -859,15 +860,13 @@ public void testExtendedAndroidNotificationParameters() throws IOException { .put("title", "title") .put("body", "body") .build(); - String eventTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'", Locale.US) - .format(new Date(1546304523123L)); Map androidConfig = ImmutableMap.builder() .put("notification", ImmutableMap.builder() .put("title", "android-title") .put("body", "android-body") .put("ticker", "ticker") .put("sticky", true) - .put("event_time", eventTime) + .put("event_time", "2019-01-01T01:02:03.000000123Z") .put("local_only", true) .put("notification_priority", "PRIORITY_HIGH") .put("vibrate_timings", ImmutableList.of("1s", "1.001000000s")) From cd4c7aab722cd553019aeff9d55a8963cdf1f4d2 Mon Sep 17 00:00:00 2001 From: Chong Shao Date: Wed, 18 Dec 2019 18:27:13 -0800 Subject: [PATCH 2/4] fix the formatting issue in event_time timestamp --- .../java/com/google/firebase/messaging/AndroidNotification.java | 2 +- src/test/java/com/google/firebase/messaging/MessageTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/firebase/messaging/AndroidNotification.java b/src/main/java/com/google/firebase/messaging/AndroidNotification.java index 632a6b3ce..645e8ec22 100644 --- a/src/main/java/com/google/firebase/messaging/AndroidNotification.java +++ b/src/main/java/com/google/firebase/messaging/AndroidNotification.java @@ -457,7 +457,7 @@ public Builder setSticky(boolean sticky) { * @return This builder. */ public Builder setEventTimeInMillis(long eventTimeInMillis) { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'"); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS000000'Z'"); dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); this.eventTime = dateFormat.format(new Date(1546304523123L)); return this; diff --git a/src/test/java/com/google/firebase/messaging/MessageTest.java b/src/test/java/com/google/firebase/messaging/MessageTest.java index 5b81070e0..8046513f3 100644 --- a/src/test/java/com/google/firebase/messaging/MessageTest.java +++ b/src/test/java/com/google/firebase/messaging/MessageTest.java @@ -866,7 +866,7 @@ public void testExtendedAndroidNotificationParameters() throws IOException { .put("body", "android-body") .put("ticker", "ticker") .put("sticky", true) - .put("event_time", "2019-01-01T01:02:03.000000123Z") + .put("event_time", "2019-01-01T01:02:03.123000000Z") .put("local_only", true) .put("notification_priority", "PRIORITY_HIGH") .put("vibrate_timings", ImmutableList.of("1s", "1.001000000s")) From fe12bf2ea266242d22ea00b4a49eb28d28bb1a4b Mon Sep 17 00:00:00 2001 From: Chong Shao Date: Thu, 19 Dec 2019 11:59:34 -0800 Subject: [PATCH 3/4] fix a typo/bug --- .../java/com/google/firebase/messaging/AndroidNotification.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/google/firebase/messaging/AndroidNotification.java b/src/main/java/com/google/firebase/messaging/AndroidNotification.java index 645e8ec22..05e680910 100644 --- a/src/main/java/com/google/firebase/messaging/AndroidNotification.java +++ b/src/main/java/com/google/firebase/messaging/AndroidNotification.java @@ -459,7 +459,7 @@ public Builder setSticky(boolean sticky) { public Builder setEventTimeInMillis(long eventTimeInMillis) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS000000'Z'"); dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); - this.eventTime = dateFormat.format(new Date(1546304523123L)); + this.eventTime = dateFormat.format(new Date(eventTimeInMillis)); return this; } From ba82e2cfb7417d8f796f752f0485496d27da1a99 Mon Sep 17 00:00:00 2001 From: Chong Shao Date: Thu, 19 Dec 2019 12:40:27 -0800 Subject: [PATCH 4/4] remove unecessary dependency --- src/test/java/com/google/firebase/messaging/MessageTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/google/firebase/messaging/MessageTest.java b/src/test/java/com/google/firebase/messaging/MessageTest.java index 8046513f3..778b4f109 100644 --- a/src/test/java/com/google/firebase/messaging/MessageTest.java +++ b/src/test/java/com/google/firebase/messaging/MessageTest.java @@ -35,7 +35,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.TimeZone; import java.util.concurrent.TimeUnit; import org.junit.Test;