From 17541a8888c15f98aaba103bd2f2f4c9d5fa35a4 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 9 Oct 2018 16:06:23 -0400 Subject: [PATCH] Change conversation bubble colors. --- .../OWSConversationSettingsViewController.m | 14 +++++ SignalMessaging/utils/ConversationStyle.swift | 60 ++++++++++++------- 2 files changed, 54 insertions(+), 20 deletions(-) diff --git a/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m b/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m index a20616494..c93eada82 100644 --- a/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m +++ b/Signal/src/ViewControllers/ThreadSettings/OWSConversationSettingsViewController.m @@ -38,11 +38,15 @@ NS_ASSUME_NONNULL_BEGIN +//#define SHOW_COLOR_PICKER + const CGFloat kIconViewLength = 24; @interface OWSConversationSettingsViewController () @property (nonatomic) TSThread *thread; @@ -59,7 +63,9 @@ const CGFloat kIconViewLength = 24; @property (nonatomic, readonly) ContactsViewHelper *contactsViewHelper; @property (nonatomic, readonly) UIImageView *avatarView; @property (nonatomic, readonly) UILabel *disappearingMessagesDurationLabel; +#ifdef SHOW_COLOR_PICKER @property (nonatomic) OWSColorPicker *colorPicker; +#endif @end @@ -250,8 +256,10 @@ const CGFloat kIconViewLength = 24; [[OWSDisappearingMessagesConfiguration alloc] initDefaultWithThreadId:self.thread.uniqueId]; } +#ifdef SHOW_COLOR_PICKER self.colorPicker = [[OWSColorPicker alloc] initWithThread:self.thread]; self.colorPicker.delegate = self; +#endif [self updateTableContents]; } @@ -465,6 +473,7 @@ const CGFloat kIconViewLength = 24; customRowHeight:UITableViewAutomaticDimension actionBlock:nil]]; } +#ifdef SHOW_COLOR_PICKER [mainSection addItem:[OWSTableItem itemWithCustomCellBlock:^{ @@ -479,6 +488,7 @@ const CGFloat kIconViewLength = 24; actionBlock:^{ [weakSelf showColorPicker]; }]]; +#endif [contents addSection:mainSection]; @@ -1297,6 +1307,8 @@ const CGFloat kIconViewLength = 24; #pragma mark - ColorPickerDelegate +#ifdef SHOW_COLOR_PICKER + - (void)showColorPicker { OWSSheetViewController *sheetViewController = self.colorPicker.sheetViewController; @@ -1329,6 +1341,8 @@ const CGFloat kIconViewLength = 24; }); } +#endif + #pragma mark - OWSSheetViewController - (void)sheetViewControllerRequestedDismiss:(OWSSheetViewController *)sheetViewController diff --git a/SignalMessaging/utils/ConversationStyle.swift b/SignalMessaging/utils/ConversationStyle.swift index 33ebef973..8a84456b1 100644 --- a/SignalMessaging/utils/ConversationStyle.swift +++ b/SignalMessaging/utils/ConversationStyle.swift @@ -145,15 +145,34 @@ public class ConversationStyle: NSObject { return Theme.isDarkThemeEnabled ? UIColor.ows_gray75 : UIColor.ows_messageBubbleLightGray } + @objc + public let bubbleColorOutgoingFailed = UIColor.ows_darkSkyBlue + + @objc + public let bubbleColorOutgoingSending = UIColor.ows_darkSkyBlue + + @objc + public let bubbleColorOutgoingSent = UIColor.ows_darkSkyBlue + @objc public let dateBreakTextColor = UIColor.ows_gray60 @objc public func bubbleColor(message: TSMessage) -> UIColor { if message is TSIncomingMessage { - return bubbleColor(isIncoming: true) + return ConversationStyle.defaultBubbleColorIncoming + } else if let outgoingMessage = message as? TSOutgoingMessage { + switch outgoingMessage.messageState { + case .failed: + return bubbleColorOutgoingFailed + case .sending: + return bubbleColorOutgoingSending + default: + return bubbleColorOutgoingSent + } } else { - return bubbleColor(isIncoming: false) + owsFailDebug("Unexpected message type: \(message)") + return bubbleColorOutgoingSent } } @@ -162,7 +181,7 @@ public class ConversationStyle: NSObject { if isIncoming { return ConversationStyle.defaultBubbleColorIncoming } else { - return conversationColor.primaryColor + return self.bubbleColorOutgoingSent } } @@ -197,37 +216,38 @@ public class ConversationStyle: NSObject { } } - // Note that the exception for outgoing text only applies - // to secondary text within bubbles. @objc public func bubbleSecondaryTextColor(isIncoming: Bool) -> UIColor { - if !isIncoming { - // All Outgoing - return UIColor.ows_white.withAlphaComponent(0.8) - } else if Theme.isDarkThemeEnabled { - // Incoming, dark. - return UIColor.ows_gray25 - } else { - // Incoming, light. - return UIColor.ows_gray60 - } + return bubbleTextColor(isIncoming: isIncoming).withAlphaComponent(0.7) } @objc public func quotedReplyBubbleColor(isIncoming: Bool) -> UIColor { if Theme.isDarkThemeEnabled { - return conversationColor.shadeColor + if isIncoming { + return UIColor(rgbHex: 0x1976D2).withAlphaComponent(0.75) + } else { + return UIColor.ows_black.withAlphaComponent(0.4) + } + } else if isIncoming { + return bubbleColorOutgoingSent.withAlphaComponent(0.25) } else { - return conversationColor.tintColor + return ConversationStyle.defaultBubbleColorIncoming.withAlphaComponent(0.75) } } @objc public func quotedReplyStripeColor(isIncoming: Bool) -> UIColor { - if isIncoming { - return conversationColor.primaryColor + if Theme.isDarkThemeEnabled { + if isIncoming { + return UIColor(rgbHex: 0x1976D2) + } else { + return UIColor.ows_black + } + } else if isIncoming { + return bubbleColorOutgoingSent } else { - return Theme.backgroundColor + return UIColor.white } }