X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FGetNotificationsAjaxPage.java;h=00e726dff31aaeb1d415d9c926b13477d3e0b531;hb=b4f26039d20f9eb92393b808108bdfcbf0964003;hp=de2f8f89612f02d56a1e9b19a6a6c1190612f472;hpb=1c8d22496d1b1c26502d0adf2daab1605fa6e7fc;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationsAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationsAjaxPage.java index de2f8f8..00e726d 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationsAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationsAjaxPage.java @@ -20,6 +20,7 @@ package net.pterodactylus.sone.web.ajax; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Set; import net.pterodactylus.sone.web.WebInterface; import net.pterodactylus.util.json.JsonArray; @@ -52,19 +53,18 @@ public class GetNotificationsAjaxPage extends JsonPage { @Override protected JsonObject createJsonObject(Request request) { List notifications = new ArrayList(webInterface.getNotifications().getChangedNotifications()); + Set removedNotifications = webInterface.getNotifications().getRemovedNotifications(); Collections.sort(notifications, Notification.LAST_UPDATED_TIME_SORTER); JsonObject result = createSuccessJsonObject(); JsonArray jsonNotifications = new JsonArray(); for (Notification notification : notifications) { - JsonObject jsonNotification = new JsonObject(); - jsonNotification.put("id", notification.getId()); - jsonNotification.put("text", notification.toString()); - jsonNotification.put("createdTime", notification.getCreatedTime()); - jsonNotification.put("lastUpdatedTime", notification.getLastUpdatedTime()); - jsonNotification.put("dismissable", notification.isDismissable()); - jsonNotifications.add(jsonNotification); + jsonNotifications.add(createJsonNotification(notification)); } - return result.put("notifications", jsonNotifications); + JsonArray jsonRemovedNotifications = new JsonArray(); + for (Notification notification : removedNotifications) { + jsonRemovedNotifications.add(createJsonNotification(notification)); + } + return result.put("notifications", jsonNotifications).put("removedNotifications", jsonRemovedNotifications); } /** @@ -75,4 +75,25 @@ public class GetNotificationsAjaxPage extends JsonPage { return false; } + // + // PRIVATE METHODS + // + + /** + * Creates a JSON object from the given notification. + * + * @param notification + * The notification to create a JSON object + * @return The JSON object + */ + private static JsonObject createJsonNotification(Notification notification) { + JsonObject jsonNotification = new JsonObject(); + jsonNotification.put("id", notification.getId()); + jsonNotification.put("text", notification.toString()); + jsonNotification.put("createdTime", notification.getCreatedTime()); + jsonNotification.put("lastUpdatedTime", notification.getLastUpdatedTime()); + jsonNotification.put("dismissable", notification.isDismissable()); + return jsonNotification; + } + }