diff --git a/SignalServiceKit/src/Devices/OWSContactsOutputStream.m b/SignalServiceKit/src/Devices/OWSContactsOutputStream.m index 9b6fb8f6f..e542c602e 100644 --- a/SignalServiceKit/src/Devices/OWSContactsOutputStream.m +++ b/SignalServiceKit/src/Devices/OWSContactsOutputStream.m @@ -61,6 +61,11 @@ NS_ASSUME_NONNULL_BEGIN if (disappearingMessagesConfiguration && disappearingMessagesConfiguration.isEnabled) { [contactBuilder setExpireTimer:disappearingMessagesConfiguration.durationSeconds]; + } else { + // Rather than *not* set the field, we expicitly set it to 0 so desktop + // can easily distinguish between a modern client declaring "off" vs a + // legacy client "not specifying". + [contactBuilder setExpireTimer:0]; } } diff --git a/SignalServiceKit/src/Devices/OWSGroupsOutputStream.m b/SignalServiceKit/src/Devices/OWSGroupsOutputStream.m index 0960bb163..8aa15079b 100644 --- a/SignalServiceKit/src/Devices/OWSGroupsOutputStream.m +++ b/SignalServiceKit/src/Devices/OWSGroupsOutputStream.m @@ -42,6 +42,11 @@ NS_ASSUME_NONNULL_BEGIN if (disappearingMessagesConfiguration && disappearingMessagesConfiguration.isEnabled) { [groupBuilder setExpireTimer:disappearingMessagesConfiguration.durationSeconds]; + } else { + // Rather than *not* set the field, we expicitly set it to 0 so desktop + // can easily distinguish between a modern client declaring "off" vs a + // legacy client "not specifying". + [groupBuilder setExpireTimer:0]; } }