From 0a172467372218d4aef11571f8f1931e82546d99 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 14 Jun 2018 10:35:47 -0400 Subject: [PATCH] Don't use group name in message. // FREEBIE --- .../ViewControllers/DebugUI/DebugUIMessages.m | 40 +++++++++---------- .../OWSConversationSettingsViewController.m | 10 ++--- .../translations/en.lproj/Localizable.strings | 2 +- ...sappearingConfigurationUpdateInfoMessage.h | 2 +- ...sappearingConfigurationUpdateInfoMessage.m | 28 +++++++------ .../src/Messages/OWSDisappearingMessagesJob.h | 6 +-- .../src/Messages/OWSDisappearingMessagesJob.m | 6 +-- .../src/Messages/OWSMessageManager.m | 6 +-- 8 files changed, 51 insertions(+), 49 deletions(-) diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m index 29dc41974..9c1e34b80 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m @@ -3423,11 +3423,11 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac enabled:YES durationSeconds:(uint32_t)[durationSeconds intValue]]; [result addObject:[[OWSDisappearingConfigurationUpdateInfoMessage alloc] - initWithTimestamp:[NSDate ows_millisecondTimeStamp] - thread:thread - configuration:disappearingMessagesConfiguration - createdByRemoteName:@"Alice" - createdInExistingGroupName:nil]]; + initWithTimestamp:[NSDate ows_millisecondTimeStamp] + thread:thread + configuration:disappearingMessagesConfiguration + createdByRemoteName:@"Alice" + createdInExistingGroup:NO]]; } { @@ -3437,11 +3437,11 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac enabled:YES durationSeconds:(uint32_t)[durationSeconds intValue]]; [result addObject:[[OWSDisappearingConfigurationUpdateInfoMessage alloc] - initWithTimestamp:[NSDate ows_millisecondTimeStamp] - thread:thread - configuration:disappearingMessagesConfiguration - createdByRemoteName:nil - createdInExistingGroupName:@"Book Club"]]; + initWithTimestamp:[NSDate ows_millisecondTimeStamp] + thread:thread + configuration:disappearingMessagesConfiguration + createdByRemoteName:nil + createdInExistingGroup:YES]]; } { @@ -3451,11 +3451,11 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac enabled:YES durationSeconds:(uint32_t)[durationSeconds intValue]]; [result addObject:[[OWSDisappearingConfigurationUpdateInfoMessage alloc] - initWithTimestamp:[NSDate ows_millisecondTimeStamp] - thread:thread - configuration:disappearingMessagesConfiguration - createdByRemoteName:@"Alice" - createdInExistingGroupName:nil]]; + initWithTimestamp:[NSDate ows_millisecondTimeStamp] + thread:thread + configuration:disappearingMessagesConfiguration + createdByRemoteName:@"Alice" + createdInExistingGroup:NO]]; } { OWSDisappearingMessagesConfiguration *disappearingMessagesConfiguration = @@ -3463,11 +3463,11 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac enabled:NO durationSeconds:0]; [result addObject:[[OWSDisappearingConfigurationUpdateInfoMessage alloc] - initWithTimestamp:[NSDate ows_millisecondTimeStamp] - thread:thread - configuration:disappearingMessagesConfiguration - createdByRemoteName:@"Alice" - createdInExistingGroupName:nil]]; + initWithTimestamp:[NSDate ows_millisecondTimeStamp] + thread:thread + configuration:disappearingMessagesConfiguration + createdByRemoteName:@"Alice" + createdInExistingGroup:NO]]; } [result addObject:[TSInfoMessage userNotRegisteredMessageInThread:thread recipientId:@"+19174054215"]]; diff --git a/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m b/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m index 43239ee0d..6fc0c9730 100644 --- a/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m +++ b/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m @@ -821,11 +821,11 @@ NS_ASSUME_NONNULL_BEGIN [self.disappearingMessagesConfiguration save]; OWSDisappearingConfigurationUpdateInfoMessage *infoMessage = [[OWSDisappearingConfigurationUpdateInfoMessage alloc] - initWithTimestamp:[NSDate ows_millisecondTimeStamp] - thread:self.thread - configuration:self.disappearingMessagesConfiguration - createdByRemoteName:nil - createdInExistingGroupName:nil]; + initWithTimestamp:[NSDate ows_millisecondTimeStamp] + thread:self.thread + configuration:self.disappearingMessagesConfiguration + createdByRemoteName:nil + createdInExistingGroup:NO]; [infoMessage save]; [OWSNotifyRemoteOfUpdatedDisappearingConfigurationJob diff --git a/Signal/translations/en.lproj/Localizable.strings b/Signal/translations/en.lproj/Localizable.strings index e79a64ffc..f7346ece4 100644 --- a/Signal/translations/en.lproj/Localizable.strings +++ b/Signal/translations/en.lproj/Localizable.strings @@ -660,7 +660,7 @@ "DISAPPEARING_MESSAGES" = "Disappearing Messages"; /* Info Message when added to {{group name}} which has enabled message expiration after {{time amount}}, see the *_TIME_AMOUNT strings for context. */ -"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "%@ has disappearing messages enabled for %@."; +"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "Messages in this conversation will disappear after %@."; /* subheading in conversation settings */ "DISAPPEARING_MESSAGES_DESCRIPTION" = "When enabled, messages sent and received in this conversation will disappear after they have been seen."; diff --git a/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.h b/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.h index ee0752039..852fa1496 100644 --- a/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.h +++ b/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.h @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN thread:(TSThread *)thread configuration:(OWSDisappearingMessagesConfiguration *)configuration createdByRemoteName:(nullable NSString *)remoteName - createdInExistingGroupName:(nullable NSString *)createdInExistingGroupName; + createdInExistingGroup:(BOOL)createdInExistingGroup; @end diff --git a/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.m b/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.m index 84ee41655..bcb58ce73 100644 --- a/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/OWSDisappearingConfigurationUpdateInfoMessage.m @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN @interface OWSDisappearingConfigurationUpdateInfoMessage () @property (nonatomic, readonly, nullable) NSString *createdByRemoteName; -@property (nonatomic, readonly, nullable) NSString *createdInExistingGroupName; +@property (nonatomic, readonly) BOOL createdInExistingGroup; @property (nonatomic, readonly) BOOL configurationIsEnabled; @property (nonatomic, readonly) uint32_t configurationDurationSeconds; @@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN thread:(TSThread *)thread configuration:(OWSDisappearingMessagesConfiguration *)configuration createdByRemoteName:(nullable NSString *)remoteName - createdInExistingGroupName:(nullable NSString *)createdInExistingGroupName + createdInExistingGroup:(BOOL)createdInExistingGroup { self = [super initWithTimestamp:timestamp inThread:thread messageType:TSInfoMessageTypeDisappearingMessagesUpdate]; if (!self) { @@ -32,8 +32,12 @@ NS_ASSUME_NONNULL_BEGIN _configurationIsEnabled = configuration.isEnabled; _configurationDurationSeconds = configuration.durationSeconds; + + // At most one should be set + OWSAssert(!remoteName || !createdInExistingGroup); + _createdByRemoteName = remoteName; - _createdInExistingGroupName = createdInExistingGroupName; + _createdInExistingGroup = createdInExistingGroup; return self; } @@ -47,7 +51,15 @@ NS_ASSUME_NONNULL_BEGIN -(NSString *)previewTextWithTransaction:(YapDatabaseReadTransaction *)transaction { - if (self.createdByRemoteName) { + if (self.createdInExistingGroup) { + OWSAssert(self.configurationIsEnabled && self.configurationDurationSeconds > 0); + NSString *infoFormat = NSLocalizedString(@"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT", + @"Info Message when added to a group which has enabled disappearing messages. Embeds {{time amount}} " + @"before messages disappear, see the *_TIME_AMOUNT strings for context."); + + NSString *durationString = [NSString formatDurationSeconds:self.configurationDurationSeconds useShortFormat:NO]; + return [NSString stringWithFormat:infoFormat, durationString]; + } else if (self.createdByRemoteName) { if (self.configurationIsEnabled && self.configurationDurationSeconds > 0) { NSString *infoFormat = NSLocalizedString(@"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION", @"Info Message when {{other user}} updates message expiration to {{time amount}}, see the " @@ -62,14 +74,6 @@ NS_ASSUME_NONNULL_BEGIN @"Info Message when {{other user}} disables or doesn't support disappearing messages"); return [NSString stringWithFormat:infoFormat, self.createdByRemoteName]; } - } else if (self.createdInExistingGroupName) { - OWSAssert(self.configurationIsEnabled && self.configurationDurationSeconds > 0); - NSString *infoFormat = NSLocalizedString(@"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT", - @"Info Message when added to {{group name}} which has enabled message expiration after {{time amount}}, " - @"see the *_TIME_AMOUNT strings for context."); - - NSString *durationString = [NSString formatDurationSeconds:self.configurationDurationSeconds useShortFormat:NO]; - return [NSString stringWithFormat:infoFormat, self.createdByRemoteName, durationString]; } else { // Changed by local request if (self.configurationIsEnabled && self.configurationDurationSeconds > 0) { diff --git a/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.h b/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.h index b5b3fb028..af70638e3 100644 --- a/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.h +++ b/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.h @@ -49,14 +49,14 @@ NS_ASSUME_NONNULL_BEGIN * * @param remoteContactName * nil for outgoing messages, otherwise the name of the sender - * @param existingGroupName - * set when being added to a group which already has DM enabled, otherwise nil + * @param createdInExistingGroup + * YES when being added to a group which already has DM enabled, otherwise NO */ - (void)becomeConsistentWithDisappearingDuration:(uint32_t)duration thread:(TSThread *)thread appearBeforeTimestamp:(uint64_t)timestampForSorting createdByRemoteContactName:(nullable NSString *)remoteContactName - createdInExistingGroupName:(nullable NSString *)existingGroupName + createdInExistingGroup:(BOOL)createdInExistingGroup transaction:(YapDatabaseReadWriteTransaction *)transaction; // Clean up any messages that expired since last launch immediately diff --git a/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m b/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m index 7b640bf78..ef2c4767e 100644 --- a/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m +++ b/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m @@ -208,7 +208,7 @@ void AssertIsOnDisappearingMessagesQueue() thread:thread appearBeforeTimestamp:message.timestampForSorting createdByRemoteContactName:remoteContactName - createdInExistingGroupName:nil + createdInExistingGroup:NO transaction:transaction]; } @@ -216,7 +216,7 @@ void AssertIsOnDisappearingMessagesQueue() thread:(TSThread *)thread appearBeforeTimestamp:(uint64_t)timestampForSorting createdByRemoteContactName:(nullable NSString *)remoteContactName - createdInExistingGroupName:(nullable NSString *)existingGroupName + createdInExistingGroup:(BOOL)createdInExistingGroup transaction:(YapDatabaseReadWriteTransaction *)transaction { OWSAssert(thread); @@ -253,7 +253,7 @@ void AssertIsOnDisappearingMessagesQueue() thread:thread configuration:disappearingMessagesConfiguration createdByRemoteName:remoteContactName - createdInExistingGroupName:existingGroupName]; + createdInExistingGroup:createdInExistingGroup]; [infoMessage saveWithTransaction:transaction]; backgroundTask = nil; diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index 818947e0e..6bd4c892e 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -776,7 +776,7 @@ NS_ASSUME_NONNULL_BEGIN thread:thread configuration:disappearingMessagesConfiguration createdByRemoteName:name - createdInExistingGroupName:nil]; + createdInExistingGroup:NO]; [message saveWithTransaction:transaction]; } @@ -968,14 +968,12 @@ NS_ASSUME_NONNULL_BEGIN customMessage:updateGroupInfo] saveWithTransaction:transaction]; if (dataMessage.hasExpireTimer && dataMessage.expireTimer > 0) { - // We could use the sender name here, but maybe it makes more sense to attribute it to the group. - NSString *configUpdateName = dataMessage.group.name; [[OWSDisappearingMessagesJob sharedJob] becomeConsistentWithDisappearingDuration:dataMessage.expireTimer thread:newGroupThread appearBeforeTimestamp:now createdByRemoteContactName:nil - createdInExistingGroupName:configUpdateName + createdInExistingGroup:YES transaction:transaction]; }