aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-05-05 20:56:55 +0200
committerChristian Schneppe <christian@pix-art.de>2018-05-05 20:56:55 +0200
commit6a4c366975dde87175b356084f2c258e782134e0 (patch)
tree0d29a8e5ce5554d509ff92ae41a0a3017be0a942 /src/main/java/de/pixart/messenger/ui/ConversationFragment.java
parent0446624c51942118e74fbba93d40d83a9856723d (diff)
encode and decode % and # in invite links
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/ConversationFragment.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java12
1 files changed, 12 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 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;