diff --git a/WordPress/src/main/java/org/wordpress/android/GCMMessageService.java b/WordPress/src/main/java/org/wordpress/android/GCMMessageService.java index 45654b5cda6c..4af9c4ad6866 100644 --- a/WordPress/src/main/java/org/wordpress/android/GCMMessageService.java +++ b/WordPress/src/main/java/org/wordpress/android/GCMMessageService.java @@ -67,6 +67,7 @@ public class GCMMessageService extends GcmListenerService { private static final String PUSH_TYPE_FOLLOW = "follow"; private static final String PUSH_TYPE_REBLOG = "reblog"; private static final String PUSH_TYPE_PUSH_AUTH = "push_auth"; + private static final String PUSH_TYPE_BADGE_RESET = "badge-reset"; // Add to the analytics properties map a subset of the push notification payload. private static String[] propertiesToCopyIntoAnalytics = {PUSH_ARG_NOTE_ID, PUSH_ARG_TYPE, "blog_id", "post_id", @@ -99,6 +100,10 @@ private void handleDefaultPush(String from, @NonNull Bundle data) { return; } + if (noteType.equals(PUSH_TYPE_BADGE_RESET)) { + handleBadgeResetPN(); + return; + } String title = StringEscapeUtils.unescapeHtml(data.getString(PUSH_ARG_TITLE)); if (title == null) { @@ -329,6 +334,12 @@ private void showNotificationForBuilder(NotificationCompat.Builder builder, Cont notificationManager.notify(notificationId, builder.build()); } + // Clear all notifications + private void handleBadgeResetPN() { + removeAllNotifications(this); + EventBus.getDefault().post(new NotificationEvents.NotificationsChanged()); + } + // Show a notification for two-step auth users who sign in from a web browser private void handlePushAuth(String from, Bundle data) { if (data == null) {