Add "conversation color mode" enum.

pull/1/head
Matthew Chen 7 years ago
parent e5150267c2
commit 26a2d568de

@ -110,7 +110,8 @@ class ColorPickerViewController: UIViewController, UIPickerViewDelegate, UIPicke
owsFailDebug("color was unexpectedly nil") owsFailDebug("color was unexpectedly nil")
return ColorView(color: .white) return ColorView(color: .white)
} }
guard let color = UIColor.ows_conversationThemeColor(colorName: colorName) else { guard let color = UIColor.ows_conversationColor(colorName: colorName,
mode: Theme.isDarkThemeEnabled ? .shade : .default) else {
owsFailDebug("unknown color name") owsFailDebug("unknown color name")
return ColorView(color: .white) return ColorView(color: .white)
} }

@ -288,7 +288,11 @@ const CGFloat kIconViewLength = 24;
[mainSection addItem:[OWSTableItem [mainSection addItem:[OWSTableItem
itemWithCustomCellBlock:^{ itemWithCustomCellBlock:^{
NSString *colorName = self.thread.conversationColorName; NSString *colorName = self.thread.conversationColorName;
UIColor *currentColor = [UIColor ows_conversationThemeColorForColorName:colorName]; UIColor *currentColor = [UIColor
ows_conversationColorForColorName:colorName
mode:(Theme.isDarkThemeEnabled
? ConversationColorMode_Shade
: ConversationColorMode_Default)];
NSString *title = NSLocalizedString(@"CONVERSATION_SETTINGS_CONVERSATION_COLOR", NSString *title = NSLocalizedString(@"CONVERSATION_SETTINGS_CONVERSATION_COLOR",
@"Label for table cell which leads to picking a new conversation color"); @"Label for table cell which leads to picking a new conversation color");
return [weakSelf disclosureCellWithName:title iconColor:currentColor]; return [weakSelf disclosureCellWithName:title iconColor:currentColor];

@ -7,6 +7,12 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, ConversationColorMode) {
ConversationColorMode_Default,
ConversationColorMode_Shade,
ConversationColorMode_Tint,
};
@interface UIColor (OWS) @interface UIColor (OWS)
#pragma mark - #pragma mark -
@ -96,8 +102,9 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Conversation Colors #pragma mark - Conversation Colors
+ (nullable UIColor *)ows_conversationThemeColorForColorName:(NSString *)colorName + (nullable UIColor *)ows_conversationColorForColorName:(NSString *)colorName
NS_SWIFT_NAME(ows_conversationThemeColor(colorName:)); mode:(ConversationColorMode)mode
NS_SWIFT_NAME(ows_conversationColor(colorName:mode:));
@property (class, readonly, nonatomic) NSArray<NSString *> *ows_conversationColorNames; @property (class, readonly, nonatomic) NSArray<NSString *> *ows_conversationColorNames;

@ -459,12 +459,18 @@ NS_ASSUME_NONNULL_BEGIN
return self.ows_conversationColorMap.allKeys; return self.ows_conversationColorMap.allKeys;
} }
+ (nullable UIColor *)ows_conversationThemeColorForColorName:(NSString *)colorName + (nullable UIColor *)ows_conversationColorForColorName:(NSString *)colorName mode:(ConversationColorMode)mode
{ {
OWSAssertDebug(colorName.length > 0); OWSAssertDebug(colorName.length > 0);
BOOL isShaded = Theme.isDarkThemeEnabled; switch (mode) {
return (isShaded ? self.ows_conversationColorMapShade : self.ows_conversationColorMap)[colorName]; case ConversationColorMode_Default:
return self.ows_conversationColorMap[colorName];
case ConversationColorMode_Shade:
return self.ows_conversationColorMapShade[colorName];
case ConversationColorMode_Tint:
return self.ows_conversationColorMapTint[colorName];
}
} }
+ (nullable UIColor *)ows_conversationTintColorForColorName:(NSString *)colorName + (nullable UIColor *)ows_conversationTintColorForColorName:(NSString *)colorName

@ -136,7 +136,8 @@ public class ConversationStyle: NSObject {
return self.defaultBubbleColorIncoming return self.defaultBubbleColorIncoming
} }
guard let color = UIColor.ows_conversationThemeColor(colorName: colorName) else { guard let color = UIColor.ows_conversationColor(colorName: colorName,
mode: Theme.isDarkThemeEnabled ? .shade : .default) else {
return self.defaultBubbleColorIncoming return self.defaultBubbleColorIncoming
} }

@ -124,7 +124,10 @@ NS_ASSUME_NONNULL_BEGIN
[initials appendString:@"#"]; [initials appendString:@"#"];
} }
UIColor *color = [UIColor ows_conversationThemeColorForColorName:self.colorName]; UIColor *color =
[UIColor ows_conversationColorForColorName:self.colorName
mode:(Theme.isDarkThemeEnabled ? ConversationColorMode_Shade
: ConversationColorMode_Default)];
OWSAssertDebug(color); OWSAssertDebug(color);
UIImage *_Nullable image = UIImage *_Nullable image =

Loading…
Cancel
Save