diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/HidingLinearLayout.java b/app/src/main/java/org/thoughtcrime/securesms/components/HidingLinearLayout.java index 8f24938d85..3e6db12e0c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/HidingLinearLayout.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/HidingLinearLayout.java @@ -1,8 +1,6 @@ package org.thoughtcrime.securesms.components; -import android.annotation.TargetApi; import android.content.Context; -import android.os.Build; import android.util.AttributeSet; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; @@ -26,9 +24,14 @@ public class HidingLinearLayout extends LinearLayout { super(context, attrs, defStyleAttr); } - public void hide() { + public void hide(boolean shouldAnimate) { if (!isEnabled() || getVisibility() == GONE) return; + if (!shouldAnimate) { + setVisibility(GONE); + return; + } + AnimationSet animation = new AnimationSet(true); animation.addAnimation(new ScaleAnimation(1, 0.5f, 1, 1, Animation.RELATIVE_TO_SELF, 1f, Animation.RELATIVE_TO_SELF, 0.5f)); animation.addAnimation(new AlphaAnimation(1, 0)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java index 9d2ab1dc80..8a05a40645 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java @@ -425,8 +425,9 @@ public class InputPanel extends ConstraintLayout } public void enterEditMessageMode(@NonNull RequestManager requestManager, @NonNull ConversationMessage conversationMessageToEdit, boolean fromDraft, boolean clearQuote) { - int originalHeight = composeTextContainer.getMeasuredHeight(); - SpannableString textToEdit = conversationMessageToEdit.getDisplayBody(getContext()); + boolean fromEditMessageMode = inEditMessageMode(); + int originalHeight = composeTextContainer.getMeasuredHeight(); + SpannableString textToEdit = conversationMessageToEdit.getDisplayBody(getContext()); if (!fromDraft) { MessageStyler.convertSpoilersToComposeMode(textToEdit); @@ -442,15 +443,20 @@ public class InputPanel extends ConstraintLayout } this.messageToEdit = conversationMessageToEdit.getMessageRecord(); + + updateEditModeUi(); updateEditModeThumbnail(requestManager); - int maxWidth = composeContainer.getWidth(); - if (composeContainer.getLayoutParams() instanceof MarginLayoutParams) { - MarginLayoutParams layoutParams = (MarginLayoutParams) composeContainer.getLayoutParams(); - maxWidth -= layoutParams.leftMargin + layoutParams.rightMargin; + int maxWidth = composeContainer.getWidth() - mediaKeyboard.getWidth(); + if (!fromEditMessageMode) { + maxWidth -= editMessageCancel.getWidth(); + if (editMessageCancel.getLayoutParams() instanceof MarginLayoutParams) { + MarginLayoutParams layoutParams = (MarginLayoutParams) editMessageCancel.getLayoutParams(); + maxWidth -= layoutParams.leftMargin; + } } composeTextContainer.measure(MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.AT_MOST), MeasureSpec.UNSPECIFIED); - int finalHeight = (inEditMessageMode()) ? composeTextContainer.getMeasuredHeight() : composeTextContainer.getMeasuredHeight() + editMessageTitle.getMeasuredHeight(); + int finalHeight = composeTextContainer.getMeasuredHeight(); if (editMessageAnimator != null) { editMessageAnimator.cancel(); @@ -461,7 +467,6 @@ public class InputPanel extends ConstraintLayout ViewGroup.LayoutParams params = composeTextContainer.getLayoutParams(); params.height = ViewGroup.LayoutParams.WRAP_CONTENT; composeTextContainer.setLayoutParams(params); - updateEditModeUi(); } }); editMessageAnimator.start(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index da20e212b8..b65190eb52 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -1746,35 +1746,35 @@ class ConversationFragment : inputPanel.isRecordingInLockedMode -> { buttonToggle.display(sendButton) quickAttachment.show() - inlineAttachment.hide() + inlineAttachment.hide(true) } inputPanel.inEditMessageMode() -> { buttonToggle.display(sendEditButton) - quickAttachment.hide() - inlineAttachment.hide() + quickAttachment.hide(false) + inlineAttachment.hide(false) } draftViewModel.voiceNoteDraft != null -> { buttonToggle.display(sendButton) - quickAttachment.hide() - inlineAttachment.hide() + quickAttachment.hide(true) + inlineAttachment.hide(true) } composeText.text.isNullOrBlank() && !attachmentManager.isAttachmentPresent -> { buttonToggle.display(binding.conversationInputPanel.attachButton) quickAttachment.show() - inlineAttachment.hide() + inlineAttachment.hide(true) } else -> { buttonToggle.display(sendButton) - quickAttachment.hide() + quickAttachment.hide(true) if (!attachmentManager.isAttachmentPresent && !linkPreviewViewModel.hasLinkPreviewUi) { inlineAttachment.show() } else { - inlineAttachment.hide() + inlineAttachment.hide(true) } } }