Rework info messages to reflect groups v2.

This commit is contained in:
Matthew Chen 2020-02-17 12:42:43 -03:00
parent ffbafc1dba
commit bbdad34838
6 changed files with 1488 additions and 211 deletions

View File

@ -282,7 +282,6 @@
34BBC858220C7ADA00857249 /* ImageEditorContents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BBC853220C7ADA00857249 /* ImageEditorContents.swift */; };
34BBC859220C7ADA00857249 /* ImageEditorStrokeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BBC854220C7ADA00857249 /* ImageEditorStrokeItem.swift */; };
34BBC85A220C7ADA00857249 /* ImageEditorTextItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BBC855220C7ADA00857249 /* ImageEditorTextItem.swift */; };
34BBC85B220C7ADA00857249 /* OrderedDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BBC856220C7ADA00857249 /* OrderedDictionary.swift */; };
34BBC85D220D19D600857249 /* ImageEditorPanGestureRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BBC85C220D19D600857249 /* ImageEditorPanGestureRecognizer.swift */; };
34BBC861220E883300857249 /* ImageEditorModelTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BBC85F220E883200857249 /* ImageEditorModelTest.swift */; };
34BBC862220E883300857249 /* ImageEditorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BBC860220E883200857249 /* ImageEditorTest.swift */; };
@ -1154,7 +1153,6 @@
34BBC853220C7ADA00857249 /* ImageEditorContents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorContents.swift; sourceTree = "<group>"; };
34BBC854220C7ADA00857249 /* ImageEditorStrokeItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorStrokeItem.swift; sourceTree = "<group>"; };
34BBC855220C7ADA00857249 /* ImageEditorTextItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorTextItem.swift; sourceTree = "<group>"; };
34BBC856220C7ADA00857249 /* OrderedDictionary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedDictionary.swift; sourceTree = "<group>"; };
34BBC85C220D19D600857249 /* ImageEditorPanGestureRecognizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorPanGestureRecognizer.swift; sourceTree = "<group>"; };
34BBC85F220E883200857249 /* ImageEditorModelTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorModelTest.swift; sourceTree = "<group>"; };
34BBC860220E883200857249 /* ImageEditorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageEditorTest.swift; sourceTree = "<group>"; };
@ -2402,7 +2400,6 @@
34BBC84A220B2CB200857249 /* ImageEditorTextViewController.swift */,
340872C022394CAA00CB25B0 /* ImageEditorTransform.swift */,
34BEDB1221C43F69007B0EAE /* ImageEditorView.swift */,
34BBC856220C7ADA00857249 /* OrderedDictionary.swift */,
34080F03222858DC0087E99F /* OWSViewController+ImageEditor.swift */,
346B4A762369BFC600B56007 /* PermissiveGestureRecognizer.swift */,
);
@ -4272,7 +4269,6 @@
346129AB1FD1F0EE00532771 /* OWSFormat.m in Sources */,
34AC0A12211B39EA00997B47 /* ContactTableViewCell.m in Sources */,
451F8A461FD715BA005CB9DA /* OWSGroupAvatarBuilder.m in Sources */,
34BBC85B220C7ADA00857249 /* OrderedDictionary.swift in Sources */,
34C2EEB42270D1CE00BCA1D0 /* StickerView.swift in Sources */,
346129961FD1E30000532771 /* OWSDatabaseMigration.m in Sources */,
346129FB1FD5F31400532771 /* OWS101ExistingUsersBlockOnIdentityChange.m in Sources */,

View File

