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'; import { LibTextsecureCryptoInterface } from './crypto';
export interface LibTextsecure { export interface LibTextsecure {
messaging: any;
crypto: LibTextsecureCryptoInterface; crypto: LibTextsecureCryptoInterface;
storage: any; storage: any;
SendMessageNetworkError: any; SendMessageNetworkError: any;

@ -419,13 +419,14 @@ MessageSender.prototype = {
return Promise.all(syncPromises); 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 // 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 // primaryDevicePubKey is set to our own number if we are the master device
const primaryDeviceKey = window.storage.get('primaryDevicePubKey'); const primaryDeviceKey = window.storage.get('primaryDevicePubKey');
if (!primaryDeviceKey) { if (!primaryDeviceKey) {
return Promise.resolve(); return Promise.resolve();
} }
const conversations = Array.isArray(convos) ? convos : [convos];
const openGroupsConvos = await libsession.Utils.SyncMessageUtils.filterOpenGroupsConvos( const openGroupsConvos = await libsession.Utils.SyncMessageUtils.filterOpenGroupsConvos(
conversations conversations
@ -453,9 +454,9 @@ MessageSender.prototype = {
}, },
syncReadMessages(reads) { syncReadMessages(reads) {
const myDevice = textsecure.storage.user.getDeviceId(); const myDevice = textsecure.storage.user.getDeviceId();
// FIXME audric currently not in used // FIXME currently not in used
if (myDevice !== 1 && myDevice !== '1') { if (myDevice !== 1 && myDevice !== '1') {
const syncReadMessages = new libsession.Messages.Outgoing.OpenGroupSyncMessage( const syncReadMessages = new libsession.Messages.Outgoing.SyncReadMessage(
{ {
readMessages: reads, readMessages: reads,
} }
@ -467,7 +468,7 @@ MessageSender.prototype = {
}, },
async syncVerification(destination, state, identityKey) { async syncVerification(destination, state, identityKey) {
const myDevice = textsecure.storage.user.getDeviceId(); const myDevice = textsecure.storage.user.getDeviceId();
// FIXME currently not in used
if (myDevice === 1 || myDevice === '1') { if (myDevice === 1 || myDevice === '1') {
return Promise.resolve(); return Promise.resolve();
} }

@ -487,6 +487,19 @@ export class LeftPaneMessageSection extends React.Component<Props, State> {
this.setState({ loading: true }); 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) { } catch (e) {
window.console.error('Failed to connect to server:', e); window.console.error('Failed to connect to server:', e);
window.pushToast({ window.pushToast({

Loading…
Cancel
Save