mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-23 02:10:44 +01:00
Convert SignalService, Database, Group, Payment, and other remaining protos to wire.
This commit is contained in:
committed by
Alex Hart
parent
a6b7d0bcc5
commit
efbd5cab85
@@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.util.Base64
|
||||
import org.whispersystems.signalservice.api.crypto.protos.CompleteMessage
|
||||
import org.whispersystems.signalservice.api.crypto.protos.EnvelopeMetadata
|
||||
import org.whispersystems.signalservice.api.push.ServiceId
|
||||
import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope
|
||||
import org.whispersystems.signalservice.internal.push.Envelope
|
||||
import org.whispersystems.signalservice.internal.serialize.protos.SignalServiceContentProto
|
||||
|
||||
/**
|
||||
@@ -60,33 +60,33 @@ class PushProcessMessageJobMigration : JobMigration(10) {
|
||||
Log.i(TAG, "Migrating PushProcessJob to V2")
|
||||
|
||||
val protoBytes: ByteArray = Base64.decode(inputData.getString("message_content"))
|
||||
val proto = SignalServiceContentProto.parseFrom(protoBytes)
|
||||
val proto = SignalServiceContentProto.ADAPTER.decode(protoBytes)
|
||||
|
||||
val sourceServiceId = ServiceId.parseOrThrow(proto.metadata.address.uuid)
|
||||
val destinationServiceId = ServiceId.parseOrThrow(proto.metadata.destinationUuid)
|
||||
val sourceServiceId = ServiceId.parseOrThrow(proto.metadata!!.address!!.uuid!!)
|
||||
val destinationServiceId = ServiceId.parseOrThrow(proto.metadata!!.destinationUuid!!)
|
||||
|
||||
val envelope = Envelope.newBuilder()
|
||||
.setSourceServiceId(sourceServiceId.toString())
|
||||
.setSourceDevice(proto.metadata.senderDevice)
|
||||
.setDestinationServiceId(destinationServiceId.toString())
|
||||
.setTimestamp(proto.metadata.timestamp)
|
||||
.setServerGuid(proto.metadata.serverGuid)
|
||||
.setServerTimestamp(proto.metadata.serverReceivedTimestamp)
|
||||
val envelope = Envelope.Builder()
|
||||
.sourceServiceId(sourceServiceId.toString())
|
||||
.sourceDevice(proto.metadata!!.senderDevice)
|
||||
.destinationServiceId(destinationServiceId.toString())
|
||||
.timestamp(proto.metadata!!.timestamp)
|
||||
.serverGuid(proto.metadata!!.serverGuid)
|
||||
.serverTimestamp(proto.metadata!!.serverReceivedTimestamp)
|
||||
|
||||
val metadata = EnvelopeMetadata(
|
||||
sourceServiceId = sourceServiceId.toByteArray().toByteString(),
|
||||
sourceE164 = if (proto.metadata.address.hasE164()) proto.metadata.address.e164 else null,
|
||||
sourceDeviceId = proto.metadata.senderDevice,
|
||||
sealedSender = proto.metadata.needsReceipt,
|
||||
groupId = if (proto.metadata.hasGroupId()) proto.metadata.groupId.toByteArray().toByteString() else null,
|
||||
sourceE164 = if (proto.metadata?.address?.e164 != null) proto.metadata!!.address!!.e164 else null,
|
||||
sourceDeviceId = proto.metadata!!.senderDevice!!,
|
||||
sealedSender = proto.metadata!!.needsReceipt!!,
|
||||
groupId = if (proto.metadata?.groupId != null) proto.metadata!!.groupId!! else null,
|
||||
destinationServiceId = destinationServiceId.toByteArray().toByteString()
|
||||
)
|
||||
|
||||
val completeMessage = CompleteMessage(
|
||||
envelope = envelope.build().toByteArray().toByteString(),
|
||||
content = proto.content.toByteArray().toByteString(),
|
||||
envelope = envelope.build().encodeByteString(),
|
||||
content = proto.content!!.encodeByteString(),
|
||||
metadata = metadata,
|
||||
serverDeliveredTimestamp = proto.metadata.serverDeliveredTimestamp
|
||||
serverDeliveredTimestamp = proto.metadata!!.serverDeliveredTimestamp!!
|
||||
)
|
||||
|
||||
return jobData
|
||||
|
||||
@@ -8,8 +8,8 @@ import org.signal.core.util.logging.Log;
|
||||
import org.signal.libsignal.zkgroup.InvalidInputException;
|
||||
import org.signal.libsignal.zkgroup.groups.GroupMasterKey;
|
||||
import org.thoughtcrime.securesms.groups.GroupId;
|
||||
import org.thoughtcrime.securesms.jobmanager.JsonJobData;
|
||||
import org.thoughtcrime.securesms.jobmanager.JobMigration;
|
||||
import org.thoughtcrime.securesms.jobmanager.JsonJobData;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.util.Base64;
|
||||
@@ -55,19 +55,19 @@ public class PushProcessMessageQueueJobMigration extends JobMigration {
|
||||
String suffix = "";
|
||||
|
||||
if (data.getInt("message_state") == 0) {
|
||||
SignalServiceContentProto proto = SignalServiceContentProto.parseFrom(Base64.decode(data.getString("message_content")));
|
||||
SignalServiceContentProto proto = SignalServiceContentProto.ADAPTER.decode(Base64.decode(data.getString("message_content")));
|
||||
|
||||
if (proto != null && proto.hasContent() && proto.getContent().hasDataMessage() && proto.getContent().getDataMessage().hasGroupV2()) {
|
||||
if (proto != null && proto.content != null && proto.content.dataMessage != null && proto.content.dataMessage.groupV2 != null) {
|
||||
Log.i(TAG, "Migrating a group message.");
|
||||
|
||||
GroupId groupId = GroupId.v2(new GroupMasterKey(proto.getContent().getDataMessage().getGroupV2().getMasterKey().toByteArray()));
|
||||
GroupId groupId = GroupId.v2(new GroupMasterKey(proto.content.dataMessage.groupV2.masterKey.toByteArray()));
|
||||
Recipient recipient = Recipient.externalGroupExact(groupId);
|
||||
|
||||
suffix = recipient.getId().toQueueKey();
|
||||
} else if (proto != null && proto.hasMetadata() && proto.getMetadata().hasAddress()) {
|
||||
} else if (proto != null && proto.metadata != null && proto.metadata.address != null) {
|
||||
Log.i(TAG, "Migrating an individual message.");
|
||||
ServiceId senderServiceId = ServiceId.parseOrThrow(proto.getMetadata().getAddress().getUuid());
|
||||
String senderE164 = proto.getMetadata().getAddress().getE164();
|
||||
ServiceId senderServiceId = ServiceId.parseOrThrow(proto.metadata.address.uuid);
|
||||
String senderE164 = proto.metadata.address.e164;
|
||||
SignalServiceAddress sender = new SignalServiceAddress(senderServiceId, Optional.ofNullable(senderE164));
|
||||
|
||||
suffix = RecipientId.from(sender).toQueueKey();
|
||||
|
||||
Reference in New Issue
Block a user