package com.kickstarter.viewmodels.outputs; import android.util.Pair; import com.kickstarter.models.Project; import com.kickstarter.ui.adapters.data.CommentsData; import rx.Observable; public interface CommentsViewModelOutputs { /** * Emits data to display comments. */ Observable<CommentsData> commentsData(); /** * Emits the string that should be displayed in the comment dialog when it is shown. */ Observable<String> currentCommentBody(); /** * Emits when the comment dialog should be dismissed. */ Observable<Void> dismissCommentDialog(); /** * Emits a boolean indicating when the post button should be enabled. */ Observable<Boolean> enablePostButton(); /** * Emits a boolean indicating whether comments are being fetched from the API. */ Observable<Boolean> isFetchingComments(); /** * Emits a boolean that determines if the comment button should be hidden. */ Observable<Boolean> commentButtonHidden(); /** * Emits a project and boolean to determine when the comment dialog should be shown. */ Observable<Pair<Project, Boolean>> showCommentDialog(); /** * Emits when comment posted toast message should be displayed. */ Observable<Void> showCommentPostedToast(); /** * Emits when we should display a post comment error toast. */ Observable<String> showPostCommentErrorToast(); }