Change summary
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java | 12 +
src/main/res/menu/message_context.xml | 6
src/main/res/values/strings.xml | 1
3 files changed, 18 insertions(+), 1 deletion(-)
Detailed changes
@@ -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;
@@ -33,6 +33,10 @@
android:id="@+id/correct_message"
android:title="@string/correct_message"
android:visible="false" />
+ <item
+ android:id="@+id/retract_message"
+ android:title="@string/retract_message"
+ android:visible="false" />
<item
android:id="@+id/copy_url"
android:title="@string/copy_original_url"
@@ -57,4 +61,4 @@
android:id="@+id/delete_file"
android:title="@string/delete_x_file"
android:visible="false" />
-</menu>
+</menu>
@@ -533,6 +533,7 @@
<string name="no_accounts">(No activated accounts)</string>
<string name="this_field_is_required">This field is required</string>
<string name="correct_message">Correct message</string>
+ <string name="retract_message">Retract message</string>
<string name="send_corrected_message">Send corrected message</string>
<string name="no_keys_just_confirm">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.</string>
<string name="this_account_is_disabled">You have disabled this account</string>