Handle timer updates along with group updates

pull/1/head
Scott Nonnenberg 7 years ago
parent 67464774c3
commit 9d9a797bda

@ -1087,7 +1087,7 @@
}, },
"timerSetTo": { "timerSetTo": {
"message": "Timer set to $time$", "message": "Timer set to $time$",
"description": "Displayed in the conversation list when the timer is updated.", "description": "Displayed in the conversation list when the timer is updated by some automatic action.",
"placeholders": { "placeholders": {
"time": { "time": {
"content": "$1", "content": "$1",

@ -899,13 +899,12 @@
providedExpireTimer, providedExpireTimer,
providedSource, providedSource,
receivedAt, receivedAt,
providedOptions options = {}
) { ) {
const options = providedOptions || {};
let expireTimer = providedExpireTimer; let expireTimer = providedExpireTimer;
let source = providedSource; let source = providedSource;
_.defaults(options, { fromSync: false }); _.defaults(options, { fromSync: false, fromGroupUpdate: false });
if (!expireTimer) { if (!expireTimer) {
expireTimer = null; expireTimer = null;
@ -942,6 +941,7 @@
expireTimer, expireTimer,
source, source,
fromSync: options.fromSync, fromSync: options.fromSync,
fromGroupUpdate: options.fromGroupUpdate,
}, },
}); });
if (this.isPrivate()) { if (this.isPrivate()) {

@ -641,7 +641,7 @@
}); });
} }
if (!message.isEndSession() && !message.isGroupUpdate()) { if (!message.isEndSession()) {
if (dataMessage.expireTimer) { if (dataMessage.expireTimer) {
if ( if (
dataMessage.expireTimer !== conversation.get('expireTimer') dataMessage.expireTimer !== conversation.get('expireTimer')
@ -649,10 +649,17 @@
conversation.updateExpirationTimer( conversation.updateExpirationTimer(
dataMessage.expireTimer, dataMessage.expireTimer,
source, source,
message.get('received_at') message.get('received_at'),
{
fromGroupUpdate: message.isGroupUpdate(),
}
); );
} }
} else if (conversation.get('expireTimer')) { } else if (
conversation.get('expireTimer') &&
// We only turn off timers if it's not a group update
!message.isGroupUpdate()
) {
conversation.updateExpirationTimer( conversation.updateExpirationTimer(
null, null,
source, source,

@ -103,7 +103,10 @@
const timerUpdate = this.model.get('expirationTimerUpdate'); const timerUpdate = this.model.get('expirationTimerUpdate');
const prettySeconds = Whisper.ExpirationTimerOptions.getName(seconds); const prettySeconds = Whisper.ExpirationTimerOptions.getName(seconds);
if (timerUpdate && timerUpdate.fromSync) { if (
timerUpdate &&
(timerUpdate.fromSync || timerUpdate.fromGroupUpdate)
) {
timerMessage = i18n('timerSetOnSync', prettySeconds); timerMessage = i18n('timerSetOnSync', prettySeconds);
} else if (this.conversation.id === textsecure.storage.user.getNumber()) { } else if (this.conversation.id === textsecure.storage.user.getNumber()) {
timerMessage = i18n('youChangedTheTimer', prettySeconds); timerMessage = i18n('youChangedTheTimer', prettySeconds);

Loading…
Cancel
Save