From 9def1e496b618dff5cb540278351bbf3847789cc Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Fri, 11 Nov 2011 11:28:13 +0100 Subject: [PATCH] Transfer session-specific options to client on each status update. --- .../sone/web/ajax/GetStatusAjaxPage.java | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java index 038cfb8..5f2103a 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java @@ -145,7 +145,7 @@ public class GetStatusAjaxPage extends JsonPage { jsonReply.put("postSone", reply.getPost().getSone().getId()); jsonReplies.add(jsonReply); } - return createSuccessJsonObject().put("loggedIn", currentSone != null).put("sones", jsonSones).put("notifications", jsonNotificationInformations).put("newPosts", jsonPosts).put("newReplies", jsonReplies); + return createSuccessJsonObject().put("loggedIn", currentSone != null).put("options", createJsonOptions(currentSone)).put("sones", jsonSones).put("notifications", jsonNotificationInformations).put("newPosts", jsonPosts).put("newReplies", jsonReplies); } /** @@ -209,4 +209,23 @@ public class GetStatusAjaxPage extends JsonPage { return jsonNotification; } + /** + * Creates a JSON object that contains all options that are currently in + * effect for the given Sone (or overall, if the given Sone is {@code null} + * ). + * + * @param currentSone + * The current Sone (may be {@code null}) + * @return The current options + */ + private JsonObject createJsonOptions(Sone currentSone) { + JsonObject options = new JsonObject(); + if (currentSone != null) { + options.put("ShowNotification/NewSones", currentSone.getOptions().getBooleanOption("ShowNotification/NewSones").get()); + options.put("ShowNotification/NewPosts", currentSone.getOptions().getBooleanOption("ShowNotification/NewPosts").get()); + options.put("ShowNotification/NewReplies", currentSone.getOptions().getBooleanOption("ShowNotification/NewReplies").get()); + } + return options; + } + } -- 2.7.4