From 6a4c366975dde87175b356084f2c258e782134e0 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 5 May 2018 20:56:55 +0200 Subject: encode and decode % and # in invite links --- .../java/de/pixart/messenger/ui/ConversationFragment.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/main/java/de/pixart/messenger/ui/ConversationFragment.java') diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index fdcbf29b3..cdbdbd069 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -110,6 +110,7 @@ import de.pixart.messenger.utils.FileUtils; import de.pixart.messenger.utils.MenuDoubleTabUtil; import de.pixart.messenger.utils.MessageUtils; import de.pixart.messenger.utils.NickValidityChecker; +import de.pixart.messenger.utils.Patterns; import de.pixart.messenger.utils.QuickLoader; import de.pixart.messenger.utils.StylingHelper; import de.pixart.messenger.utils.UIHelper; @@ -1278,6 +1279,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke activity.getMenuInflater().inflate(R.menu.message_context, menu); menu.setHeaderTitle(R.string.message_options); MenuItem copyMessage = menu.findItem(R.id.copy_message); + MenuItem copyLink = menu.findItem(R.id.copy_link); MenuItem quoteMessage = menu.findItem(R.id.quote_message); MenuItem retryDecryption = menu.findItem(R.id.retry_decryption); MenuItem correctMessage = menu.findItem(R.id.correct_message); @@ -1291,6 +1293,13 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke if (!m.isFileOrImage() && !encrypted && !m.isGeoUri() && !m.treatAsDownloadable()) { copyMessage.setVisible(true); quoteMessage.setVisible(MessageUtils.prepareQuote(m).length() > 0); + String body = m.getMergedBody().toString(); + if (ShareUtil.containsXmppUri(body)) { + copyLink.setTitle(R.string.copy_jabber_id); + copyLink.setVisible(true); + } else if (Patterns.AUTOLINK_WEB_URL.matcher(body).find()) { + copyLink.setVisible(true); + } } if (m.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED) { retryDecryption.setVisible(true); @@ -1351,6 +1360,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke case R.id.copy_message: ShareUtil.copyToClipboard(activity, selectedMessage); return true; + case R.id.copy_link: + ShareUtil.copyLinkToClipboard(activity, selectedMessage); + return true; case R.id.quote_message: quoteMessage(selectedMessage); return true; -- cgit v1.2.3