Reconcile chat colors and wallpapers.

This commit is contained in:
Matthew Chen 2021-05-19 10:53:44 -03:00
parent a1e62476a8
commit f27ed76b10
4 changed files with 167 additions and 1149 deletions

View File

@ -746,7 +746,6 @@
886BB3D325BA0CA400079781 /* SetWallpaperViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABAB8C25B8BE1E0008C78A /* SetWallpaperViewController.swift */; };
886BB3D425BA0CA900079781 /* ColorAndWallpaperSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABAB8A25B8B3CC0008C78A /* ColorAndWallpaperSettingsViewController.swift */; };
886BB3D725BA871B00079781 /* Wallpaper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 886BB3D525BA871B00079781 /* Wallpaper.swift */; };
886BB3D825BA871B00079781 /* Wallpaper+SolidColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 886BB3D625BA871B00079781 /* Wallpaper+SolidColor.swift */; };
886CB07824E77E5B00753909 /* silence.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 886CB07724E77E5B00753909 /* silence.aiff */; };
886CB07C24E78F2200753909 /* Reflection.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 886CB07B24E78F2200753909 /* Reflection.m4r */; };
8871B16F25F007DE00D4E070 /* ProfileSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8871B16E25F007DE00D4E070 /* ProfileSettingsViewController.swift */; };
@ -774,7 +773,7 @@
887EEC1F23F0B20600F8C26D /* PinReminderMegaphone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 887EEC1E23F0B20600F8C26D /* PinReminderMegaphone.swift */; };
888B6D4225B16F3500E2A662 /* SharingSuggestionsMegaphone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888B6D4125B16F3400E2A662 /* SharingSuggestionsMegaphone.swift */; };
888B6D4D25B2523800E2A662 /* ConversationViewController+Wallpaper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888B6D4C25B2523700E2A662 /* ConversationViewController+Wallpaper.swift */; };
888B6D5225B25D2800E2A662 /* Wallpaper+Gradient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888B6D4A25B2464F00E2A662 /* Wallpaper+Gradient.swift */; };
888B6D5225B25D2800E2A662 /* Wallpaper+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888B6D4A25B2464F00E2A662 /* Wallpaper+Constants.swift */; };
888C828223D795FA0059464B /* pinCreationFail.json in Resources */ = {isa = PBXBuildFile; fileRef = 888C827F23D795F90059464B /* pinCreationFail.json */; };
888C828323D795FA0059464B /* pinCreationInProgress.json in Resources */ = {isa = PBXBuildFile; fileRef = 888C828023D795FA0059464B /* pinCreationInProgress.json */; };
888F188623AC5A9E000780E9 /* SignalMessaging.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 453518921FC63DBF00210559 /* SignalMessaging.framework */; };
@ -1827,7 +1826,6 @@
8861DECF2445349B00BB4145 /* LinkingTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkingTextView.swift; sourceTree = "<group>"; };
8862A55825F090C5005D65DB /* InternalSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InternalSettingsViewController.swift; sourceTree = "<group>"; };
886BB3D525BA871B00079781 /* Wallpaper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Wallpaper.swift; sourceTree = "<group>"; };
886BB3D625BA871B00079781 /* Wallpaper+SolidColor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Wallpaper+SolidColor.swift"; sourceTree = "<group>"; };
886CB07724E77E5B00753909 /* silence.aiff */ = {isa = PBXFileReference; lastKnownFileType = audio.aiff; path = silence.aiff; sourceTree = "<group>"; };
886CB07B24E78F2200753909 /* Reflection.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Reflection.m4r; sourceTree = "<group>"; };
886F08A6234958970085C27F /* InputAccessoryViewPlaceholder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputAccessoryViewPlaceholder.swift; sourceTree = "<group>"; };
@ -1906,7 +1904,7 @@
888A280524B3E9820045D639 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = translations/es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
888B6D4025AE7E2200E2A662 /* zh-HK */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-HK"; path = translations/zh_HK.lproj/InfoPlist.strings; sourceTree = "<group>"; };
888B6D4125B16F3400E2A662 /* SharingSuggestionsMegaphone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharingSuggestionsMegaphone.swift; sourceTree = "<group>"; };
888B6D4A25B2464F00E2A662 /* Wallpaper+Gradient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Wallpaper+Gradient.swift"; sourceTree = "<group>"; };
888B6D4A25B2464F00E2A662 /* Wallpaper+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Wallpaper+Constants.swift"; sourceTree = "<group>"; };
888B6D4C25B2523700E2A662 /* ConversationViewController+Wallpaper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ConversationViewController+Wallpaper.swift"; sourceTree = "<group>"; };
888C827F23D795F90059464B /* pinCreationFail.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = pinCreationFail.json; sourceTree = "<group>"; };
888C828023D795FA0059464B /* pinCreationInProgress.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = pinCreationInProgress.json; sourceTree = "<group>"; };
@ -3690,8 +3688,7 @@
isa = PBXGroup;
children = (
886BB3D525BA871B00079781 /* Wallpaper.swift */,
888B6D4A25B2464F00E2A662 /* Wallpaper+Gradient.swift */,
886BB3D625BA871B00079781 /* Wallpaper+SolidColor.swift */,
888B6D4A25B2464F00E2A662 /* Wallpaper+Constants.swift */,
);
path = Wallpapers;
sourceTree = "<group>";
@ -4935,11 +4932,10 @@
4C0387532339B3220062D293 /* UIColor+OWS.swift in Sources */,
88D5887824846A7F00DC9AB6 /* InputAccessoryViewPlaceholder.swift in Sources */,
88D23D0B23CEBF4400B0E74B /* UserNotificationsAdaptee.swift in Sources */,
886BB3D825BA871B00079781 /* Wallpaper+SolidColor.swift in Sources */,
34AC0A11211B39EA00997B47 /* OWSLayerView.swift in Sources */,
34AC0A1B211B39EA00997B47 /* GradientView.swift in Sources */,
34123C5E239AA3E900782788 /* TooltipView.swift in Sources */,
888B6D5225B25D2800E2A662 /* Wallpaper+Gradient.swift in Sources */,
888B6D5225B25D2800E2A662 /* Wallpaper+Constants.swift in Sources */,
887C6A7824DBB16E00141B64 /* ResizingScrollView.swift in Sources */,
34AC09E2211B39B100997B47 /* ReturnToCallViewController.swift in Sources */,
345DE96023ED9AA500A8E6E3 /* GroupsV2ProfileKeyUpdater.swift in Sources */,