@ -893,7 +893,7 @@
/* table cell label in conversation settings */
"DISAPPEARING_MESSAGES" = "Disappearing Messages";
/* 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. */
/* 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. */
"DISAPPEARING_MESSAGES_CONFIGURATION_GROUP_EXISTING_FORMAT" = "Messages in this conversation will disappear after %@.";
/* subheading in conversation settings */
@ -1163,27 +1163,102 @@
/* Title of notification shown during GRDB migration indicating that user may need to open app to view their content. */
"GRDB_MIGRATION_NOTIFICATION_TITLE" = "Optimizing Database";
/* Message indicating that the access to the group's attributes was changed by the local user. Embeds {{new access level}}. */
"GROUP_ACCESS_ATTRIBUTES_UPDATED_BY_LOCAL_USER_FORMAT" = "You changed who can edit group info to “%@“.";
/* Message indicating that the access to the group's attributes was changed by a remote user. Embeds {{ %1$@ user who changed the access, %2$@ new access level}}. */
"GROUP_ACCESS_ATTRIBUTES_UPDATED_BY_REMOTE_USER_FORMAT" = "%@ changed who can edit group info to “%@“.";
/* Message indicating that the access to the group's attributes was changed. Embeds {{new access level}}. */
"GROUP_ACCESS_ATTRIBUTES_UPDATED_FORMAT" = "Group info can be changed by “%@“.";
/* Description of the 'admins only' access level. */
"GROUP_ACCESS_LEVEL_ADMINISTRATORS" = "Admins Only";
/* Description of the 'all users' access level. */
"GROUP_ACCESS_LEVEL_ANY" = "Any User";
/* Description of the 'all members' access level. */
"GROUP_ACCESS_LEVEL_MEMBER" = "All Members";
/* Description of the 'unknown' access level. */
"GROUP_ACCESS_LEVEL_UNKNOWN" = "Unknown";
/* Message indicating that the access to the group's members was changed by the local user. Embeds {{new access level}}. */
"GROUP_ACCESS_MEMBERS_UPDATED_BY_LOCAL_USER_FORMAT" = "You changed who can edit group membership to “%@“.";
/* Message indicating that the access to the group's members was changed by a remote user. Embeds {{ %1$@ user who changed the access, %2$@ new access level}}. */
"GROUP_ACCESS_MEMBERS_UPDATED_BY_REMOTE_USER_FORMAT" = "%@ changed who can edit group membership to “%@“.";
/* Message indicating that the access to the group's members was changed. Embeds {{new access level}}. */
"GROUP_ACCESS_MEMBERS_UPDATED_FORMAT" = "Group membership can be changed by “%@“.";
/* Error indicating that a member cannot be added to a group. */
"GROUP_CANNOT_ADD_INVALID_MEMBER" = "This user cannot be added to the group.";
/* conversation history entry */
"GROUP_CREATED" = "Group created.";
/* conversation history entry when the local user created a group */
/* Message indicating that group was created by the local user. */
"GROUP_CREATED_BY_LOCAL_USER" = "You created the group.";
/* conversation history entry after a remote user added you to a group. Embeds {{remote user name}} */
/* Message indicating that group was created by another user. Embeds {{remote user name}}. */
"GROUP_CREATED_BY_REMOTE_USER_FORMAT" = "%@ added you to the group.";
/* Message indicating that group was created by an unknown user. */
"GROUP_CREATED_BY_UNKNOWN_USER" = "Group was created.";
/* Message shown in conversation view that indicates there were issues with group creation. */
"GROUP_CREATION_FAILED" = "Not all members could be added to the group. Tap to retry.";
/* Message indicating that the local user was added to the group by another user. Embeds {{remote user name}}. */
"GROUP_LOCAL_USER_ADDED_TO_GROUP_BY_REMOTE_USER_FORMAT" = "%@ added you.";
/* Message indicating that the local user was granted administrator role. */
"GROUP_LOCAL_USER_GRANTED_ADMINISTRATOR" = "You are now an admin.";
/* Message indicating that the local user was granted administrator role by another user. Embeds {{remote user name}}. */
"GROUP_LOCAL_USER_GRANTED_ADMINISTRATOR_BY_REMOTE_USER_FORMAT" = "%@ made you an admin.";
/* Message indicating that the local user accepted an invite to the group. */
"GROUP_LOCAL_USER_INVITE_ACCEPTED" = "You accepted an invitation to the group.";
/* Message indicating that the local user accepted an invite to the group. Embeds {{user who invited the local user}}. */
"GROUP_LOCAL_USER_INVITE_ACCEPTED_FORMAT" = "You accepted an invitation to the group from $@.";
/* Message indicating that the local user declined an invite to the group. */
"GROUP_LOCAL_USER_INVITE_DECLINED_BY_LOCAL_USER" = "You declined an invitation to the group.";
/* Message indicating that the local user declined an invite to the group. Embeds {{user who invited the local user}}. */
"GROUP_LOCAL_USER_INVITE_DECLINED_FORMAT" = "You declined an invitation to the group from $@.";
/* Message indicating that the local user's invite was revoked by another user. Embeds {{remote user name}}. */
"GROUP_LOCAL_USER_INVITE_REVOKED_BY_REMOTE_USER_FORMAT" = "%@ revoked your invitation to the group.";
/* Message indicating that the local user's invite was revoked by an unknown user. */
"GROUP_LOCAL_USER_INVITE_REVOKED_BY_UNKNOWN_USER" = "Your invitation to the group was revoked.";
/* Message indicating that the local user was invited to the group by another user. Embeds {{remote user name}}. */
"GROUP_LOCAL_USER_INVITED_BY_REMOTE_USER_FORMAT" = "%@ invited you.";
/* Message indicating that the local user was invited to the group. */
"GROUP_LOCAL_USER_INVITED_TO_THE_GROUP" = "You were invited to the group.";
/* Message indicating that the local user has joined the group. */
"GROUP_LOCAL_USER_JOINED_THE_GROUP" = "You joined the group.";
/* Message indicating that the local user was removed from the group by another user. Embeds {{remote user name}}. */
"GROUP_LOCAL_USER_REMOVED_BY_REMOTE_USER_FORMAT" = "%@ removed you.";
/* Message indicating that the local user was removed from the group by an unknown user. */
"GROUP_LOCAL_USER_REMOVED_BY_UNKNOWN_USER" = "You were removed from the group.";
/* Message indicating that the local user had their administrator role revoked. */
"GROUP_LOCAL_USER_REVOKED_ADMINISTRATOR" = "Your admin privileges were revoked.";
/* Message indicating that the local user had their administrator role revoked by another user. Embeds {{remote user name}}. */
"GROUP_LOCAL_USER_REVOKED_ADMINISTRATOR_BY_REMOTE_USER_FORMAT" = "%@ revoked your admin privileges.";
/* Conversation settings table section title */
"GROUP_MANAGEMENT_SECTION" = "Group Management";
/* No comment provided by engineer. */
"GROUP_MEMBER_LEFT" = " %@ left the group. ";
/* Button label for the 'call group member' button */
"GROUP_MEMBERS_CALL" = "Call";
@ -1202,37 +1277,139 @@
/* Button label for the 'send message to group member' button */
"GROUP_MEMBERS_SEND_MESSAGE" = "Message";
/* conversation history entry */
/* Message indicating that a remote user has accepted their invite. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_ACCEPTED_INVITE_FORMAT" = "%@ accepted an invitation to the group.";
/* Message indicating that a remote user has accepted an invite from the local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_ACCEPTED_INVITE_FROM_LOCAL_USER_FORMAT" = "%@ accepted your invitation to the group.";
/* Message indicating that a remote user has accepted their invite. Embeds {{ %1$@ user who accepted their invite, %2$@ user who invited the user}}. */
"GROUP_REMOTE_USER_ACCEPTED_INVITE_FROM_REMOTE_USER_FORMAT" = "%1$@ accepted an invitation to the group from %2$@.";
/* Message indicating that a remote user was added to the group by the local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_ADDED_TO_GROUP_BY_LOCAL_USER_FORMAT" = "You added %@.";
/* Message indicating that a remote user was added to the group by another user. Embeds {{ %1$@ user who added the user, %2$@ user who was added}}. */
"GROUP_REMOTE_USER_ADDED_TO_GROUP_BY_REMOTE_USER_FORMAT" = "%1$@ added %2$@.";
/* Message indicating that a remote user was added to the group. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_ADDED_TO_GROUP_FORMAT" = "%@ was added to the group.";
/* Message indicating that a remote user has declined their invite. */
"GROUP_REMOTE_USER_DECLINED_INVITE" = "1 person declined the invitation to the group.";
/* Message indicating that a remote user has declined their invite. Embeds {{ user who invited them }}. */
"GROUP_REMOTE_USER_DECLINED_INVITE_FORMAT" = "1 person invited by %@ declined the invitation to the group.";
/* Message indicating that a remote user has declined an invite to the group from the local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_DECLINED_INVITE_FROM_LOCAL_USER_FORMAT" = "%@ declined your invitation to the group.";
/* Message indicating that a remote user was granted administrator role. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_GRANTED_ADMINISTRATOR" = "%@ is now an admin";
/* Message indicating that a remote user was granted administrator role by local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_GRANTED_ADMINISTRATOR_BY_LOCAL_USER" = "You made %@ an admin.";
/* Message indicating that a remote user was granted administrator role by another user. Embeds {{ %1$@ user who granted, %2$@ user who was granted administrator role}}. */
"GROUP_REMOTE_USER_GRANTED_ADMINISTRATOR_BY_REMOTE_USER_FORMAT" = "%1$@ made %2$@ an admin.";
/* Message indicating that a single remote user's invite was revoked. */
"GROUP_REMOTE_USER_INVITE_REVOKED_1" = "Invitation to the group was revoked for 1 person.";
/* Message indicating that a remote user's invite was revoked by the local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_INVITE_REVOKED_BY_LOCAL_USER_FORMAT" = "Invitation to the group was revoked for %@.";
/* Message indicating that a single remote user's invite was revoked by a remote user. Embeds {{ user who revoked the invite }}. */
"GROUP_REMOTE_USER_INVITE_REVOKED_BY_REMOTE_USER_1_FORMAT" = "%@ revoked an invitation to the group for 1 person.";
/* Message indicating that a group of remote users' invites were revoked by a remote user. Embeds {{ %1$@ user who revoked the invite, %2$@ number of users }}. */
"GROUP_REMOTE_USER_INVITE_REVOKED_BY_REMOTE_USER_N_FORMAT" = "%1$@ revoked an invitation to the group for %2$@ people.";
/* Message indicating that a group of remote users' invites were revoked. Embeds {{ number of users }}. */
"GROUP_REMOTE_USER_INVITE_REVOKED_N_FORMAT" = "Invitations to the group were revoked for %@ people.";
/* Message indicating that a single remote user was invited to the group. */
"GROUP_REMOTE_USER_INVITED_1" = "1 person was invited to the group.";
/* Message indicating that a remote user was invited to the group by the local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_INVITED_BY_LOCAL_USER_FORMAT" = "You invited %@ to the group.";
/* Message indicating that a single remote user was invited to the group by the local user. Embeds {{ user who invited the user }}. */
"GROUP_REMOTE_USER_INVITED_BY_REMOTE_USER_1_FORMAT" = "%@ invited 1 person to the group.";
/* Message indicating that a group of remote users were invited to the group by the local user. Embeds {{ %1$@ user who invited the user, %2$@ number of invited users }}. */
"GROUP_REMOTE_USER_INVITED_BY_REMOTE_USER_N_FORMAT" = "%1$@ invited %2$@ people to the group.";
/* Message indicating that a group of remote users were invited to the group. Embeds {{number of invited users}}. */
"GROUP_REMOTE_USER_INVITED_N_FORMAT" = "%@ people were invited to the group.";
/* Message indicating that a remote user was added to the group. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_JOINED_GROUP_FORMAT" = "%@ joined the group.";
/* Message indicating that a remote user has left the group. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_LEFT_GROUP_FORMAT" = "%@ left the group.";
/* Message indicating that a remote user was removed from the group by the local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_REMOVED_BY_LOCAL_USER_FORMAT" = "You removed %@.";
/* Message indicating that the remote user was removed from the group. Embeds {{ %1$@ user who removed the user, %2$@ user who was removed}}. */
"GROUP_REMOTE_USER_REMOVED_FROM_GROUP_BY_REMOTE_USER_FORMAT" = "%1$@ removed %2$@.";
/* Message indicating that a remote user had their administrator role revoked. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_REVOKED_ADMINISTRATOR" = "%@ had their admin privileges revoked.";
/* Message indicating that a remote user had their administrator role revoked by local user. Embeds {{remote user name}}. */
"GROUP_REMOTE_USER_REVOKED_ADMINISTRATOR_BY_LOCAL_USER" = "You revoked admin privileges from %@.";
/* Message indicating that a remote user had their administrator role revoked by another user. Embeds {{ %1$@ user who revoked, %2$@ user who was granted administrator role}}. */
"GROUP_REMOTE_USER_REVOKED_ADMINISTRATOR_BY_REMOTE_USER_FORMAT" = "%1$@ revoked admin privileges from %2$@.";
/* Info message indicating that the group was updated by an unknown user. */
"GROUP_UPDATED" = "Group updated.";
/* conversation history entry. embeds {0: all but the final member} and {1: the final member} */
"GROUP_UPDATED_ADDED_MULTIPLE_MEMBERS_FORMAT" = "%@ and %@ joined the group.";
/* Message indicating that the group's avatar was removed. */
"GROUP_UPDATED_AVATAR_REMOVED" = "The group avatar was removed.";
/* conversation history entry. Embeds the {{added user's name}} */
"GROUP_UPDATED_ADDED_ONE_MEMBER_FORMAT" = "%@ joined the group.";
/* Message indicating that the group's avatar was removed. */
"GROUP_UPDATED_AVATAR_REMOVED_BY_LOCAL_USER" = "You removed the avatar.";
/* conversation history entry */
"GROUP_UPDATED_AVATAR_REMOVED" = "Removed the group avatar.";
/* Message indicating that the group's avatar was removed by a remote user. Embeds {{user who removed the avatar}}. */
"GROUP_UPDATED_AVATAR_REMOVED_BY_REMOTE_USER_FORMAT" = "%@ removed the avatar.";
/* conversation history entry */
/* Message indicating that the group's avatar was changed. */
"GROUP_UPDATED_AVATAR_UPDATED" = "Updated the group avatar.";
/* conversation history entry. */
/* Message indicating that the group's avatar was changed. */
"GROUP_UPDATED_AVATAR_UPDATED_BY_LOCAL_USER" = "You updated the avatar.";
/* Message indicating that the group's avatar was changed by a remote user. Embeds {{user who changed the avatar}}. */
"GROUP_UPDATED_AVATAR_UPDATED_BY_REMOTE_USER_FORMAT" = "%@ updated the avatar.";
/* Info message indicating that the group was updated by the local user. */
"GROUP_UPDATED_BY_LOCAL_USER" = "You updated the group.";
/* conversation history entry. Embeds {{remote user's name}} */
/* Info message indicating that the group was updated by another user. Embeds {{remote user name}}. */
"GROUP_UPDATED_BY_REMOTE_USER_FORMAT" = "%@ updated the group.";
/* conversation history entry */
"GROUP_UPDATED_NAME_REMOVED" = "Removed the name.";
/* Message indicating that the group's name was removed. */
"GROUP_UPDATED_NAME_REMOVED" = "The group name was removed.";
/* conversation history entry. Embeds {{group name}} */
/* Message indicating that the group's name was removed by the local user. */
"GROUP_UPDATED_NAME_REMOVED_BY_LOCAL_USER" = "You removed the group name.";
/* Message indicating that the group's name was removed by a remote user. Embeds {{user who removed the name}}. */
"GROUP_UPDATED_NAME_REMOVED_BY_REMOTE_USER_FORMAT" = "%@ removed the group name.";
/* Message indicating that the group's name was changed by the local user. Embeds {{new group name}}. */
"GROUP_UPDATED_NAME_UPDATED_BY_LOCAL_USER_FORMAT" = "You changed the group name to “%@“.";
/* Message indicating that the group's name was changed by a remote user. Embeds {{ %1$@ user who changed the name, %2$@ new group name}}. */
"GROUP_UPDATED_NAME_UPDATED_BY_REMOTE_USER_FORMAT" = "%1$@ changed the group name to “%2$@“.";
/* Message indicating that the group's name was changed. Embeds {{new group name}}. */
"GROUP_UPDATED_NAME_UPDATED_FORMAT" = "Group name is now “%@”.";
/* conversation history entry */
"GROUP_UPDATED_READDED_YOU" = "Re-added you to the group.";
/* No comment provided by engineer. */
/* Message indicating that the local user left the group. */
"GROUP_YOU_LEFT" = "You have left the group.";
/* Error indicating that an error occurred while accepting an invite. */
@ -1979,10 +2156,10 @@
/* Button text which opens the settings app */
"OPEN_SETTINGS_BUTTON" = "Settings";
/* Info Message when {{other user}} disables or doesn't support disappearing messages */
/* Info Message when another user disabled disappearing messages. Embeds {{name of other user}}. */
"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ disabled disappearing messages.";
/* Info Message when {{other user}} updates message expiration to {{time amount}}, see the *_TIME_AMOUNT strings for context. */
/* Info Message when another user enabled disappearing messages. Embeds {{name of other user}} and {{time amount}} before messages disappear. See the *_TIME_AMOUNT strings for context. */
"OTHER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "%@ set disappearing message time to %@.";
/* Label warning the user that the Signal service may be down. */
@ -2171,6 +2348,9 @@
/* Body for PIN megaphone when user already has a PIN */
"PINS_MEGAPHONE_HAS_PIN_BODY" = "Your Registration Lock is now called a PIN. Updating it takes seconds.";
/* Toast indication that the user will be reminded later to update their PIN. Embeds {{time until mandatory}} */
"PINS_MEGAPHONE_HAS_PIN_SNOOZE_TOAST_FORMAT" = "PINS_MEGAPHONE_HAS_PIN_SNOOZE_TOAST_FORMAT";
/* Title for PIN megaphone when user already has a PIN */
"PINS_MEGAPHONE_HAS_PIN_TITLE" = "Introducing PINs";
@ -2180,6 +2360,9 @@
/* Body for PIN megaphone when user doesn't have a PIN */
"PINS_MEGAPHONE_NO_PIN_BODY" = "PINs add another layer of security to your Signal account.";
/* Toast indication that the user will be reminded later to setup their PIN. Embeds {{time until mandatory}} */
"PINS_MEGAPHONE_NO_PIN_SNOOZE_TOAST_FORMAT" = "PINS_MEGAPHONE_NO_PIN_SNOOZE_TOAST_FORMAT";
/* Title for PIN megaphone when user doesn't have a PIN */
"PINS_MEGAPHONE_NO_PIN_TITLE" = "Create a PIN";
@ -3170,6 +3353,12 @@
/* Info message recorded in conversation history when local user has received an unknown message and has upgraded. */
"UNKNOWN_PROTOCOL_VERSION_UPGRADE_COMPLETE_WITHOUT_NAME" = "You can ask the sender to re-send this message now that you are using an up-to-date version of Signal.";
/* Info Message when an unknown user disabled disappearing messages. */
"UNKNOWN_USER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "Disappearing messages were disabled.";
/* Info Message when an unknown user enabled disappearing messages. Embeds {{time amount}} before messages disappear. see the *_TIME_AMOUNT strings for context. */
"UNKNOWN_USER_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "Disappearing message time was set to %@.";
/* Indicates an unknown or unrecognizable value. */
"UNKNOWN_VALUE" = "Unknown";
@ -3329,11 +3518,11 @@
/* Activity indicator title, shown upon returning to the device manager, until you complete the provisioning process on desktop */
"WAITING_TO_COMPLETE_DEVICE_LINK_TEXT" = "Complete setup on Signal Desktop.";
/* Info Message when you disable disappearing messages */
/* Info Message when you disabled disappearing messages. */
"YOU_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION" = "You disabled disappearing messages.";
/* alert body shown when trying to use features in the app before completing registration-related setup. */
"YOU_MUST_COMPLETE_ONBOARDING_BEFORE_PROCEEDING" = "You must complete setup before proceeding.";
/* Info message embedding a {{time amount}}, see the *_TIME_AMOUNT strings for context. */
/* Info Message when you disabled disappearing messages. Embeds a {{time amount}} before messages disappear. see the *_TIME_AMOUNT strings for context. */
"YOU_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION" = "You set disappearing message time to %@.";

