aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-06-16 23:50:28 +0200
committerChristian Schneppe <christian@pix-art.de>2018-06-16 23:51:05 +0200
commit5db026412b80e2f33557595748a14b741ececa2f (patch)
tree2b89e3f1d78763aa7ed2092d2745575b7b7e52dc /src/main/java/de/pixart/messenger/ui/ConversationFragment.java
parent38e4fa98172cb11f8234972dbb27dc41543800ec (diff)
add ‘paste as quote’ for api >= 23
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
index 59098f541..fa2ba5327 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
@@ -98,6 +98,7 @@ import de.pixart.messenger.ui.util.ActivityResult;
import de.pixart.messenger.ui.util.AttachmentTool;
import de.pixart.messenger.ui.util.ConversationMenuConfigurator;
import de.pixart.messenger.ui.util.DateSeparator;
+import de.pixart.messenger.ui.util.EditMessageActionModeCallback;
import de.pixart.messenger.ui.util.ListViewUtils;
import de.pixart.messenger.ui.util.PendingItem;
import de.pixart.messenger.ui.util.PresenceSelector;
@@ -1220,6 +1221,11 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
binding.messagesView.setAdapter(messageListAdapter);
registerForContextMenu(binding.messagesView);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ this.binding.textinput.setCustomInsertionActionModeCallback(new EditMessageActionModeCallback(this.binding.textinput));
+ }
+
return binding.getRoot();
}
@@ -1235,20 +1241,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
private void quoteText(String text) {
if (binding.textinput.isEnabled()) {
- text = text.replaceAll("(\n *){2,}", "\n").replaceAll("(^|\n)", "$1> ").replaceAll("\n$", "");
- Editable editable = binding.textinput.getEditableText();
- int position = binding.textinput.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");
- }
- binding.textinput.setSelection(position);
+ binding.textinput.insertAsQuote(text);
binding.textinput.requestFocus();
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null) {