diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionState.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionState.kt index eb5e862c1..0e2982748 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionState.kt @@ -24,7 +24,8 @@ data class MediaSelectionState( val editorStateMap: Map = mapOf(), val cameraFirstCapture: Media? = null, val isStory: Boolean, - val storySendRequirements: Stories.MediaTransform.SendRequirements = Stories.MediaTransform.SendRequirements.CAN_NOT_SEND + val storySendRequirements: Stories.MediaTransform.SendRequirements = Stories.MediaTransform.SendRequirements.CAN_NOT_SEND, + val suppressEmptyError: Boolean = true ) { val maxSelection = if (sendType.usesSmsTransport) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt index 9f1dbca06..d5473603a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionViewModel.kt @@ -140,6 +140,10 @@ class MediaSelectionViewModel( store.update { it.copy(isTouchEnabled = isEnabled) } } + fun setSuppressEmptyError(isSuppressed: Boolean) { + store.update { it.copy(suppressEmptyError = isSuppressed) } + } + fun addMedia(media: Media) { addMedia(listOf(media)) } @@ -230,10 +234,6 @@ class MediaSelectionViewModel( } fun removeMedia(media: Media) { - removeMedia(media, false) - } - - private fun removeMedia(media: Media, suppressEmptyError: Boolean) { val snapshot = store.state val newMediaList = snapshot.selectedMedia - media val oldFocusIndex = snapshot.selectedMedia.indexOf(media) @@ -252,7 +252,7 @@ class MediaSelectionViewModel( ) } - if (newMediaList.isEmpty() && !suppressEmptyError) { + if (newMediaList.isEmpty() && !store.state.suppressEmptyError) { mediaErrors.onNext(MediaValidator.FilterError.NoItems()) } @@ -272,7 +272,8 @@ class MediaSelectionViewModel( fun removeCameraFirstCapture() { val cameraFirstCapture: Media? = store.state.cameraFirstCapture if (cameraFirstCapture != null) { - removeMedia(cameraFirstCapture, true) + setSuppressEmptyError(true) + removeMedia(cameraFirstCapture) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt index 47589bf61..31824020f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaSelectionGalleryFragment.kt @@ -37,6 +37,8 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med ) override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + val isFirst = arguments?.getBoolean("first") ?: false + sharedViewModel.setSuppressEmptyError(isFirst) mediaGalleryFragment = ensureMediaGalleryFragment() mediaGalleryFragment.bindSelectedMediaItemDragHelper(ItemTouchHelper(MediaSelectionItemTouchHelper(sharedViewModel)))