View File

@ -11,6 +11,7 @@ public class DisappearingMessageToken: MTLModel {
@objc
public var durationSeconds: UInt32 = 0
@objc
public init(isEnabled: Bool, durationSeconds: UInt32) {
// Consider disabled if duration is zero.
self.isEnabled = isEnabled && durationSeconds > 0

View File

@ -5,6 +5,7 @@
#import "OWSDisappearingConfigurationUpdateInfoMessage.h"
#import "OWSDisappearingMessagesConfiguration.h"
#import <SignalCoreKit/NSString+OWS.h>
#import <SignalServiceKit/SignalServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN
@ -134,43 +135,12 @@ NS_ASSUME_NONNULL_BEGIN
- (NSString *)previewTextWithTransaction:(SDSAnyReadTransaction *)transaction
{
if (self.createdInExistingGroup) {
OWSAssertDebug(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 "
@"*_TIME_AMOUNT "
@"strings for context.");
NSString *durationString =
[NSString formatDurationSeconds:self.configurationDurationSeconds useShortFormat:NO];
return [NSString stringWithFormat:infoFormat, self.createdByRemoteName, durationString];
} else {
NSString *infoFormat = NSLocalizedString(@"OTHER_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION",
@"Info Message when {{other user}} disables or doesn't support disappearing messages");
return [NSString stringWithFormat:infoFormat, self.createdByRemoteName];
}
} else {
// Changed by localNumber on this device or via synced transcript
if (self.configurationIsEnabled && self.configurationDurationSeconds > 0) {
NSString *infoFormat = NSLocalizedString(@"YOU_UPDATED_DISAPPEARING_MESSAGES_CONFIGURATION",
@"Info message embedding a {{time amount}}, see the *_TIME_AMOUNT strings for context.");
NSString *durationString =
[NSString formatDurationSeconds:self.configurationDurationSeconds useShortFormat:NO];
return [NSString stringWithFormat:infoFormat, durationString];
} else {
return NSLocalizedString(@"YOU_DISABLED_DISAPPEARING_MESSAGES_CONFIGURATION",
@"Info Message when you disable disappearing messages");
}
}
DisappearingMessageToken *newToken =
[[DisappearingMessageToken alloc] initWithIsEnabled:self.configurationIsEnabled
durationSeconds:self.configurationDurationSeconds];
return [TSInfoMessage legacyDisappearingMessageUpdateDescriptionWithToken:newToken
wasAddedToExistingGroup:self.createdInExistingGroup
updaterName:self.createdByRemoteName];
}
@end

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
// Copyright (c) 2020 Open Whisper Systems. All rights reserved.
//
import Foundation
@ -103,3 +103,38 @@ public class OrderedDictionary<KeyType: Hashable, ValueType> {
return values
}
}
// MARK: -
extension OrderedDictionary: Sequence {
public typealias Iterator = AnyIterator<(KeyType, ValueType)>
struct OrderedDictionaryIterator {
private let keys: [KeyType]
private let map: [KeyType: ValueType]
private var index: Int = 0
fileprivate init(keys: [KeyType], map: [KeyType: ValueType]) {
self.keys = keys
self.map = map
}
mutating func next() -> (KeyType, ValueType)? {
guard index < keys.count else {
return nil
}
let key = keys[index]
index += 1
guard let value = map[key] else {
owsFailDebug("Missing value for key.")
return nil
}
return (key, value)
}
}
public func makeIterator() -> Iterator {
var iterator = OrderedDictionaryIterator(keys: orderedKeys, map: keyValueMap)
return AnyIterator { iterator.next() }
}
}