@Override public boolean isValid(NotificationContext ctx) { ExoSocialActivity comment = ctx.value(SocialNotificationUtils.ACTIVITY); ExoSocialActivity activity = Utils.getActivityManager().getParentActivity(comment); Identity spaceIdentity = Utils.getIdentityManager() .getOrCreateIdentity(SpaceIdentityProvider.NAME, activity.getStreamOwner(), false); // if the space is not null and it's not the default activity of space, then it's valid to make // notification if (spaceIdentity != null && activity.getPosterId().equals(spaceIdentity.getId())) { return false; } return true; }
@Override public NotificationInfo makeNotification(NotificationContext ctx) { ExoSocialActivity comment = ctx.value(SocialNotificationUtils.ACTIVITY); ExoSocialActivity activity = Utils.getActivityManager().getParentActivity(comment); // Send notification to all others users who have comment on this activity Set<String> receivers = new HashSet<String>(); Utils.sendToCommeters(receivers, activity.getCommentedIds(), comment.getPosterId()); Utils.sendToStreamOwner(receivers, activity.getStreamOwner(), comment.getPosterId()); Utils.sendToActivityPoster(receivers, activity.getPosterId(), comment.getPosterId()); // return NotificationInfo.instance() .to(new ArrayList<String>(receivers)) .with(SocialNotificationUtils.ACTIVITY_ID.getKey(), comment.getId()) .with(SocialNotificationUtils.POSTER.getKey(), Utils.getUserId(comment.getUserId())) .key(getId()); }