mirror of
https://github.com/oxen-io/session-android.git
synced 2025-12-05 00:21:57 +00:00
Don't display duplicate push messages.
This commit is contained in:
@@ -24,7 +24,6 @@ import org.thoughtcrime.securesms.sms.IncomingEndSessionMessage;
|
||||
import org.thoughtcrime.securesms.sms.IncomingKeyExchangeMessage;
|
||||
import org.thoughtcrime.securesms.sms.IncomingPreKeyBundleMessage;
|
||||
import org.thoughtcrime.securesms.sms.IncomingTextMessage;
|
||||
import org.thoughtcrime.securesms.sms.SmsTransportDetails;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.whispersystems.textsecure.crypto.InvalidKeyException;
|
||||
import org.whispersystems.textsecure.crypto.InvalidMessageException;
|
||||
@@ -44,9 +43,10 @@ import static org.whispersystems.textsecure.push.PushMessageProtos.PushMessageCo
|
||||
|
||||
public class PushReceiver {
|
||||
|
||||
public static final int RESULT_OK = 0;
|
||||
public static final int RESULT_NO_SESSION = 1;
|
||||
public static final int RESULT_DECRYPT_FAILED = 2;
|
||||
public static final int RESULT_OK = 0;
|
||||
public static final int RESULT_NO_SESSION = 1;
|
||||
public static final int RESULT_DECRYPT_FAILED = 2;
|
||||
public static final int RESULT_DECRYPT_DUPLICATE = 3;
|
||||
|
||||
private final Context context;
|
||||
private final GroupReceiver groupReceiver;
|
||||
@@ -69,9 +69,10 @@ public class PushReceiver {
|
||||
long messageId = intent.getLongExtra("message_id", -1);
|
||||
int result = intent.getIntExtra("result", 0);
|
||||
|
||||
if (result == RESULT_OK) handleReceivedMessage(masterSecret, message, true);
|
||||
else if (result == RESULT_NO_SESSION) handleReceivedMessageForNoSession(masterSecret, message);
|
||||
else if (result == RESULT_DECRYPT_FAILED) handleReceivedCorruptedMessage(masterSecret, message, true);
|
||||
if (result == RESULT_OK) handleReceivedMessage(masterSecret, message, true);
|
||||
else if (result == RESULT_NO_SESSION) handleReceivedMessageForNoSession(masterSecret, message);
|
||||
else if (result == RESULT_DECRYPT_FAILED) handleReceivedCorruptedMessage(masterSecret, message, true);
|
||||
else if (result == RESULT_DECRYPT_DUPLICATE) handleReceivedDuplicateMessage(message);
|
||||
|
||||
DatabaseFactory.getPushDatabase(context).delete(messageId);
|
||||
}
|
||||
@@ -255,6 +256,10 @@ public class PushReceiver {
|
||||
MessageNotifier.updateNotification(context, masterSecret, messageAndThreadId.second);
|
||||
}
|
||||
|
||||
private void handleReceivedDuplicateMessage(IncomingPushMessage message) {
|
||||
Log.w("PushReceiver", "Received duplicate message: " + message.getSource() + " , " + message.getSourceDevice());
|
||||
}
|
||||
|
||||
private void handleReceivedCorruptedKey(MasterSecret masterSecret,
|
||||
IncomingPushMessage message,
|
||||
boolean invalidVersion)
|
||||
|
||||
Reference in New Issue
Block a user