|
|
@ -11,13 +11,15 @@ import { SignalService } from '../../protobuf';
|
|
|
|
import { SyncMessageType } from '../messages/outgoing/content/sync/SyncMessage';
|
|
|
|
import { SyncMessageType } from '../messages/outgoing/content/sync/SyncMessage';
|
|
|
|
|
|
|
|
|
|
|
|
import * as Data from '../../../js/modules/data';
|
|
|
|
import * as Data from '../../../js/modules/data';
|
|
|
|
import { textsecure, libloki, ConversationController, Whisper } from '../../window';
|
|
|
|
import { ConversationController, libloki, Whisper, textsecure } from '../../window';
|
|
|
|
|
|
|
|
import { OpenGroup } from '../types/OpenGroup';
|
|
|
|
|
|
|
|
import { generateFakePubkey } from '../../test/test-utils/testUtils';
|
|
|
|
|
|
|
|
|
|
|
|
// export function from(message: ContentMessage): SyncMessage | undefined {
|
|
|
|
// export function from(message: ContentMessage): SyncMessage | undefined {
|
|
|
|
// testtttingggg
|
|
|
|
// testtttingggg
|
|
|
|
export async function from(
|
|
|
|
export async function from(
|
|
|
|
message: ContentMessage,
|
|
|
|
message: ContentMessage,
|
|
|
|
sendTo: any,
|
|
|
|
sendTo: PubKey | OpenGroup,
|
|
|
|
syncType: SyncMessageEnum.CONTACTS | SyncMessageEnum.GROUPS = SyncMessageEnum.CONTACTS
|
|
|
|
syncType: SyncMessageEnum.CONTACTS | SyncMessageEnum.GROUPS = SyncMessageEnum.CONTACTS
|
|
|
|
): Promise<SyncMessageType> {
|
|
|
|
): Promise<SyncMessageType> {
|
|
|
|
const { timestamp, identifier } = message;
|
|
|
|
const { timestamp, identifier } = message;
|
|
|
@ -29,14 +31,23 @@ export async function from(
|
|
|
|
let syncMessage: SyncMessage;
|
|
|
|
let syncMessage: SyncMessage;
|
|
|
|
switch (syncType) {
|
|
|
|
switch (syncType) {
|
|
|
|
case SyncMessageEnum.CONTACTS:
|
|
|
|
case SyncMessageEnum.CONTACTS:
|
|
|
|
|
|
|
|
|
|
|
|
// Send to one device at a time
|
|
|
|
// Send to one device at a time
|
|
|
|
|
|
|
|
const contact = ConversationController.get(
|
|
|
|
|
|
|
|
sendTo instanceof PubKey
|
|
|
|
|
|
|
|
? sendTo.key : sendTo.conversationId
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
const builtSyncMessage = await libloki.api.createContactSyncProtoMessage();
|
|
|
|
const protoSyncMessage = libloki.api.createContactSyncProtoMessage(contact);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const contentMessage = new ContactSyncMessage({
|
|
|
|
|
|
|
|
dataMessage: protoSyncMessage,
|
|
|
|
|
|
|
|
linkedDevices: [generateFakePubkey()],
|
|
|
|
|
|
|
|
timestamp: Date.now(),
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case SyncMessageEnum.GROUPS:
|
|
|
|
case SyncMessageEnum.GROUPS:
|
|
|
|
|
|
|
|
|
|
|
|
syncMessage = new GroupSyncMessage({
|
|
|
|
syncMessage = new GroupSyncMessage({
|
|
|
@ -49,11 +60,10 @@ export async function from(
|
|
|
|
return syncMessage;
|
|
|
|
return syncMessage;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export async function canSync(message: ContentMessage, device: any): boolean {
|
|
|
|
export async function canSync(message: ContentMessage, device: any): Promise<boolean> {
|
|
|
|
return Boolean(from(message, device));
|
|
|
|
return Boolean(from(message, device));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export async function getSyncContacts(): Promise<Set<any>> {
|
|
|
|
export async function getSyncContacts(): Promise<Set<any>> {
|
|
|
|
const thisDevice = textsecure.storage.user.getNumber();
|
|
|
|
const thisDevice = textsecure.storage.user.getNumber();
|
|
|
|
const primaryDevice = await Data.getPrimaryDeviceFor(thisDevice);
|
|
|
|
const primaryDevice = await Data.getPrimaryDeviceFor(thisDevice);
|
|
|
|