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 ce06a0d1d4..168ae2456d 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 @@ -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); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewAnimatorController.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewAnimatorController.kt index 874a95aa5b..0804d3c42c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewAnimatorController.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewAnimatorController.kt @@ -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) 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 e9d886e0bb..873537ee94 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 @@ -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), ) } }