From 5a086ff022ddef1a7a8cfca18a3674dc742e8309 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Tue, 23 Jun 2026 19:21:15 +0200 Subject: [PATCH] avoid input_area wrapper --- .../securesms/ConversationActivity.java | 25 +++++++-- .../securesms/mms/AttachmentManager.java | 4 ++ src/main/res/layout/conversation_activity.xml | 51 ++++++++----------- 3 files changed, 47 insertions(+), 33 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java index de0e345ff..2cfee9049 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java @@ -174,7 +174,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity protected ConversationTitleView titleView; private ConversationFragment fragment; private InputAwareLayout container; - private View inputArea; private ScaleStableImageView backgroundView; private MessageRequestsBottomView messageRequestBottomView; private ProgressDialog progressDialog; @@ -1018,7 +1017,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity attachButton = ViewUtil.findById(this, R.id.attach_button); composeText = ViewUtil.findById(this, R.id.embedded_text_editor); emojiPickerContainer = ViewUtil.findById(this, R.id.emoji_picker_container); - inputArea = ViewUtil.findById(this, R.id.input_area); container = ViewUtil.findById(this, R.id.layout_container); quickAttachmentToggle = ViewUtil.findById(this, R.id.quick_attachment_toggle); inputPanel = ViewUtil.findById(this, R.id.bottom_panel); @@ -1143,14 +1141,18 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void setInputPanelVisibility(boolean isInitialization) { if (dcChat.canSend()) { inputPanel.setVisibility(View.VISIBLE); + beforeSearchInputPanelVisibility = View.VISIBLE; attachmentManager.setHidden(false); + beforeSearchAttachmentEditorHidden = false; // FIXME: disabled for now to avoid problems with chat scrolling and keyboard covering input // bar // ViewUtil.forceApplyWindowInsets(findViewById(R.id.root_layout), true, false, true, true); // fragment.handleRemoveBottomInsets(); } else { inputPanel.setVisibility(View.GONE); + beforeSearchInputPanelVisibility = View.GONE; attachmentManager.setHidden(true); + beforeSearchAttachmentEditorHidden = true; hideSoftKeyboard(); // FIXME: disabled for now to avoid problems with chat scrolling and keyboard covering input // bar @@ -1861,6 +1863,10 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity // in-chat search + private boolean beforeSearchAttachmentEditorHidden; + private int beforeSearchMsgRequestVisibility; + private int beforeSearchInputPanelVisibility; + private Menu searchMenu = null; private int[] searchResult = {}; private int searchResultPosition = -1; @@ -1881,13 +1887,22 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void searchExpand(final Menu menu, final MenuItem searchItem) { searchMenu = menu; - inputArea.setVisibility(View.GONE); + + beforeSearchAttachmentEditorHidden = attachmentManager.isHidden(); + beforeSearchMsgRequestVisibility = messageRequestBottomView.getVisibility(); + beforeSearchInputPanelVisibility = inputPanel.getVisibility(); + attachmentManager.setHidden(true); + messageRequestBottomView.setVisibility(View.GONE); + inputPanel.setVisibility(View.GONE); + ConversationActivity.this.makeSearchMenuVisible(menu, searchItem); } private void searchCollapse() { searchMenu = null; - inputArea.setVisibility(View.VISIBLE); + attachmentManager.setHidden(beforeSearchAttachmentEditorHidden); + messageRequestBottomView.setVisibility(beforeSearchMsgRequestVisibility); + inputPanel.setVisibility(beforeSearchInputPanelVisibility); // trigger onPrepareOptionsMenu() to restore correct menu visibility invalidateOptionsMenu(); @@ -1949,9 +1964,11 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity public void initializeContactRequest() { if (!dcChat.isContactRequest()) { messageRequestBottomView.setVisibility(View.GONE); + beforeSearchMsgRequestVisibility = View.GONE; return; } + beforeSearchMsgRequestVisibility = View.VISIBLE; messageRequestBottomView.setVisibility(View.VISIBLE); messageRequestBottomView.setAcceptOnClickListener( v -> { diff --git a/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java b/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java index 7a1648af4..d1ad182f3 100644 --- a/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java +++ b/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java @@ -787,6 +787,10 @@ public class AttachmentManager { updateVisibility(); } + public boolean isHidden() { + return hidden; + } + private void setAttachmentPresent(boolean isPresent) { this.attachmentPresent = isPresent; updateVisibility(); diff --git a/src/main/res/layout/conversation_activity.xml b/src/main/res/layout/conversation_activity.xml index d0e360071..041773310 100644 --- a/src/main/res/layout/conversation_activity.xml +++ b/src/main/res/layout/conversation_activity.xml @@ -36,40 +36,33 @@ android:layout_height="0dp" android:layout_weight="1" /> - + + + android:paddingLeft="16dp" + android:paddingStart="16dp" + android:paddingRight="16dp" + android:paddingEnd="16dp" + android:focusable="true" /> - + - + - - - - -