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 24451894f6..4c6489a0df 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 @@ -1198,10 +1198,12 @@ class StoryViewerPageFragment : }, onSave = { lifecycleScope.launch { + viewModel.setIsSavingMedia(true) StoryContextMenu.save( host = AttachmentSaver.FragmentHost(this@StoryViewerPageFragment), messageRecord = it.conversationMessage.messageRecord ) + viewModel.setIsSavingMedia(false) } }, onDelete = { 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 76b3e522b7..80defd90bf 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 @@ -299,6 +299,10 @@ class StoryViewerPageViewModel( storyViewerPlaybackStore.update { it.copy(isDisplayingPartialSendDialog = isDisplayingPartialSendDialog) } } + fun setIsSavingMedia(isSavingMedia: Boolean) { + storyViewerPlaybackStore.update { it.copy(isSavingMedia = isSavingMedia) } + } + private fun resolveSwipeToReplyState(state: StoryViewerPageState, index: Int): StoryViewerPageState.ReplyState { if (index !in state.posts.indices) { return StoryViewerPageState.ReplyState.NONE diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPlaybackState.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPlaybackState.kt index 4c0d0d09ed..1b5534dd3f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPlaybackState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPlaybackState.kt @@ -23,7 +23,8 @@ data class StoryViewerPlaybackState( val isUserScrollingChild: Boolean = false, val isUserScaling: Boolean = false, val isDisplayingPartialSendDialog: Boolean = false, - val isDisplayingRecipientBottomSheet: Boolean = false + val isDisplayingRecipientBottomSheet: Boolean = false, + val isSavingMedia: Boolean = false ) { val hideChromeImmediate: Boolean = isRunningSharedElementAnimation || isDisplayingFirstTimeNavigation @@ -53,5 +54,6 @@ data class StoryViewerPlaybackState( isUserScaling || isDisplayingHideDialog || isDisplayingPartialSendDialog || - isDisplayingRecipientBottomSheet + isDisplayingRecipientBottomSheet || + isSavingMedia }