diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-06-16 23:50:28 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-06-16 23:51:05 +0200 |
commit | 5db026412b80e2f33557595748a14b741ececa2f (patch) | |
tree | 2b89e3f1d78763aa7ed2092d2745575b7b7e52dc /src/main/java/de/pixart/messenger/ui/ConversationFragment.java | |
parent | 38e4fa98172cb11f8234972dbb27dc41543800ec (diff) |
add ‘paste as quote’ for api >= 23
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationFragment.java | 21 |
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) { |