Fix empty media send illegal state exception.

This commit is contained in:
Cody Henthorne 2021-12-17 17:03:41 -05:00 committed by Greyson Parrelli
parent 90d4069d0a
commit e0e25da6a9
3 changed files with 8 additions and 7 deletions

View file

@ -30,6 +30,8 @@ data class MediaSelectionState(
MediaSendConstants.MAX_PUSH
}
val canSend = !isSent && selectedMedia.isNotEmpty()
enum class ViewOnceToggleState(val code: Int) {
INFINITE(0),
ONCE(1);

View file

@ -17,15 +17,15 @@ object MediaReviewAnimatorController {
return ObjectAnimator.ofFloat(view, "translationY", view.translationX, ViewUtil.dpToPx(48).toFloat())
}
fun getFadeInAnimator(view: View): Animator {
fun getFadeInAnimator(view: View, isEnabled: Boolean = true): Animator {
view.visible = true
view.isEnabled = true
view.isEnabled = isEnabled
return ObjectAnimator.ofFloat(view, "alpha", view.alpha, 1f)
}
fun getFadeOutAnimator(view: View): Animator {
view.isEnabled = false
fun getFadeOutAnimator(view: View, isEnabled: Boolean = false): Animator {
view.isEnabled = isEnabled
val animator = ObjectAnimator.ofFloat(view, "alpha", view.alpha, 0f)

View file

@ -199,7 +199,6 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
presentImageQualityToggle(state.quality)
viewOnceButton.displayedChild = if (state.viewOnceToggleState == MediaSelectionState.ViewOnceToggleState.ONCE) 1 else 0
sendButton.isEnabled = !state.isSent && state.selectedMedia.isNotEmpty()
computeViewStateAndAnimate(state)
}
@ -396,11 +395,11 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
return slideIn + if (state.isTouchEnabled) {
listOf(
MediaReviewAnimatorController.getFadeInAnimator(sendButton),
MediaReviewAnimatorController.getFadeInAnimator(sendButton, state.canSend),
)
} else {
listOf(
MediaReviewAnimatorController.getFadeOutAnimator(sendButton),
MediaReviewAnimatorController.getFadeOutAnimator(sendButton, state.canSend),
)
}
}