diff --git a/libtextsecure/index.d.ts b/libtextsecure/index.d.ts index 88bb6ced5..9690838b8 100644 --- a/libtextsecure/index.d.ts +++ b/libtextsecure/index.d.ts @@ -1,6 +1,7 @@ import { LibTextsecureCryptoInterface } from './crypto'; export interface LibTextsecure { + messaging: any; crypto: LibTextsecureCryptoInterface; storage: any; SendMessageNetworkError: any; diff --git a/libtextsecure/sendmessage.js b/libtextsecure/sendmessage.js index 73d8bad7a..1b45085e2 100644 --- a/libtextsecure/sendmessage.js +++ b/libtextsecure/sendmessage.js @@ -419,13 +419,14 @@ MessageSender.prototype = { return Promise.all(syncPromises); }, - async sendOpenGroupsSyncMessage(conversations) { + async sendOpenGroupsSyncMessage(convos) { // If we havn't got a primaryDeviceKey then we are in the middle of pairing // primaryDevicePubKey is set to our own number if we are the master device const primaryDeviceKey = window.storage.get('primaryDevicePubKey'); if (!primaryDeviceKey) { return Promise.resolve(); } + const conversations = Array.isArray(convos) ? convos : [convos]; const openGroupsConvos = await libsession.Utils.SyncMessageUtils.filterOpenGroupsConvos( conversations @@ -453,9 +454,9 @@ MessageSender.prototype = { }, syncReadMessages(reads) { const myDevice = textsecure.storage.user.getDeviceId(); - // FIXME audric currently not in used + // FIXME currently not in used if (myDevice !== 1 && myDevice !== '1') { - const syncReadMessages = new libsession.Messages.Outgoing.OpenGroupSyncMessage( + const syncReadMessages = new libsession.Messages.Outgoing.SyncReadMessage( { readMessages: reads, } @@ -467,7 +468,7 @@ MessageSender.prototype = { }, async syncVerification(destination, state, identityKey) { const myDevice = textsecure.storage.user.getDeviceId(); - + // FIXME currently not in used if (myDevice === 1 || myDevice === '1') { return Promise.resolve(); } diff --git a/ts/components/session/LeftPaneMessageSection.tsx b/ts/components/session/LeftPaneMessageSection.tsx index b366a922c..d634e46ba 100644 --- a/ts/components/session/LeftPaneMessageSection.tsx +++ b/ts/components/session/LeftPaneMessageSection.tsx @@ -487,6 +487,19 @@ export class LeftPaneMessageSection extends React.Component { this.setState({ loading: true }); } }); + const openGroupConversation = await OpenGroup.getConversation(serverUrl); + + if (openGroupConversation) { + // if no errors happened, trigger a sync with just this open group + // so our other devices joins it + await window.textsecure.messaging.sendOpenGroupsSyncMessage( + openGroupConversation + ); + } else { + window.console.error( + 'Joined an opengroup but did not find ther corresponding conversation' + ); + } } catch (e) { window.console.error('Failed to connect to server:', e); window.pushToast({