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