diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index 62458b5d416b269ceba3d58d35405c881f60b0ce..6359e363c5b7300bcf4180210e9b834a7bec2a97 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -1325,6 +1325,7 @@ public class ConversationFragment extends XmppFragment
MenuItem quoteMessage = menu.findItem(R.id.quote_message);
MenuItem retryDecryption = menu.findItem(R.id.retry_decryption);
MenuItem correctMessage = menu.findItem(R.id.correct_message);
+ MenuItem retractMessage = menu.findItem(R.id.retract_message);
MenuItem shareWith = menu.findItem(R.id.share_with);
MenuItem sendAgain = menu.findItem(R.id.send_again);
MenuItem copyUrl = menu.findItem(R.id.copy_url);
@@ -1362,6 +1363,7 @@ public class ConversationFragment extends XmppFragment
&& relevantForCorrection.isLastCorrectableMessage()
&& m.getConversation() instanceof Conversation) {
correctMessage.setVisible(true);
+ if (!relevantForCorrection.getBody().equals("") && !relevantForCorrection.getBody().equals(" ")) retractMessage.setVisible(true);
}
if ((m.isFileOrImage() && !deleted && !receiving)
|| (m.getType() == Message.TYPE_TEXT && !m.treatAsDownloadable())
@@ -1427,6 +1429,16 @@ public class ConversationFragment extends XmppFragment
case R.id.correct_message:
correctMessage(selectedMessage);
return true;
+ case R.id.retract_message:
+ Message message = selectedMessage;
+ while (message.mergeable(message.next())) {
+ message = message.next();
+ }
+ message.setBody(" ");
+ message.putEdited(message.getUuid(), message.getServerMsgId());
+ message.setServerMsgId(null);
+ message.setUuid(UUID.randomUUID().toString());
+ sendMessage(message);
case R.id.copy_message:
ShareUtil.copyToClipboard(activity, selectedMessage);
return true;
diff --git a/src/main/res/menu/message_context.xml b/src/main/res/menu/message_context.xml
index f32505203e92f85efd1c705434f4454d0483955d..688883515fea3fd6d1e0e9b6c636ab16556f01e1 100644
--- a/src/main/res/menu/message_context.xml
+++ b/src/main/res/menu/message_context.xml
@@ -33,6 +33,10 @@
android:id="@+id/correct_message"
android:title="@string/correct_message"
android:visible="false" />
+
-
\ No newline at end of file
+
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 719300c95eb47e28048ae9de6e2ba4fff73cf84b..5ce89408cc1584d6933244af7b14365a82ce9841 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -533,6 +533,7 @@
(No activated accounts)
This field is required
Correct message
+ Retract message
Send corrected message
You have already validated this persons fingerprint securely to confirm trust. By selecting “Done” you are just confirming that %s is part of this group chat.
You have disabled this account