diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt index f87b267dcf..d4fdb78a5e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/dialogs/StoryContextMenu.kt @@ -152,6 +152,7 @@ object StoryContextMenu { anchorView: View, storyViewerPageState: StoryViewerPageState, onHide: (StoryPost) -> Unit, + onUnhide: (StoryPost) -> Unit, onForward: (StoryPost) -> Unit, onShare: (StoryPost) -> Unit, onGoToChat: (StoryPost) -> Unit, @@ -171,7 +172,7 @@ object StoryContextMenu { canHide = !selectedStory.sender.shouldHideStory, callbacks = object : Callbacks { override fun onHide() = onHide(selectedStory) - override fun onUnhide() = throw NotImplementedError() + override fun onUnhide() = onUnhide(selectedStory) override fun onForward() = onForward(selectedStory) override fun onShare() = onShare(selectedStory) override fun onGoToChat() = onGoToChat(selectedStory) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt index c25b3a8821..0ae5e73538 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt @@ -35,6 +35,7 @@ import com.google.android.material.button.MaterialButton import com.google.android.material.card.MaterialCardView import com.google.android.material.progressindicator.CircularProgressIndicatorSpec import com.google.android.material.progressindicator.IndeterminateDrawable +import com.google.android.material.snackbar.Snackbar import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.kotlin.subscribeBy @@ -1159,6 +1160,13 @@ class StoryViewerPageFragment : } } }, + onUnhide = { + lifecycleDisposable += viewModel.unhideStory().subscribe { + Snackbar + .make(requireView(), R.string.StoryViewerPageFragment__story_no_longer_hidden, Snackbar.LENGTH_SHORT) + .show() + } + }, onShare = { StoryContextMenu.share(this, it.conversationMessage.messageRecord as MmsMessageRecord) }, diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt index 0c04bbcd32..13d73d9fd5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt @@ -171,6 +171,12 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat }.subscribeOn(Schedulers.io()) } + fun unhideStory(recipientId: RecipientId): Completable { + return Completable.fromAction { + SignalDatabase.recipients.setHideStory(recipientId, false) + }.subscribeOn(Schedulers.io()) + } + fun markViewed(storyPost: StoryPost) { if (!storyPost.conversationMessage.messageRecord.isOutgoing) { SignalExecutors.SERIAL.execute { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageViewModel.kt index f696747ad6..11f12cc21f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageViewModel.kt @@ -117,6 +117,10 @@ class StoryViewerPageViewModel( return repository.hideStory(args.recipientId) } + fun unhideStory(): Completable { + return repository.unhideStory(args.recipientId).observeOn(AndroidSchedulers.mainThread()) + } + fun markViewed(storyPost: StoryPost) { repository.markViewed(storyPost) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 72dda52c79..3087e4e1a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5986,6 +5986,8 @@ %1$d reply %1$d replies + + Story no longer hidden Add