aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/de/pixart/messenger/parser/MessageParser.java5
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java3
-rw-r--r--src/main/java/de/pixart/messenger/ui/SettingsActivity.java3
3 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/parser/MessageParser.java b/src/main/java/de/pixart/messenger/parser/MessageParser.java
index 020866fa1..8dadbd364 100644
--- a/src/main/java/de/pixart/messenger/parser/MessageParser.java
+++ b/src/main/java/de/pixart/messenger/parser/MessageParser.java
@@ -53,6 +53,8 @@ import de.pixart.messenger.xmpp.pep.Avatar;
import de.pixart.messenger.xmpp.stanzas.MessagePacket;
import rocks.xmpp.addr.Jid;
+import static de.pixart.messenger.entities.Message.DELETED_MESSAGE_BODY;
+
public class MessageParser extends AbstractParser implements OnMessagePacketReceived {
private static final List<String> CLIENTS_SENDING_HTML_IN_OTR = Arrays.asList("Pidgin", "Adium", "Trillian");
@@ -741,6 +743,9 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": received message correction but verification didn't check out");
}
}
+ } else if (replacementId != null && !mXmppConnectionService.allowMessageCorrection() && message.getBody().equals(DELETED_MESSAGE_BODY)) {
+ Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": received deleted message but LMC is deactivated");
+ return;
}
long deletionDate = mXmppConnectionService.getAutomaticMessageDeletionDate();
diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
index 87b7b67ae..038e4f235 100644
--- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
+++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
@@ -168,6 +168,7 @@ import de.pixart.messenger.xmpp.stanzas.PresencePacket;
import me.leolin.shortcutbadger.ShortcutBadger;
import rocks.xmpp.addr.Jid;
+import static de.pixart.messenger.ui.SettingsActivity.ALLOW_MESSAGE_CORRECTION;
import static de.pixart.messenger.ui.SettingsActivity.CHAT_STATES;
import static de.pixart.messenger.ui.SettingsActivity.CONFIRM_MESSAGES;
import static de.pixart.messenger.ui.SettingsActivity.ENABLE_MULTI_ACCOUNTS;
@@ -4266,7 +4267,7 @@ public class XmppConnectionService extends Service {
}
public boolean allowMessageCorrection() {
- return getBooleanPreference("allow_message_correction", R.bool.allow_message_correction);
+ return getBooleanPreference(ALLOW_MESSAGE_CORRECTION, R.bool.allow_message_correction);
}
public boolean sendChatStates() {
diff --git a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java
index 24c782dfb..2ef7ead13 100644
--- a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java
@@ -74,6 +74,7 @@ public class SettingsActivity extends XmppActivity implements
public static final String CONFIRM_MESSAGES = "confirm_messages";
public static final String INDICATE_RECEIVED = "indicate_received";
public static final String USE_INVIDIOUS = "use_invidious";
+ public static final String ALLOW_MESSAGE_CORRECTION = "allow_message_correction";
public static final int REQUEST_CREATE_BACKUP = 0xbf8701;
Preference multiAccountPreference;
@@ -482,7 +483,7 @@ public class SettingsActivity extends XmppActivity implements
CONFIRM_MESSAGES,
DND_ON_SILENT_MODE,
AWAY_WHEN_SCREEN_IS_OFF,
- "allow_message_correction",
+ ALLOW_MESSAGE_CORRECTION,
TREAT_VIBRATE_AS_SILENT,
MANUALLY_CHANGE_PRESENCE,
BROADCAST_LAST_ACTIVITY);