kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix empty media send illegal state exception.
rodzic
90d4069d0a
commit
e0e25da6a9
|
@ -30,6 +30,8 @@ data class MediaSelectionState(
|
||||||
MediaSendConstants.MAX_PUSH
|
MediaSendConstants.MAX_PUSH
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val canSend = !isSent && selectedMedia.isNotEmpty()
|
||||||
|
|
||||||
enum class ViewOnceToggleState(val code: Int) {
|
enum class ViewOnceToggleState(val code: Int) {
|
||||||
INFINITE(0),
|
INFINITE(0),
|
||||||
ONCE(1);
|
ONCE(1);
|
||||||
|
|
|
@ -17,15 +17,15 @@ object MediaReviewAnimatorController {
|
||||||
return ObjectAnimator.ofFloat(view, "translationY", view.translationX, ViewUtil.dpToPx(48).toFloat())
|
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.visible = true
|
||||||
view.isEnabled = true
|
view.isEnabled = isEnabled
|
||||||
|
|
||||||
return ObjectAnimator.ofFloat(view, "alpha", view.alpha, 1f)
|
return ObjectAnimator.ofFloat(view, "alpha", view.alpha, 1f)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFadeOutAnimator(view: View): Animator {
|
fun getFadeOutAnimator(view: View, isEnabled: Boolean = false): Animator {
|
||||||
view.isEnabled = false
|
view.isEnabled = isEnabled
|
||||||
|
|
||||||
val animator = ObjectAnimator.ofFloat(view, "alpha", view.alpha, 0f)
|
val animator = ObjectAnimator.ofFloat(view, "alpha", view.alpha, 0f)
|
||||||
|
|
||||||
|
|
|
@ -199,7 +199,6 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
|
||||||
presentImageQualityToggle(state.quality)
|
presentImageQualityToggle(state.quality)
|
||||||
|
|
||||||
viewOnceButton.displayedChild = if (state.viewOnceToggleState == MediaSelectionState.ViewOnceToggleState.ONCE) 1 else 0
|
viewOnceButton.displayedChild = if (state.viewOnceToggleState == MediaSelectionState.ViewOnceToggleState.ONCE) 1 else 0
|
||||||
sendButton.isEnabled = !state.isSent && state.selectedMedia.isNotEmpty()
|
|
||||||
|
|
||||||
computeViewStateAndAnimate(state)
|
computeViewStateAndAnimate(state)
|
||||||
}
|
}
|
||||||
|
@ -396,11 +395,11 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
|
||||||
|
|
||||||
return slideIn + if (state.isTouchEnabled) {
|
return slideIn + if (state.isTouchEnabled) {
|
||||||
listOf(
|
listOf(
|
||||||
MediaReviewAnimatorController.getFadeInAnimator(sendButton),
|
MediaReviewAnimatorController.getFadeInAnimator(sendButton, state.canSend),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
listOf(
|
listOf(
|
||||||
MediaReviewAnimatorController.getFadeOutAnimator(sendButton),
|
MediaReviewAnimatorController.getFadeOutAnimator(sendButton, state.canSend),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue