diff --git a/src/cheogram/res/values/themes.xml b/src/cheogram/res/values/themes.xml
index 18019aec1a5743fefaededabcd4b26824940d858..62f863331a9ababd7f1b5e5ceb6dc9ab258feb77 100644
--- a/src/cheogram/res/values/themes.xml
+++ b/src/cheogram/res/values/themes.xml
@@ -108,7 +108,7 @@
- @drawable/ic_save_black_24dp
- @drawable/ic_group_white_24dp
- @drawable/ic_add_white_24dp
- - @drawable/ic_reply_white_24dp
+ - @drawable/ic_reply_black
- @drawable/ic_refresh_black_24dp
- @drawable/ic_attach_file_white_24dp
- @drawable/ic_lock_open_white_24dp
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index 579cd6b645e47e414c6593a0abce0d6222cc31f5..e3c3d4ad3f942a6a806a0fe6886c4871f158460c 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -30,6 +30,7 @@ import android.os.SystemClock;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.text.Editable;
+import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.util.Log;
import android.view.ContextMenu;
@@ -916,6 +917,7 @@ public class ConversationFragment extends XmppFragment
default:
sendMessage(message);
}
+ setupReply(null);
}
private boolean trustKeysIfNeeded(final Conversation conversation, final int requestCode) {
@@ -1124,6 +1126,7 @@ public class ConversationFragment extends XmppFragment
} else {
activity.selectPresence(conversation, callback);
}
+ setupReply(null);
}
private static boolean anyNeedsExternalStoragePermission(
@@ -1275,6 +1278,7 @@ public class ConversationFragment extends XmppFragment
binding.textinput.setRichContentListener(new String[] {"image/*"}, mEditorContentListener);
binding.textSendButton.setOnClickListener(this.mSendButtonListener);
+ binding.contextPreviewCancel.setOnClickListener((v) -> setupReply(null));
binding.scrollToBottomButton.setOnClickListener(this.mScrollButtonListener);
binding.messagesView.setOnScrollListener(mOnScrollListener);
@@ -1364,7 +1368,21 @@ public class ConversationFragment extends XmppFragment
private void quoteMessage(Message message) {
setThread(message.getThread());
conversation.setUserSelectedThread(true);
+ if (message.getThread() == null) newThread();
+ setupReply(message);
+ }
+
+ private void setupReply(Message message) {
conversation.setReplyTo(message);
+ if (message == null) {
+ binding.contextPreview.setVisibility(View.GONE);
+ return;
+ }
+
+ SpannableStringBuilder body = message.getSpannableBody(null, null);
+ messageListAdapter.handleTextQuotes(body, activity.isDarkTheme());
+ binding.contextPreviewText.setText(body);
+ binding.contextPreview.setVisibility(View.VISIBLE);
}
private void setThread(Element thread) {
@@ -2727,6 +2745,7 @@ public class ConversationFragment extends XmppFragment
}
setThread(conversation.getThread());
+ setupReply(conversation.getReplyTo());
stopScrolling();
Log.d(Config.LOGTAG, "reInit(hasExtras=" + hasExtras + ")");
diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
index f76bd8fb84e66bd120d5287659f1532f0c0eef1e..0e995696e0493b3dd1c9e69a189195604da8f524 100644
--- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
@@ -415,7 +415,7 @@ public class MessageAdapter extends ArrayAdapter {
* Applies QuoteSpan to group of lines which starts with > or ยป characters.
* Appends likebreaks and applies DividerSpan to them to show a padding between quote and text.
*/
- private boolean handleTextQuotes(SpannableStringBuilder body, boolean darkBackground) {
+ public boolean handleTextQuotes(SpannableStringBuilder body, boolean darkBackground) {
boolean startsWithQuote = false;
int quoteDepth = 1;
while (QuoteHelper.bodyContainsQuoteStart(body) && quoteDepth <= Config.QUOTE_MAX_DEPTH) {
diff --git a/src/main/res/layout/fragment_conversation.xml b/src/main/res/layout/fragment_conversation.xml
index 477ecf3f012a51b675de67ac4593e09424bc243b..e697828e9158275628fbed8559d4761d595a6ac7 100644
--- a/src/main/res/layout/fragment_conversation.xml
+++ b/src/main/res/layout/fragment_conversation.xml
@@ -48,6 +48,44 @@
android:transcriptMode="normal"
tools:listitem="@layout/message_sent">
+
+
+
+
+
+
+
+
+