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