Skip to content

Commit dbda66d

Browse files
committed
Fix build
Surprisingly this code still works
1 parent 7ac138e commit dbda66d

File tree

3 files changed

+29
-32
lines changed

3 files changed

+29
-32
lines changed

Signal-Windows.Lib/IncomingMessages.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ private async Task HandleExpirationUpdateMessage(SignalServiceEnvelope envelope,
327327
}
328328
}
329329
conversation.ExpiresInSeconds = (uint)message.ExpiresInSeconds;
330-
SignalDBContext.UpdateExpiresInLocked(conversation, (uint)message.ExpiresInSeconds);
330+
SignalDBContext.UpdateExpiresInLocked(conversation);
331331
string finalMessage;
332332
if (message.ExpiresInSeconds == 0)
333333
{

Signal-Windows.Lib/OutgoingMessages.cs

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ public async Task Send(SignalServiceMessageSender messageSender, CancellationTok
108108
Attachments = outgoingAttachmentsList
109109
};
110110

111+
UpdateExpiresAt(OutgoingSignalMessage);
112+
DisappearingMessagesManager.QueueForDeletion(OutgoingSignalMessage);
113+
111114
if (!OutgoingSignalMessage.ThreadId.EndsWith("="))
112115
{
113116
if (!token.IsCancellationRequested)
@@ -144,6 +147,25 @@ public async Task Send(SignalServiceMessageSender messageSender, CancellationTok
144147
}
145148
}
146149
}
150+
151+
/// <summary>
152+
/// Updates a message ExpiresAt to be a timestamp instead of a relative value.
153+
/// </summary>
154+
/// <param name="message">The message to update</param>
155+
private void UpdateExpiresAt(SignalMessage message)
156+
{
157+
// We update here instead of earlier because we only want to start the timer once the message is actually sent.
158+
long messageExpiration;
159+
if (message.ExpiresAt == 0)
160+
{
161+
messageExpiration = 0;
162+
}
163+
else
164+
{
165+
messageExpiration = Util.CurrentTimeMillis() + (long)TimeSpan.FromSeconds(message.ExpiresAt).TotalMilliseconds;
166+
}
167+
message.ExpiresAt = messageExpiration;
168+
}
147169
}
148170

149171
class OutgoingMessages
@@ -173,13 +195,6 @@ public async Task HandleOutgoingMessages()
173195
ISendable sendable = null;
174196
try
175197
{
176-
if (!Token.IsCancellationRequested)
177-
{
178-
await MessageSender.SendMessage(Token, new SignalServiceAddress(outgoingSignalMessage.ThreadId), message);
179-
UpdateExpiresAt(outgoingSignalMessage);
180-
DisappearingMessagesManager.QueueForDeletion(outgoingSignalMessage);
181-
outgoingSignalMessage.Status = SignalMessageStatus.Confirmed;
182-
}
183198
sendable = Handle.OutgoingQueue.Take(Token);
184199
Logger.LogTrace($"Sending {sendable.GetType().Name}");
185200
await sendable.Send(messageSender, Token);
@@ -200,10 +215,11 @@ public async Task HandleOutgoingMessages()
200215
}
201216
foreach (UntrustedIdentityException e in identityExceptions)
202217
{
203-
await SendMessage(recipients, message);
204-
UpdateExpiresAt(outgoingSignalMessage);
205-
DisappearingMessagesManager.QueueForDeletion(outgoingSignalMessage);
206-
outgoingSignalMessage.Status = SignalMessageStatus.Confirmed;
218+
// TODO: Not sure what to do with this.
219+
//await SendMessage(recipients, message);
220+
//UpdateExpiresAt(outgoingSignalMessage);
221+
//DisappearingMessagesManager.QueueForDeletion(outgoingSignalMessage);
222+
//outgoingSignalMessage.Status = SignalMessageStatus.Confirmed;
207223
await Handle.HandleOutgoingKeyChangeLocked(e.E164number, Base64.EncodeBytes(e.IdentityKey.serialize()));
208224
}
209225
}
@@ -241,24 +257,5 @@ public async Task HandleOutgoingMessages()
241257
Logger.LogInformation("HandleOutgoingMessages() finished");
242258
}
243259
}
244-
245-
/// <summary>
246-
/// Updates a message ExpiresAt to be a timestamp instead of a relative value.
247-
/// </summary>
248-
/// <param name="message">The message to update</param>
249-
private void UpdateExpiresAt(SignalMessage message)
250-
{
251-
// We update here instead of earlier because we only want to start the timer once the message is actually sent.
252-
long messageExpiration;
253-
if (message.ExpiresAt == 0)
254-
{
255-
messageExpiration = 0;
256-
}
257-
else
258-
{
259-
messageExpiration = Util.CurrentTimeMillis() + (long)TimeSpan.FromSeconds(message.ExpiresAt).TotalMilliseconds;
260-
}
261-
message.ExpiresAt = messageExpiration;
262-
}
263260
}
264261
}

Signal-Windows.Lib/SignalLibHandle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,13 +417,13 @@ public void RequestSync()
417417
/// <param name="message"></param>
418418
public async Task SetMessageRead(SignalMessage message)
419419
{
420-
UpdateMessageExpiration(message, conversation.ExpiresInSeconds);
421420
Logger.LogTrace("SetMessageRead() locking");
422421
await SemaphoreSlim.WaitAsync(CancelSource.Token);
423422
try
424423
{
425424
Logger.LogTrace("SetMessageRead() locked");
426425
var updatedConversation = SignalDBContext.UpdateMessageRead(message.ComposedTimestamp);
426+
UpdateMessageExpiration(message, updatedConversation.ExpiresInSeconds);
427427
OutgoingQueue.Add(new SignalServiceSyncMessageSendable(SignalServiceSyncMessage.ForRead(new List<ReadMessage>() {
428428
new ReadMessage(message.Author.ThreadId, message.ComposedTimestamp)
429429
})));

0 commit comments

Comments
 (0)