diff --git a/js/background.js b/js/background.js index c8674a4cd..b7e5fd804 100644 --- a/js/background.js +++ b/js/background.js @@ -1411,6 +1411,7 @@ const { isError } = options; let messageData = { + id: data.id, source: data.source, sourceDevice: data.sourceDevice, sent_at: data.timestamp, diff --git a/js/models/messages.js b/js/models/messages.js index d1f77a3a5..b5204c504 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -2014,9 +2014,18 @@ } else { await conversation.onFriendRequestAccepted(); } - const id = await window.Signal.Data.saveMessage(message.attributes, { - Message: Whisper.Message, - }); + let id; + // Force save if the message already has an id, used for public channels + if (message.id) { + id = await window.Signal.Data.saveMessage(message.attributes, { + forceSave: true, + Message: Whisper.Message, + }); + } else { + id = await window.Signal.Data.saveMessage(message.attributes, { + Message: Whisper.Message, + }); + } message.set({ id }); MessageController.register(message.id, message); diff --git a/js/modules/loki_public_chat_api.js b/js/modules/loki_public_chat_api.js index b93a36184..edc020059 100644 --- a/js/modules/loki_public_chat_api.js +++ b/js/modules/loki_public_chat_api.js @@ -159,12 +159,14 @@ class LokiPublicChannelAPI { let timestamp = new Date(adnMessage.created_at).getTime(); let from = adnMessage.user.username; let source; + let id; if (adnMessage.annotations.length) { const noteValue = adnMessage.annotations[0].value; - ({ from, timestamp, source } = noteValue); + ({ from, timestamp, source, id } = noteValue); } const messageData = { + id, friendRequest: false, source, sourceDevice: 1, diff --git a/js/views/.inbox_view.js.swp b/js/views/.inbox_view.js.swp deleted file mode 100644 index 460fcffa5..000000000 Binary files a/js/views/.inbox_view.js.swp and /dev/null differ