Newer
Older
package org.briarproject.android.blogs;
import android.support.annotation.UiThread;
import org.briarproject.api.blogs.BlogCommentHeader;
import org.briarproject.api.blogs.BlogPostHeader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@UiThread
class BlogCommentItem extends BlogPostItem {
private static final BlogCommentComparator COMPARATOR =
new BlogCommentComparator();
private final BlogPostHeader postHeader;
private final List<BlogCommentHeader> comments = new ArrayList<>();
BlogCommentItem(BlogCommentHeader header) {
super(header, null);
postHeader = collectComments(header);
Collections.sort(comments, COMPARATOR);
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
}
private BlogPostHeader collectComments(BlogPostHeader header) {
if (header instanceof BlogCommentHeader) {
BlogCommentHeader comment = (BlogCommentHeader) header;
if (comment.getComment() != null)
comments.add(comment);
return collectComments(comment.getParent());
} else {
return header;
}
}
public void setBody(String body) {
this.body = body;
}
@Override
public BlogCommentHeader getHeader() {
return (BlogCommentHeader) super.getHeader();
}
@Override
BlogPostHeader getPostHeader() {
return postHeader;
}
List<BlogCommentHeader> getComments() {
return comments;
}
private static class BlogCommentComparator
implements Comparator<BlogCommentHeader> {
@Override
public int compare(BlogCommentHeader h1, BlogCommentHeader h2) {
// re-use same comparator used for blog posts, but reverse it
return BlogPostItem.compare(h2, h1);