Support for device management, limits, and contact requests.

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2015-06-19 22:02:10 -07:00
parent 3c41f27298
commit bf3c1d3745
25 changed files with 482 additions and 19 deletions

View File

@@ -50,6 +50,7 @@ import org.whispersystems.textsecure.api.messages.TextSecureContent;
import org.whispersystems.textsecure.api.messages.TextSecureEnvelope;
import org.whispersystems.textsecure.api.messages.TextSecureGroup;
import org.whispersystems.textsecure.api.messages.TextSecureDataMessage;
import org.whispersystems.textsecure.api.messages.multidevice.RequestMessage;
import org.whispersystems.textsecure.api.messages.multidevice.SentTranscriptMessage;
import org.whispersystems.textsecure.api.messages.multidevice.TextSecureSyncMessage;
import org.whispersystems.textsecure.api.push.TextSecureAddress;
@@ -126,7 +127,8 @@ public class PushDecryptJob extends MasterSecretJob {
} else if (content.getSyncMessage().isPresent()) {
TextSecureSyncMessage syncMessage = content.getSyncMessage().get();
if (syncMessage.getSent().isPresent()) handleSynchronizeSentMessage(masterSecret, syncMessage.getSent().get(), smsMessageId);
if (syncMessage.getSent().isPresent()) handleSynchronizeSentMessage(masterSecret, syncMessage.getSent().get(), smsMessageId);
else if (syncMessage.getRequest().isPresent()) handleSynchronizeRequestMessage(masterSecret, syncMessage.getRequest().get());
}
if (envelope.isPreKeyWhisperMessage()) {
@@ -198,6 +200,14 @@ public class PushDecryptJob extends MasterSecretJob {
}
}
private void handleSynchronizeRequestMessage(MasterSecret masterSecret, RequestMessage message) {
if (message.isContactsRequest()) {
ApplicationContext.getInstance(context)
.getJobManager()
.add(new MultiDeviceContactUpdateJob(getContext()));
}
}
private void handleMediaMessage(MasterSecret masterSecret, TextSecureEnvelope envelope,
TextSecureDataMessage message, Optional<Long> smsMessageId)
throws MmsException