Introduce versioning clock to timer system
This commit is contained in:
parent
bb1d957e49
commit
2fb50df0af
34 changed files with 703 additions and 28 deletions
|
@ -31,6 +31,7 @@ type MessageWithAvatar<Message extends OptionalFields> = Omit<
|
|||
> & {
|
||||
avatar?: ContactAvatarType;
|
||||
expireTimer?: DurationInSeconds;
|
||||
expireTimerVersion: number | null;
|
||||
number?: string | undefined;
|
||||
};
|
||||
|
||||
|
@ -207,6 +208,7 @@ function prepareContact(
|
|||
const result = {
|
||||
...proto,
|
||||
expireTimer,
|
||||
expireTimerVersion: proto.expireTimerVersion ?? null,
|
||||
aci,
|
||||
avatar,
|
||||
number: dropNull(proto.number),
|
||||
|
|
|
@ -2281,6 +2281,7 @@ export default class MessageReceiver
|
|||
preview,
|
||||
canReplyToStory: Boolean(msg.allowsReplies),
|
||||
expireTimer: DurationInSeconds.DAY,
|
||||
expireTimerVersion: 0,
|
||||
flags: 0,
|
||||
groupV2,
|
||||
isStory: true,
|
||||
|
|
|
@ -188,6 +188,7 @@ export type MessageOptionsType = {
|
|||
bodyRanges?: ReadonlyArray<RawBodyRange>;
|
||||
contact?: ReadonlyArray<EmbeddedContactWithUploadedAvatar>;
|
||||
expireTimer?: DurationInSeconds;
|
||||
expireTimerVersion: number | undefined;
|
||||
flags?: number;
|
||||
group?: {
|
||||
id: string;
|
||||
|
@ -238,6 +239,8 @@ class Message {
|
|||
|
||||
expireTimer?: DurationInSeconds;
|
||||
|
||||
expireTimerVersion?: number;
|
||||
|
||||
flags?: number;
|
||||
|
||||
group?: {
|
||||
|
@ -277,6 +280,7 @@ class Message {
|
|||
this.bodyRanges = options.bodyRanges;
|
||||
this.contact = options.contact;
|
||||
this.expireTimer = options.expireTimer;
|
||||
this.expireTimerVersion = options.expireTimerVersion;
|
||||
this.flags = options.flags;
|
||||
this.group = options.group;
|
||||
this.groupV2 = options.groupV2;
|
||||
|
@ -534,6 +538,9 @@ class Message {
|
|||
if (this.expireTimer) {
|
||||
proto.expireTimer = this.expireTimer;
|
||||
}
|
||||
if (this.expireTimerVersion) {
|
||||
proto.expireTimerVersion = this.expireTimerVersion;
|
||||
}
|
||||
if (this.profileKey) {
|
||||
proto.profileKey = this.profileKey;
|
||||
}
|
||||
|
@ -930,6 +937,7 @@ export default class MessageSender {
|
|||
contact,
|
||||
deletedForEveryoneTimestamp,
|
||||
expireTimer,
|
||||
expireTimerVersion: undefined,
|
||||
flags,
|
||||
groupCallUpdate,
|
||||
groupV2,
|
||||
|
@ -1163,6 +1171,7 @@ export default class MessageSender {
|
|||
contentHint,
|
||||
deletedForEveryoneTimestamp,
|
||||
expireTimer,
|
||||
expireTimerVersion,
|
||||
groupId,
|
||||
serviceId,
|
||||
messageText,
|
||||
|
@ -1185,6 +1194,7 @@ export default class MessageSender {
|
|||
contentHint: number;
|
||||
deletedForEveryoneTimestamp: number | undefined;
|
||||
expireTimer: DurationInSeconds | undefined;
|
||||
expireTimerVersion: number | undefined;
|
||||
groupId: string | undefined;
|
||||
serviceId: ServiceIdString;
|
||||
messageText: string | undefined;
|
||||
|
@ -1209,6 +1219,7 @@ export default class MessageSender {
|
|||
contact,
|
||||
deletedForEveryoneTimestamp,
|
||||
expireTimer,
|
||||
expireTimerVersion,
|
||||
preview,
|
||||
profileKey,
|
||||
quote,
|
||||
|
|
1
ts/textsecure/Types.d.ts
vendored
1
ts/textsecure/Types.d.ts
vendored
|
@ -204,6 +204,7 @@ export type ProcessedDataMessage = {
|
|||
groupV2?: ProcessedGroupV2Context;
|
||||
flags: number;
|
||||
expireTimer: DurationInSeconds;
|
||||
expireTimerVersion: number;
|
||||
profileKey?: string;
|
||||
timestamp: number;
|
||||
payment?: AnyPaymentEvent;
|
||||
|
|
|
@ -740,9 +740,11 @@ export type WebAPIConnectType = {
|
|||
|
||||
export type CapabilitiesType = {
|
||||
deleteSync: boolean;
|
||||
versionedExpirationTimer: boolean;
|
||||
};
|
||||
export type CapabilitiesUploadType = {
|
||||
deleteSync: true;
|
||||
versionedExpirationTimer: true;
|
||||
};
|
||||
|
||||
type StickerPackManifestType = Uint8Array;
|
||||
|
@ -2612,6 +2614,7 @@ export function initialize({
|
|||
|
||||
const capabilities: CapabilitiesUploadType = {
|
||||
deleteSync: true,
|
||||
versionedExpirationTimer: true,
|
||||
};
|
||||
|
||||
const jsonData = {
|
||||
|
@ -2666,6 +2669,7 @@ export function initialize({
|
|||
}: LinkDeviceOptionsType) {
|
||||
const capabilities: CapabilitiesUploadType = {
|
||||
deleteSync: true,
|
||||
versionedExpirationTimer: true,
|
||||
};
|
||||
|
||||
const jsonData = {
|
||||
|
|
|
@ -321,6 +321,7 @@ export function processDataMessage(
|
|||
groupV2: processGroupV2Context(message.groupV2),
|
||||
flags: message.flags ?? 0,
|
||||
expireTimer: DurationInSeconds.fromSeconds(message.expireTimer ?? 0),
|
||||
expireTimerVersion: message.expireTimerVersion ?? 0,
|
||||
profileKey:
|
||||
message.profileKey && message.profileKey.length > 0
|
||||
? Bytes.toBase64(message.profileKey)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue