Return an optional Sone from the current session.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / ajax / GetNotificationsAjaxPage.java
index a25e665..d86e5a8 100644 (file)
@@ -37,6 +37,7 @@ import net.pterodactylus.util.template.TemplateContext;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Optional;
 
 /**
  * AJAX handler to return all current notifications.
@@ -80,9 +81,9 @@ public class GetNotificationsAjaxPage extends JsonPage {
         */
        @Override
        protected JsonReturnObject createJsonObject(FreenetRequest request) {
-               Sone currentSone = getCurrentSone(request.getToadletContext(), false);
+               Optional<Sone> currentSone = getCurrentSone(request.getToadletContext(), false);
                Collection<Notification> notifications = webInterface.getNotifications().getNotifications();
-               List<Notification> filteredNotifications = ListNotificationFilters.filterNotifications(notifications, currentSone);
+               List<Notification> filteredNotifications = ListNotificationFilters.filterNotifications(notifications, currentSone.orNull());
                Collections.sort(filteredNotifications, Notification.CREATED_TIME_SORTER);
                ArrayNode jsonNotifications = new ArrayNode(instance);
                for (Notification notification : filteredNotifications) {
@@ -144,12 +145,12 @@ public class GetNotificationsAjaxPage extends JsonPage {
         *            The current Sone (may be {@code null})
         * @return The current options
         */
-       private static JsonNode createJsonOptions(Sone currentSone) {
+       private static JsonNode createJsonOptions(Optional<Sone> currentSone) {
                ObjectNode options = new ObjectNode(instance);
-               if (currentSone != null) {
-                       options.put("ShowNotification/NewSones", currentSone.getOptions().isShowNewSoneNotifications());
-                       options.put("ShowNotification/NewPosts", currentSone.getOptions().isShowNewPostNotifications());
-                       options.put("ShowNotification/NewReplies", currentSone.getOptions().isShowNewReplyNotifications());
+               if (currentSone.isPresent()) {
+                       options.put("ShowNotification/NewSones", currentSone.get().getOptions().isShowNewSoneNotifications());
+                       options.put("ShowNotification/NewPosts", currentSone.get().getOptions().isShowNewPostNotifications());
+                       options.put("ShowNotification/NewReplies", currentSone.get().getOptions().isShowNewReplyNotifications());
                }
                return options;
        }