mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Display error when initial attachment selection is too large.
This commit is contained in:
@@ -75,7 +75,7 @@ class MediaSelectionViewModel(
|
||||
|
||||
private val internalHudCommands = PublishSubject.create<HudCommand>()
|
||||
|
||||
val mediaErrors: PublishSubject<MediaValidator.FilterError> = PublishSubject.create()
|
||||
val mediaErrors: BehaviorSubject<MediaValidator.FilterError> = BehaviorSubject.createDefault(MediaValidator.FilterError.None)
|
||||
val hudCommands: Observable<HudCommand> = 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<Media> = savedInstanceState.getParcelableArrayListCompat(STATE_SELECTION, Media::class.java) ?: emptyList()
|
||||
val focused: Media? = savedInstanceState.getParcelableCompat(STATE_FOCUSED, Media::class.java)
|
||||
|
||||
@@ -83,5 +83,6 @@ object MediaValidator {
|
||||
require(cause !is NoItems)
|
||||
}
|
||||
}
|
||||
object None : FilterError()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user