View File

@ -0,0 +1,163 @@
//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
//
import Foundation
extension Wallpaper {
var asSolidColor: UIColor? {
guard let setting = self.asColorOrGradientSetting else {
return nil
}
switch setting.asValue {
case .solidColor(let color):
return color
case .gradient:
return nil
}
}
func asSwatchView(mode: ColorOrGradientSwatchView.Mode) -> ColorOrGradientSwatchView? {
guard let setting = self.asColorOrGradientSetting else {
return nil
}
return ColorOrGradientSwatchView(setting: setting, mode: mode)
}
var asColorOrGradientSetting: ColorOrGradientSetting? {
func parseAngleDegreesFromSpec(_ angleDegreesFromSpec: CGFloat) -> CGFloat {
// In our models:
// If angleRadians = 0, gradientColor1 is N.
// If angleRadians = PI / 2, gradientColor1 is E.
// etc.
//
// In the spec:
// If angleDegrees = 180, gradientColor1 is N.
// If angleDegrees = 270, gradientColor1 is E.
// etc.
return ((angleDegreesFromSpec - 180) / 180) * CGFloat.pi
}
switch self {
case .photo:
return nil
// Solid
case .blush:
// Spec name: Blush
return .themedColor(lightThemeColor: UIColor(rgbHex: 0xE26983).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0xA7203D).asOWSColor)
case .copper:
// Spec name: Copper
return .themedColor(lightThemeColor: UIColor(rgbHex: 0xDF9171).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x8E3310).asOWSColor)
case .zorba:
// Spec name: Dust
return .themedColor(lightThemeColor: UIColor(rgbHex: 0x9E9887).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x534F41).asOWSColor)
case .envy:
// Spec name: Celadon
return .themedColor(lightThemeColor: UIColor(rgbHex: 0x89AE8F).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x36543B).asOWSColor)
case .sky:
// Spec name: Pacific
return .themedColor(lightThemeColor: UIColor(rgbHex: 0x32C7E2).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x045867).asOWSColor)
case .wildBlueYonder:
// Spec name: Frost
return .themedColor(lightThemeColor: UIColor(rgbHex: 0x7C99B6).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x2C4D6D).asOWSColor)
case .lavender:
// Spec name: Lilac
return .themedColor(lightThemeColor: UIColor(rgbHex: 0xC988E7).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x6D1D90).asOWSColor)
case .shocking:
// Spec name: Pink
return .themedColor(lightThemeColor: UIColor(rgbHex: 0xE297C3).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x772254).asOWSColor)
case .gray:
// Spec name: Silver
return .themedColor(lightThemeColor: UIColor(rgbHex: 0xA2A2AA).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x4F4F59).asOWSColor)
case .eden:
// Spec name: Rainforest
return .themedColor(lightThemeColor: UIColor(rgbHex: 0x146148).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x135841).asOWSColor)
case .violet:
// Spec name: Navy
return .themedColor(lightThemeColor: UIColor(rgbHex: 0x403B91).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x3B3786).asOWSColor)
case .eggplant:
// Spec name: Eggplant
return .themedColor(lightThemeColor: UIColor(rgbHex: 0x624249).asOWSColor,
darkThemeColor: UIColor(rgbHex: 0x583C41).asOWSColor)
// Gradient
case .starshipGradient:
// Spec name: Sunset
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0xF3DC47).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0xE44040).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0xC1AA15).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0x971111).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(168))
case .woodsmokeGradient:
// Spec name: Noir
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0x16161D).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0x6E6E87).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0x0B0B0E).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0x535365).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(180))
case .coralGradient:
// Spec name: Heatmap
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0xF53844).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0x42378F).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0xB6202A).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0x362D76).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(192))
case .ceruleanGradient:
// Spec name: Aqua
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0x0093E9).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0x80D0C7).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0x005485).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0x3DA498).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(180))
case .roseGradient:
// Spec name: Iridescent
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0xF04CE6).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0x0E2FDD).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0xAF0EA4).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0x1932B8).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(192))
case .aquamarineGradient:
// Spec name: Monstera
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0x65CDAC).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0x0A995A).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0x236C54).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0x065632).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(180))
case .tropicalGradient:
// Spec name: Bliss
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0xD8E1FA).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0xD6A4B5).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0x8AA1E0).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0xB65D7B).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(180))
case .blueGradient:
// Spec name: Sky
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0xD8EBFD).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0x9DCCFB).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0xA0C4E9).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0x478ACD).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(180))
case .bisqueGradient:
// Spec name: Peach
return .themedGradient(lightGradientColor1: UIColor(rgbHex: 0xFFE5C2).asOWSColor,
lightGradientColor2: UIColor(rgbHex: 0xFCAC92).asOWSColor,
darkGradientColor1: UIColor(rgbHex: 0xEAC28A).asOWSColor,
darkGradientColor2: UIColor(rgbHex: 0xBB6144).asOWSColor,
angleRadians: parseAngleDegreesFromSpec(192))
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +0,0 @@
//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
//
import Foundation
// extension Wallpaper {
// var solidColor: UIColor? {
// return Theme.isDarkThemeEnabled ? darkSolidColor : lightSolidColor
// }
//
// var lightSolidColor: UIColor? {
// switch self {
// case .blush: return UIColor(rgbHex: 0xE26983)
// case .copper: return UIColor(rgbHex: 0xDF9171)
// case .zorba: return UIColor(rgbHex: 0x9E9887)
// case .envy: return UIColor(rgbHex: 0x89AE8F)
// case .sky: return UIColor(rgbHex: 0x32C7E2)
// case .wildBlueYonder: return UIColor(rgbHex: 0x7C99B6)
// case .lavender: return UIColor(rgbHex: 0xC988E7)
// case .shocking: return UIColor(rgbHex: 0xE297C3)
// case .gray: return UIColor(rgbHex: 0xA2A2AA)
// case .eden: return UIColor(rgbHex: 0x146148)
// case .violet: return UIColor(rgbHex: 0x403B91)
// case .eggplant: return UIColor(rgbHex: 0x624249)
// default: return nil
// }
// }
//
// var darkSolidColor: UIColor? {
// switch self {
// case .blush: return UIColor(rgbHex: 0xA7203D)
// case .copper: return UIColor(rgbHex: 0x8E3310)
// case .zorba: return UIColor(rgbHex: 0x534F41)
// case .envy: return UIColor(rgbHex: 0x36543B)
// case .sky: return UIColor(rgbHex: 0x045867)
// case .wildBlueYonder: return UIColor(rgbHex: 0x2C4D6D)
// case .lavender: return UIColor(rgbHex: 0x6D1D90)
// case .shocking: return UIColor(rgbHex: 0x772254)
// case .gray: return UIColor(rgbHex: 0x4F4F59)
// case .eden: return UIColor(rgbHex: 0x135841)
// case .violet: return UIColor(rgbHex: 0x3B3786)
// case .eggplant: return UIColor(rgbHex: 0x583C41)
// default: return nil
// }
// }
// }