diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt index 48ffc0879..f17a87ebc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt @@ -146,7 +146,7 @@ class StoriesLandingFragment : if (!it.data.isHidden) { handleHideStory(it) } else { - lifecycleDisposable += viewModel.setHideStory(it.data.storyRecipient, it.data.isHidden).subscribe() + lifecycleDisposable += viewModel.setHideStory(it.data.storyRecipient, !it.data.isHidden).subscribe() } }, onShareStory = { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt index e21351621..a363e8fce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt @@ -71,13 +71,13 @@ class StoriesLandingRepository(context: Context) { private fun createStoriesLandingItemData(sender: Recipient, messageRecords: List): Observable { return Observable.create { emitter -> - fun refresh() { + fun refresh(sender: Recipient) { val itemData = StoriesLandingItemData( storyRecipient = sender, storyViewState = getStoryViewState(messageRecords), hasReplies = messageRecords.any { SignalDatabase.mms.getNumberOfStoryReplies(it.id) > 0 }, hasRepliesFromSelf = messageRecords.any { SignalDatabase.mms.hasSelfReplyInStory(it.id) }, - isHidden = Recipient.resolved(messageRecords.first().recipient.id).shouldHideStory(), + isHidden = sender.shouldHideStory(), primaryStory = ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, messageRecords.first()), secondaryStory = messageRecords.drop(1).firstOrNull()?.let { ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, it) @@ -88,15 +88,15 @@ class StoriesLandingRepository(context: Context) { } val newRepliesObserver = DatabaseObserver.Observer { - refresh() + Recipient.live(sender.id).refresh() } val recipientChangedObserver = RecipientForeverObserver { - refresh() + refresh(it) } ApplicationDependencies.getDatabaseObserver().registerConversationObserver(messageRecords.first().threadId, newRepliesObserver) - val liveRecipient = Recipient.live(messageRecords.first().recipient.id) + val liveRecipient = Recipient.live(sender.id) liveRecipient.observeForever(recipientChangedObserver) emitter.setCancellable { @@ -104,7 +104,7 @@ class StoriesLandingRepository(context: Context) { liveRecipient.removeForeverObserver(recipientChangedObserver) } - refresh() + refresh(sender) } }