Send 'clear history' event when clearing the call log.

This commit is contained in:
Alex Hart
2023-08-01 16:13:37 -03:00
committed by Greyson Parrelli
parent d3f073e573
commit e239036d8b
11 changed files with 319 additions and 42 deletions

View File

@@ -743,6 +743,10 @@ public class SignalServiceMessageSender {
urgent = message.getRequest().get().isUrgent();
} else if (message.getCallEvent().isPresent()) {
content = createCallEventContent(message.getCallEvent().get());
} else if (message.getCallLinkUpdate().isPresent()) {
content = createCallLinkUpdateContent(message.getCallLinkUpdate().get());
} else if (message.getCallLogEvent().isPresent()) {
content = createCallLogEventContent(message.getCallLogEvent().get());
} else {
throw new IOException("Unsupported sync message!");
}
@@ -1701,6 +1705,20 @@ public class SignalServiceMessageSender {
return container.setSyncMessage(builder).build();
}
private Content createCallLinkUpdateContent(SyncMessage.CallLinkUpdate proto) {
Content.Builder container = Content.newBuilder();
SyncMessage.Builder builder = createSyncMessageBuilder().setCallLinkUpdate(proto);
return container.setSyncMessage(builder).build();
}
private Content createCallLogEventContent(SyncMessage.CallLogEvent proto) {
Content.Builder container = Content.newBuilder();
SyncMessage.Builder builder = createSyncMessageBuilder().setCallLogEvent(proto);
return container.setSyncMessage(builder).build();
}
private SyncMessage.Builder createSyncMessageBuilder() {
SecureRandom random = new SecureRandom();
byte[] padding = Util.getRandomLengthBytes(512);

View File

@@ -7,10 +7,10 @@
package org.whispersystems.signalservice.api.messages.multidevice;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
import org.whispersystems.signalservice.internal.push.SignalServiceProtos;
import org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.CallEvent;
import org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.CallLinkUpdate;
import org.whispersystems.signalservice.internal.push.SignalServiceProtos.SyncMessage.CallLogEvent;
import java.util.LinkedList;
import java.util.List;
@@ -36,6 +36,7 @@ public class SignalServiceSyncMessage {
private final Optional<List<ViewedMessage>> views;
private final Optional<CallEvent> callEvent;
private final Optional<CallLinkUpdate> callLinkUpdate;
private final Optional<CallLogEvent> callLogEvent;
private SignalServiceSyncMessage(Optional<SentTranscriptMessage> sent,
Optional<ContactsMessage> contacts,
@@ -52,7 +53,8 @@ public class SignalServiceSyncMessage {
Optional<OutgoingPaymentMessage> outgoingPaymentMessage,
Optional<List<ViewedMessage>> views,
Optional<CallEvent> callEvent,
Optional<CallLinkUpdate> callLinkUpdate)
Optional<CallLinkUpdate> callLinkUpdate,
Optional<CallLogEvent> callLogEvent)
{
this.sent = sent;
this.contacts = contacts;
@@ -70,6 +72,7 @@ public class SignalServiceSyncMessage {
this.views = views;
this.callEvent = callEvent;
this.callLinkUpdate = callLinkUpdate;
this.callLogEvent = callLogEvent;
}
public static SignalServiceSyncMessage forSentTranscript(SentTranscriptMessage sent) {
@@ -88,6 +91,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -107,6 +111,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -126,6 +131,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -145,6 +151,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -164,6 +171,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.of(views),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -183,6 +191,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -205,6 +214,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -224,6 +234,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -243,6 +254,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -262,6 +274,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -281,6 +294,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -300,6 +314,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -319,6 +334,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -338,6 +354,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -357,6 +374,7 @@ public class SignalServiceSyncMessage {
Optional.of(outgoingPaymentMessage),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -376,6 +394,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.of(callEvent),
Optional.empty(),
Optional.empty());
}
@@ -395,7 +414,28 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.of(callLinkUpdate));
Optional.of(callLinkUpdate),
Optional.empty());
}
public static SignalServiceSyncMessage forCallLogEvent(@Nonnull CallLogEvent callLogEvent) {
return new SignalServiceSyncMessage(Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.of(callLogEvent));
}
public static SignalServiceSyncMessage empty() {
@@ -414,6 +454,7 @@ public class SignalServiceSyncMessage {
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty());
}
@@ -477,6 +518,14 @@ public class SignalServiceSyncMessage {
return callEvent;
}
public Optional<CallLinkUpdate> getCallLinkUpdate() {
return callLinkUpdate;
}
public Optional<CallLogEvent> getCallLogEvent() {
return callLogEvent;
}
public enum FetchType {
LOCAL_PROFILE,
STORAGE_MANIFEST,