Skip to content

Commit

Permalink
Don't enqueue duplicate PushDecryptMessageJobs.
Browse files Browse the repository at this point in the history
  • Loading branch information
greyson-signal committed May 29, 2020
1 parent ea8e13b commit 1cd6b58
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public long insert(@NonNull SignalServiceEnvelope envelope) {
Optional<Long> messageId = find(envelope);

if (messageId.isPresent()) {
return messageId.get();
return -1;
} else {
ContentValues values = new ContentValues();
values.put(TYPE, envelope.getType());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.thoughtcrime.securesms.jobs.PushDecryptMessageJob;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;

import java.io.Closeable;
Expand Down Expand Up @@ -90,15 +91,21 @@ private Processor(@NonNull Context context) {
}
}

private @NonNull String processMessage(@NonNull SignalServiceEnvelope envelope) {
private @Nullable String processMessage(@NonNull SignalServiceEnvelope envelope) {
Log.i(TAG, "Received message. Inserting in PushDatabase.");

long id = pushDatabase.insert(envelope);
PushDecryptMessageJob job = new PushDecryptMessageJob(context, id);
long id = pushDatabase.insert(envelope);

jobManager.add(job);
if (id > 0) {
PushDecryptMessageJob job = new PushDecryptMessageJob(context, id);

return job.getId();
jobManager.add(job);

return job.getId();
} else {
Log.w(TAG, "The envelope was already present in the PushDatabase.");
return null;
}
}

private void processReceipt(@NonNull SignalServiceEnvelope envelope) {
Expand Down

0 comments on commit 1cd6b58

Please sign in to comment.