From 66699191a05624b8313863775f88e90385a6a816 Mon Sep 17 00:00:00 2001 From: Isabel Martin Date: Mon, 16 Aug 2021 09:32:52 -0700 Subject: [PATCH] NT-2180: Empty state showing when pull to refresh (#1366) --- .../viewmodels/CommentsViewHolderViewModel.kt | 4 +++- .../java/com/kickstarter/viewmodels/CommentsViewModel.kt | 9 +++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/kickstarter/viewmodels/CommentsViewHolderViewModel.kt b/app/src/main/java/com/kickstarter/viewmodels/CommentsViewHolderViewModel.kt index b1e9a2bb6f..4f52efe883 100644 --- a/app/src/main/java/com/kickstarter/viewmodels/CommentsViewHolderViewModel.kt +++ b/app/src/main/java/com/kickstarter/viewmodels/CommentsViewHolderViewModel.kt @@ -145,13 +145,14 @@ interface CommentsViewHolderViewModel { init { - val comment = Observable.merge(this.commentInput.map { it.comment }, postedSuccessfully) + val comment = Observable.merge(this.commentInput.distinctUntilChanged().map { it.comment }, postedSuccessfully) .filter { ObjectUtils.isNotNull(it) } .map { requireNotNull(it) } configureCommentCardWithComment(comment) val commentCardStatus = this.commentInput + .distinctUntilChanged() .filter { ObjectUtils.isNotNull(it) } .map { val commentCardState = cardStatus(it) @@ -173,6 +174,7 @@ interface CommentsViewHolderViewModel { this.internalError .compose(combineLatestPair(commentData)) + .distinctUntilChanged() .compose(bindToLifecycle()) .delay(1, TimeUnit.SECONDS, environment.scheduler()) .subscribe { diff --git a/app/src/main/java/com/kickstarter/viewmodels/CommentsViewModel.kt b/app/src/main/java/com/kickstarter/viewmodels/CommentsViewModel.kt index f14291299d..228a299f0e 100644 --- a/app/src/main/java/com/kickstarter/viewmodels/CommentsViewModel.kt +++ b/app/src/main/java/com/kickstarter/viewmodels/CommentsViewModel.kt @@ -339,7 +339,7 @@ interface CommentsViewModel { .loadWithParams { loadWithProjectOrUpdateComments(Observable.just(it.first), it.second) } - .clearWhenStartingOver(true) + .clearWhenStartingOver(false) .build() apolloPaginate.isFetching() @@ -347,12 +347,9 @@ interface CommentsViewModel { .subscribe(this.isFetchingComments) apolloPaginate.paginatedData() - ?.compose(combineLatestPair(this.isFetchingComments)) - ?.filter { !it.second } - ?.distinctUntilChanged() ?.share() ?.subscribe { - this.commentsList.onNext(it.first) + this.commentsList.onNext(it) } this.internalError @@ -421,7 +418,7 @@ interface CommentsViewModel { .commentCardState(comment.cardStatus()) .commentableId(it.first.commentableId) .build() - } + } ?: emptyList() private fun buildCommentBody(it: Pair>): Comment { return Comment.builder()