diff options
Diffstat (limited to 'src/com/gitblit/client/GitblitRegistration.java')
-rw-r--r-- | src/com/gitblit/client/GitblitRegistration.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/com/gitblit/client/GitblitRegistration.java b/src/com/gitblit/client/GitblitRegistration.java index cbd4324d..05b23d01 100644 --- a/src/com/gitblit/client/GitblitRegistration.java +++ b/src/com/gitblit/client/GitblitRegistration.java @@ -16,9 +16,11 @@ package com.gitblit.client;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import com.gitblit.models.FeedModel;
import com.gitblit.utils.StringUtils;
/**
@@ -37,7 +39,7 @@ public class GitblitRegistration implements Serializable, Comparable<GitblitRegi char[] password;
boolean savePassword;
Date lastLogin;
- List<String> feeds;
+ final List<FeedModel> feeds;
public GitblitRegistration(String name, String url, String account, char[] password) {
this.url = url;
@@ -49,6 +51,24 @@ public class GitblitRegistration implements Serializable, Comparable<GitblitRegi } else {
this.name = name;
}
+ feeds = new ArrayList<FeedModel>();
+ }
+
+ public void updateSubscribedFeeds(List<FeedModel> list) {
+ for (FeedModel feed : list) {
+ if (feeds.contains(feed)) {
+ // possibly unsubscribe/remove feed
+ int index = feeds.indexOf(feed);
+ FeedModel existingFeed = feeds.get(index);
+ existingFeed.subscribed = feed.subscribed;
+ if (!existingFeed.subscribed) {
+ feeds.remove(index);
+ }
+ } else if (feed.subscribed) {
+ // new subscription
+ feeds.add(feed);
+ }
+ }
}
@Override
|