trigger opengroup sync when joining an open group

pull/1231/head
Audric Ackermann 5 years ago
parent b502fcc3f9
commit aa635e9cd3
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -1,6 +1,7 @@
import { LibTextsecureCryptoInterface } from './crypto';
export interface LibTextsecure {
messaging: any;
crypto: LibTextsecureCryptoInterface;
storage: any;
SendMessageNetworkError: any;

@ -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();
}

@ -487,6 +487,19 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
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({

Loading…
Cancel
Save