package org.wordpress.android.ui.reader;
import android.support.annotation.NonNull;
import org.wordpress.android.models.ReaderPost;
import org.wordpress.android.models.ReaderTag;
import org.wordpress.android.ui.reader.actions.ReaderActions;
import org.wordpress.android.ui.reader.models.ReaderSimplePostList;
import org.wordpress.android.ui.reader.services.ReaderPostService;
import org.wordpress.android.util.StringUtils;
/**
* Reader-related EventBus event classes
*/
public class ReaderEvents {
private ReaderEvents() {
throw new AssertionError();
}
public static class FollowedTagsChanged {}
public static class RecommendedTagsChanged{}
public static class TagAdded {
private final String mTagName;
public TagAdded(String tagName) {
mTagName = tagName;
}
public String getTagName() {
return StringUtils.notNullStr(mTagName);
}
}
public static class FollowedBlogsChanged {}
public static class RecommendedBlogsChanged {}
public static class SinglePostDownloaded {};
public static class UpdatePostsStarted {
private final ReaderPostService.UpdateAction mAction;
public UpdatePostsStarted(ReaderPostService.UpdateAction action) {
mAction = action;
}
public ReaderPostService.UpdateAction getAction() {
return mAction;
}
}
public static class UpdatePostsEnded {
private final ReaderTag mReaderTag;
private final ReaderActions.UpdateResult mResult;
private final ReaderPostService.UpdateAction mAction;
public UpdatePostsEnded(ReaderActions.UpdateResult result,
ReaderPostService.UpdateAction action) {
mResult = result;
mAction = action;
mReaderTag = null;
}
public UpdatePostsEnded(ReaderTag readerTag,
ReaderActions.UpdateResult result,
ReaderPostService.UpdateAction action) {
mReaderTag = readerTag;
mResult = result;
mAction = action;
}
public ReaderTag getReaderTag() {
return mReaderTag;
}
public ReaderActions.UpdateResult getResult() {
return mResult;
}
public ReaderPostService.UpdateAction getAction() {
return mAction;
}
}
public static class SearchPostsStarted {
private final String mQuery;
private final int mOffset;
public SearchPostsStarted(@NonNull String query, int offset) {
mQuery = query;
mOffset = offset;
}
public String getQuery() {
return mQuery;
}
public int getOffset() {
return mOffset;
}
}
public static class SearchPostsEnded {
private final String mQuery;
private final boolean mDidSucceed;
private final int mOffset;
public SearchPostsEnded(@NonNull String query, int offset, boolean didSucceed) {
mQuery = query;
mOffset = offset;
mDidSucceed = didSucceed;
}
public boolean didSucceed() {
return mDidSucceed;
}
public String getQuery() {
return mQuery;
}
public int getOffset() {
return mOffset;
}
}
public static class UpdateCommentsStarted {}
public static class UpdateCommentsEnded {
private final ReaderActions.UpdateResult mResult;
public UpdateCommentsEnded(ReaderActions.UpdateResult result) {
mResult = result;
}
public ReaderActions.UpdateResult getResult() {
return mResult;
}
}
public static class RelatedPostsUpdated {
private final long mSourcePostId;
private final long mSourceSiteId;
private final ReaderSimplePostList mLocalRelatedPosts;
private final ReaderSimplePostList mGlobalRelatedPosts;
public RelatedPostsUpdated(@NonNull ReaderPost sourcePost,
@NonNull ReaderSimplePostList localRelatedPosts,
@NonNull ReaderSimplePostList globalRelatedPosts) {
mSourcePostId = sourcePost.postId;
mSourceSiteId = sourcePost.blogId;
mLocalRelatedPosts = localRelatedPosts;
mGlobalRelatedPosts = globalRelatedPosts;
}
public long getSourcePostId() {
return mSourcePostId;
}
public long getSourceSiteId() {
return mSourceSiteId;
}
public ReaderSimplePostList getLocalRelatedPosts() {
return mLocalRelatedPosts;
}
public ReaderSimplePostList getGlobalRelatedPosts() {
return mGlobalRelatedPosts;
}
public boolean hasLocalRelatedPosts() {
return mLocalRelatedPosts.size() > 0;
}
public boolean hasGlobalRelatedPosts() {
return mGlobalRelatedPosts.size() > 0;
}
}
public static class PostSlugsRequestCompleted {
private final int mStatusCode;
private final long mBlogId;
private final long mPostId;
public PostSlugsRequestCompleted(int statusCode, long blogId, long postId) {
mStatusCode = statusCode;
mBlogId = blogId;
mPostId = postId;
}
public int getStatusCode() {
return mStatusCode;
}
public long getBlogId() {
return mBlogId;
}
public long getPostId() {
return mPostId;
}
}
public static class DoSignIn {}
}