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 e6aae02ff1..9e993bc6ee 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 @@ -75,7 +75,7 @@ class MediaSelectionViewModel( private val internalHudCommands = PublishSubject.create() - val mediaErrors: PublishSubject = PublishSubject.create() + val mediaErrors: BehaviorSubject = BehaviorSubject.createDefault(MediaValidator.FilterError.None) val hudCommands: Observable = internalHudCommands private val disposables = CompositeDisposable() @@ -421,6 +421,10 @@ class MediaSelectionViewModel( return store.state.selectedMedia.isNotEmpty() } + fun clearMediaErrors() { + mediaErrors.onNext(MediaValidator.FilterError.None) + } + fun onRestoreState(context: Context, savedInstanceState: Bundle) { val selection: List = savedInstanceState.getParcelableArrayListCompat(STATE_SELECTION, Media::class.java) ?: emptyList() val focused: Media? = savedInstanceState.getParcelableCompat(STATE_FOCUSED, Media::class.java) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt index 893266e128..e7cd3a844d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaValidator.kt @@ -83,5 +83,6 @@ object MediaValidator { require(cause !is NoItems) } } + object None : FilterError() } } 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 7439c59371..455856a576 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 @@ -74,6 +74,7 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med private fun handleError(error: MediaValidator.FilterError) { @Exhaustive when (error) { + MediaValidator.FilterError.None -> return MediaValidator.FilterError.ItemTooLarge -> Toast.makeText(requireContext(), R.string.MediaReviewFragment__one_or_more_items_were_too_large, Toast.LENGTH_SHORT).show() MediaValidator.FilterError.ItemInvalidType -> Toast.makeText(requireContext(), R.string.MediaReviewFragment__one_or_more_items_were_invalid, Toast.LENGTH_SHORT).show() MediaValidator.FilterError.TooManyItems -> Toast.makeText(requireContext(), R.string.MediaReviewFragment__too_many_items_selected, Toast.LENGTH_SHORT).show() @@ -83,6 +84,8 @@ class MediaSelectionGalleryFragment : Fragment(R.layout.fragment_container), Med } } } + + sharedViewModel.clearMediaErrors() } private fun ensureMediaGalleryFragment(): MediaGalleryFragment { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt index 78c683ed8d..cb3f5f0d67 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt @@ -317,6 +317,7 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment), Schedul private fun handleMediaValidatorFilterError(error: MediaValidator.FilterError) { @Exhaustive when (error) { + MediaValidator.FilterError.None -> return MediaValidator.FilterError.ItemTooLarge -> Toast.makeText(requireContext(), R.string.MediaReviewFragment__one_or_more_items_were_too_large, Toast.LENGTH_SHORT).show() MediaValidator.FilterError.ItemInvalidType -> Toast.makeText(requireContext(), R.string.MediaReviewFragment__one_or_more_items_were_invalid, Toast.LENGTH_SHORT).show() MediaValidator.FilterError.TooManyItems -> Toast.makeText(requireContext(), R.string.MediaReviewFragment__too_many_items_selected, Toast.LENGTH_SHORT).show() @@ -329,6 +330,8 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment), Schedul callback.onNoMediaSelected() } } + + sharedViewModel.clearMediaErrors() } private fun launchGallery() {