aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2016-12-25 21:11:20 +0100
committerChristian Schneppe <christian@pix-art.de>2016-12-25 21:11:20 +0100
commit1924cfbd53b371c6c0e5f7b5fa719ec62ed9aac6 (patch)
treeed95ad768802027c48476b141be9080bb295197f /src/main/java/de/pixart/messenger/ui/ConversationFragment.java
parent37aedc49f36041abc7f35132e13241c26338ba99 (diff)
support for quoting messages
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/ConversationFragment.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
index 01fc47afe..5363b3db6 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
@@ -11,6 +11,7 @@ import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle;
import android.os.Handler;
+import android.text.Editable;
import android.text.InputType;
import android.util.Log;
import android.util.Pair;
@@ -519,6 +520,34 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
}
}
});
+ messageListAdapter.setOnQuoteListener(new MessageAdapter.OnQuoteListener() {
+
+ @Override
+ public void onQuote(String text) {
+ if (mEditMessage.isEnabled()) {
+ text = text.replaceAll("(\n *){2,}", "\n").replaceAll("(^|\n)", "$1> ").replaceAll("\n$", "");
+ Editable editable = mEditMessage.getEditableText();
+ int position = mEditMessage.getSelectionEnd();
+ if (position == -1) position = editable.length();
+ if (position > 0 && editable.charAt(position - 1) != '\n') {
+ editable.insert(position++, "\n");
+ }
+ editable.insert(position, text);
+ position += text.length();
+ editable.insert(position++, "\n");
+ if (position < editable.length() && editable.charAt(position) != '\n') {
+ editable.insert(position, "\n");
+ }
+ mEditMessage.setSelection(position);
+ mEditMessage.requestFocus();
+ InputMethodManager inputMethodManager = (InputMethodManager) getActivity()
+ .getSystemService(Context.INPUT_METHOD_SERVICE);
+ if (inputMethodManager != null) {
+ inputMethodManager.showSoftInput(mEditMessage, InputMethodManager.SHOW_IMPLICIT);
+ }
+ }
+ }
+ });
messagesView.setAdapter(messageListAdapter);
registerForContextMenu(messagesView);