diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 070daf54a..4be8bf9e1 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -26,6 +26,7 @@ 453D28B71D32BA5F00D523F0 /* OWSDisplayedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 453D28B61D32BA5F00D523F0 /* OWSDisplayedMessage.m */; }; 453D28BA1D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m in Sources */ = {isa = PBXBuildFile; fileRef = 453D28B91D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m */; }; 453D28BB1D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m in Sources */ = {isa = PBXBuildFile; fileRef = 453D28B91D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m */; }; + 45514DE21DDFA183003EFF90 /* InviteFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45514DE11DDFA183003EFF90 /* InviteFlow.swift */; }; 45666EC61D99483D008FE134 /* OWSAvatarBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 45666EC51D99483D008FE134 /* OWSAvatarBuilder.m */; }; 45666EC91D994C0D008FE134 /* OWSGroupAvatarBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 45666EC81D994C0D008FE134 /* OWSGroupAvatarBuilder.m */; }; 45666F561D9B2827008FE134 /* OWSScrubbingLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 45666F551D9B2827008FE134 /* OWSScrubbingLogFormatter.m */; }; @@ -565,6 +566,7 @@ 453D28B81D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSMessagesBubblesSizeCalculator.h; sourceTree = ""; }; 453D28B91D332DB100D523F0 /* OWSMessagesBubblesSizeCalculator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSMessagesBubblesSizeCalculator.m; sourceTree = ""; }; 454B35071D08EED80026D658 /* mk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = mk; path = translations/mk.lproj/Localizable.strings; sourceTree = ""; }; + 45514DE11DDFA183003EFF90 /* InviteFlow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteFlow.swift; sourceTree = ""; }; 45666EC41D99483D008FE134 /* OWSAvatarBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSAvatarBuilder.h; sourceTree = ""; }; 45666EC51D99483D008FE134 /* OWSAvatarBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSAvatarBuilder.m; sourceTree = ""; }; 45666EC71D994C0D008FE134 /* OWSGroupAvatarBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSGroupAvatarBuilder.h; sourceTree = ""; }; @@ -1824,6 +1826,7 @@ 76EB050C18170B33006006FC /* InCallViewController.m */, 458E382F1D6682450094BD24 /* OWSQRCodeScanningViewController.h */, 458E38301D6682450094BD24 /* OWSQRCodeScanningViewController.m */, + 45514DE11DDFA183003EFF90 /* InviteFlow.swift */, ); name = "View Controllers"; path = "view controllers"; @@ -2834,6 +2837,7 @@ FCB11D931A12A4AA002F93FB /* FullImageViewController.m in Sources */, B60C16651988999D00E97A6C /* VersionMigrations.m in Sources */, B97940271832BD2400BD66CB /* UIUtil.m in Sources */, + 45514DE21DDFA183003EFF90 /* InviteFlow.swift in Sources */, 4CE0E3771B954546007210CF /* TSAnimatedAdapter.m in Sources */, 76EB05BE18170B33006006FC /* ConfirmPacket.m in Sources */, 4531C9C41DD8E6D800F08304 /* JSQMessagesCollectionViewCell+OWS.m in Sources */, diff --git a/Signal/Images.xcassets/logo_with_background.imageset/Contents.json b/Signal/Images.xcassets/logo_with_background.imageset/Contents.json new file mode 100644 index 000000000..8ad7b94b7 --- /dev/null +++ b/Signal/Images.xcassets/logo_with_background.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "logo_with_background.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "logo_with_background@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "logo_with_background@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background.png b/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background.png new file mode 100644 index 000000000..e2193b692 Binary files /dev/null and b/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background.png differ diff --git a/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background@2x.png b/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background@2x.png new file mode 100644 index 000000000..946afbcc4 Binary files /dev/null and b/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background@2x.png differ diff --git a/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background@3x.png b/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background@3x.png new file mode 100644 index 000000000..38a056e17 Binary files /dev/null and b/Signal/Images.xcassets/logo_with_background.imageset/logo_with_background@3x.png differ diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist index da8c70d8a..5f5d19585 100644 --- a/Signal/Signal-Info.plist +++ b/Signal/Signal-Info.plist @@ -38,7 +38,7 @@ CFBundleVersion - 2.6.6.0 + 2.6.6.1 ITSAppUsesNonExemptEncryption LOGS_EMAIL diff --git a/Signal/src/Models/OWSContactAvatarBuilder.h b/Signal/src/Models/OWSContactAvatarBuilder.h index 01b22a6fa..6fceb151a 100644 --- a/Signal/src/Models/OWSContactAvatarBuilder.h +++ b/Signal/src/Models/OWSContactAvatarBuilder.h @@ -10,6 +10,10 @@ NS_ASSUME_NONNULL_BEGIN @interface OWSContactAvatarBuilder : OWSAvatarBuilder +- (instancetype)initWithContactId:(NSString *)contactId + name:(NSString *)name + contactsManager:(OWSContactsManager *)contactsManager; + - (instancetype)initWithThread:(TSContactThread *)thread contactsManager:(OWSContactsManager *)contactsManager; @end diff --git a/Signal/src/Models/OWSContactAvatarBuilder.m b/Signal/src/Models/OWSContactAvatarBuilder.m index 1ed53a06b..1579cfa51 100644 --- a/Signal/src/Models/OWSContactAvatarBuilder.m +++ b/Signal/src/Models/OWSContactAvatarBuilder.m @@ -22,20 +22,28 @@ NS_ASSUME_NONNULL_BEGIN @implementation OWSContactAvatarBuilder -- (instancetype)initWithThread:(TSContactThread *)thread contactsManager:(OWSContactsManager *)contactsManager +- (instancetype)initWithContactId:(NSString *)contactId + name:(NSString *)name + contactsManager:(OWSContactsManager *)contactsManager { self = [super init]; if (!self) { return self; } - _signalId = thread.contactIdentifier; - _contactName = thread.name; + _signalId = contactId; + _contactName = name; _contactsManager = contactsManager; return self; } + +- (instancetype)initWithThread:(TSContactThread *)thread contactsManager:(OWSContactsManager *)contactsManager +{ + return [self initWithContactId:thread.contactIdentifier name:thread.name contactsManager:contactsManager]; +} + - (nullable UIImage *)buildSavedImage { return [self.contactsManager imageForPhoneIdentifier:self.signalId]; @@ -43,6 +51,11 @@ NS_ASSUME_NONNULL_BEGIN - (UIImage *)buildDefaultImage { + UIImage *cachedAvatar = [self.contactsManager.avatarCache objectForKey:self.signalId]; + if (cachedAvatar) { + return cachedAvatar; + } + NSMutableString *initials = [NSMutableString string]; if (self.contactName.length > 0) { @@ -61,11 +74,14 @@ NS_ASSUME_NONNULL_BEGIN UIColor *backgroundColor = [UIColor backgroundColorForContact:self.signalId]; - return [[JSQMessagesAvatarImageFactory avatarImageWithUserInitials:initials - backgroundColor:backgroundColor - textColor:[UIColor whiteColor] - font:[UIFont ows_boldFontWithSize:36.0] - diameter:100] avatarImage]; + UIImage *image = [[JSQMessagesAvatarImageFactory avatarImageWithUserInitials:initials + backgroundColor:backgroundColor + textColor:[UIColor whiteColor] + font:[UIFont ows_boldFontWithSize:36.0] + diameter:100] avatarImage]; + + [self.contactsManager.avatarCache setObject:image forKey:self.signalId]; + return image; } diff --git a/Signal/src/Signal-Bridging-Header.h b/Signal/src/Signal-Bridging-Header.h index 554d8bee3..50c4386b1 100644 --- a/Signal/src/Signal-Bridging-Header.h +++ b/Signal/src/Signal-Bridging-Header.h @@ -7,6 +7,7 @@ #import "PropertyListPreferences.h" #import "PushManager.h" #import "RPAccountManager.h" +#import "UIUtil.h" #import #import #import diff --git a/Signal/src/Storyboard/Main.storyboard b/Signal/src/Storyboard/Main.storyboard index f8bc1bd0e..52a48d0bf 100644 --- a/Signal/src/Storyboard/Main.storyboard +++ b/Signal/src/Storyboard/Main.storyboard @@ -1,5 +1,5 @@ - - + + @@ -1184,15 +1184,32 @@ + + + + + + + + + + + - + - +