diff --git a/enzevalos_iphone.xcodeproj/project.pbxproj b/enzevalos_iphone.xcodeproj/project.pbxproj index 992b9e7379d76ed6efb0a19eb9ed0f07621b6263..16057f8933d26173dd37a57daa3bc6815cafcf3d 100644 --- a/enzevalos_iphone.xcodeproj/project.pbxproj +++ b/enzevalos_iphone.xcodeproj/project.pbxproj @@ -1917,7 +1917,7 @@ baseConfigurationReference = 91B6C9020C660BEA78FAEF28 /* Pods-enzevalos_iphone.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = Mailbox; CLANG_ENABLE_MODULES = NO; CODE_SIGN_ENTITLEMENTS = enzevalos_iphone/PLists/enzevalos_iphone.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -1977,7 +1977,7 @@ baseConfigurationReference = AA686D4FC9B86445A0C87F0F /* Pods-enzevalos_iphone.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = Mailbox; CLANG_ENABLE_MODULES = NO; CODE_SIGN_ENTITLEMENTS = enzevalos_iphone/PLists/enzevalos_iphone.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Contents.json b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Contents.json new file mode 100644 index 0000000000000000000000000000000000000000..82e208dd47ee11dcc81435271422dedda862c481 --- /dev/null +++ b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Contents.json @@ -0,0 +1,62 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Mailbox_40.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Mailbox_60.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Mailbox_58.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Mailbox_87.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Mailbox_80.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Mailbox_120.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Mailbox_120-1.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Mailbox@3x.png", + "scale" : "3x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Mailbox_1024.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox@3x.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c8903dbf9d22d5956886725d72fcd9a950a6650 Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox@3x.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_1024.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..10879a629df4652725458eb1db850a6eb9079d1b Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_1024.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_120-1.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_120-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5f495093b013400ddab4b95c66c039e09ee038f3 Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_120-1.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_120.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_120.png new file mode 100644 index 0000000000000000000000000000000000000000..5f495093b013400ddab4b95c66c039e09ee038f3 Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_120.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_40.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_40.png new file mode 100644 index 0000000000000000000000000000000000000000..e5fbba77dcaa5083759effe6cdc26241f9439b0b Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_40.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_58.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_58.png new file mode 100644 index 0000000000000000000000000000000000000000..de5eaba8e47bb14e4dfa7545699861b5209d94f5 Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_58.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_60.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_60.png new file mode 100644 index 0000000000000000000000000000000000000000..91e692c22b22c4627235ec30af663b58051c523d Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_60.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_80.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_80.png new file mode 100644 index 0000000000000000000000000000000000000000..379621419e0edc5185810cf1f5a7b26985d2df22 Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_80.png differ diff --git a/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_87.png b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_87.png new file mode 100644 index 0000000000000000000000000000000000000000..e6884e4fc3c56c7876cb536040b4bd4b32560c61 Binary files /dev/null and b/enzevalos_iphone/Assets.xcassets/Mailbox.appiconset/Mailbox_87.png differ diff --git a/enzevalos_iphone/study parameters/IconsStyleKit.swift b/enzevalos_iphone/study parameters/IconsStyleKit.swift index 234dec74a7f47498830e3cf02276b23f61965f6a..88bd2a231f46f397605ace3c08cfbb686bccd667 100644 --- a/enzevalos_iphone/study parameters/IconsStyleKit.swift +++ b/enzevalos_iphone/study parameters/IconsStyleKit.swift @@ -33,6 +33,8 @@ internal class IconsStyleKit: NSObject { static var padlockInsecureTargets: [AnyObject]? static var imageOfPadlockError: UIImage? static var padlockErrorTargets: [AnyObject]? + static var imageOfMailbox: UIImage? + static var mailboxTargets: [AnyObject]? } //// Colors @@ -633,7 +635,128 @@ internal class IconsStyleKit: NSObject { } - + @objc dynamic public class func drawMailbox(frame targetFrame: CGRect = CGRect(x: 0, y: 0, width: 60, height: 60), resizing: ResizingBehavior = .aspectFit) { + //// General Declarations + let context = UIGraphicsGetCurrentContext()! + + //// Resize to Target Frame + context.saveGState() + let resizedFrame: CGRect = resizing.apply(rect: CGRect(x: 0, y: 0, width: 60, height: 60), target: targetFrame) + context.translateBy(x: resizedFrame.minX, y: resizedFrame.minY) + context.scaleBy(x: resizedFrame.width / 60, y: resizedFrame.height / 60) + + + //// Color Declarations + let fillColor3 = UIColor(red: 0.776, green: 0.776, blue: 0.773, alpha: 1.000) + let fillColor4 = UIColor(red: 0.925, green: 0.925, blue: 0.925, alpha: 1.000) + let fillColor5 = UIColor(red: 0.851, green: 0.851, blue: 0.851, alpha: 1.000) + let red = UIColor(red: 0.910, green: 0.306, blue: 0.106, alpha: 1.000) + let fillColor7 = UIColor(red: 0.612, green: 0.608, blue: 0.608, alpha: 1.000) + + //// letterbox-09.svg Group + context.saveGState() + context.translateBy(x: -11.36, y: 0.74) + context.scaleBy(x: 0.06, y: 0.06) + + + + //// Group 4 + //// Star Drawing + context.saveGState() + context.translateBy(x: 505.36, y: 653.16) + context.rotate(by: -30 * CGFloat.pi/180) + + let starPath = UIBezierPath() + starPath.move(to: CGPoint(x: 0, y: -369.95)) + starPath.addLine(to: CGPoint(x: 213.6, y: 0)) + starPath.addLine(to: CGPoint(x: 0, y: 369.95)) + starPath.addLine(to: CGPoint(x: -213.6, y: 0)) + starPath.close() + fillColor3.setFill() + starPath.fill() + + context.restoreGState() + + + //// Bezier 137 Drawing + let bezier137Path = UIBezierPath() + bezier137Path.move(to: CGPoint(x: 690.36, y: 547.26)) + bezier137Path.addLine(to: CGPoint(x: 320.36, y: 333.66)) + bezier137Path.addLine(to: CGPoint(x: 690.36, y: 119.96)) + bezier137Path.addLine(to: CGPoint(x: 1060.36, y: 333.66)) + bezier137Path.addLine(to: CGPoint(x: 690.36, y: 547.26)) + bezier137Path.close() + fillColor4.setFill() + bezier137Path.fill() + + + //// Star 2 Drawing + context.saveGState() + context.translateBy(x: 875.36, y: 653.16) + context.rotate(by: -150 * CGFloat.pi/180) + + let star2Path = UIBezierPath() + star2Path.move(to: CGPoint(x: 0, y: -369.95)) + star2Path.addLine(to: CGPoint(x: 213.6, y: 0)) + star2Path.addLine(to: CGPoint(x: 0, y: 369.95)) + star2Path.addLine(to: CGPoint(x: -213.6, y: 0)) + star2Path.close() + fillColor5.setFill() + star2Path.fill() + + context.restoreGState() + + + //// Bezier 138 Drawing + context.saveGState() + context.translateBy(x: 791.26, y: 643.23) + + let bezier138Path = UIBezierPath() + bezier138Path.move(to: CGPoint(x: 37.5, y: -3.36)) + bezier138Path.addLine(to: CGPoint(x: 54.8, y: -13.36)) + bezier138Path.addCurve(to: CGPoint(x: 67.3, y: -35.06), controlPoint1: CGPoint(x: 62.5, y: -17.86), controlPoint2: CGPoint(x: 67.3, y: -26.06)) + bezier138Path.addLine(to: CGPoint(x: 67.3, y: -433.36)) + bezier138Path.addCurve(to: CGPoint(x: 79.8, y: -455.06), controlPoint1: CGPoint(x: 67.3, y: -442.26), controlPoint2: CGPoint(x: 72.1, y: -450.56)) + bezier138Path.addLine(to: CGPoint(x: 155.7, y: -498.86)) + bezier138Path.addCurve(to: CGPoint(x: 168.2, y: -520.56), controlPoint1: CGPoint(x: 163.4, y: -503.36), controlPoint2: CGPoint(x: 168.2, y: -511.56)) + bezier138Path.addLine(to: CGPoint(x: 168.2, y: -618.16)) + bezier138Path.addCurve(to: CGPoint(x: 130.7, y: -639.86), controlPoint1: CGPoint(x: 168.2, y: -637.36), controlPoint2: CGPoint(x: 147.4, y: -649.46)) + bezier138Path.addLine(to: CGPoint(x: 12.5, y: -571.66)) + bezier138Path.addCurve(to: CGPoint(x: 0, y: -549.96), controlPoint1: CGPoint(x: 4.8, y: -567.16), controlPoint2: CGPoint(x: 0, y: -558.96)) + bezier138Path.addLine(to: CGPoint(x: 0, y: -25.06)) + bezier138Path.addCurve(to: CGPoint(x: 37.5, y: -3.36), controlPoint1: CGPoint(x: 0, y: -5.86), controlPoint2: CGPoint(x: 20.8, y: 6.24)) + bezier138Path.close() + red.setFill() + bezier138Path.fill() + + context.restoreGState() + + + //// Bezier 139 Drawing + let bezier139Path = UIBezierPath() + bezier139Path.move(to: CGPoint(x: 590.36, y: 688.03)) + bezier139Path.addLine(to: CGPoint(x: 398.66, y: 577.33)) + bezier139Path.addCurve(to: CGPoint(x: 387.76, y: 558.43), controlPoint1: CGPoint(x: 391.86, y: 573.43), controlPoint2: CGPoint(x: 387.76, y: 566.23)) + bezier139Path.addLine(to: CGPoint(x: 387.76, y: 492.43)) + bezier139Path.addCurve(to: CGPoint(x: 420.56, y: 473.53), controlPoint1: CGPoint(x: 387.76, y: 475.63), controlPoint2: CGPoint(x: 405.96, y: 465.03)) + bezier139Path.addLine(to: CGPoint(x: 612.26, y: 584.23)) + bezier139Path.addCurve(to: CGPoint(x: 623.16, y: 603.13), controlPoint1: CGPoint(x: 619.06, y: 588.13), controlPoint2: CGPoint(x: 623.16, y: 595.33)) + bezier139Path.addLine(to: CGPoint(x: 623.16, y: 669.13)) + bezier139Path.addCurve(to: CGPoint(x: 590.36, y: 688.03), controlPoint1: CGPoint(x: 623.26, y: 685.93), controlPoint2: CGPoint(x: 604.96, y: 696.43)) + bezier139Path.close() + fillColor7.setFill() + bezier139Path.fill() + + + + + + context.restoreGState() + + context.restoreGState() + + } + //// Generated Images @objc open dynamic class var imageOfLetter: UIImage { @@ -762,6 +885,21 @@ internal class IconsStyleKit: NSObject { return Cache.imageOfPadlockError! } + + @objc dynamic public class var imageOfMailbox: UIImage { + if Cache.imageOfMailbox != nil { + return Cache.imageOfMailbox! + } + + UIGraphicsBeginImageContextWithOptions(CGSize(width: 60, height: 60), false, 0) + IconsStyleKit.drawMailbox() + + Cache.imageOfMailbox = UIGraphicsGetImageFromCurrentImageContext()! + UIGraphicsEndImageContext() + + return Cache.imageOfMailbox! + } + //// Customization Infrastructure @@ -898,3 +1036,37 @@ extension UIImage { } } +private extension UIColor { + func withHue(_ newHue: CGFloat) -> UIColor { + var saturation: CGFloat = 1, brightness: CGFloat = 1, alpha: CGFloat = 1 + self.getHue(nil, saturation: &saturation, brightness: &brightness, alpha: &alpha) + return UIColor(hue: newHue, saturation: saturation, brightness: brightness, alpha: alpha) + } + func withSaturation(_ newSaturation: CGFloat) -> UIColor { + var hue: CGFloat = 1, brightness: CGFloat = 1, alpha: CGFloat = 1 + self.getHue(&hue, saturation: nil, brightness: &brightness, alpha: &alpha) + return UIColor(hue: hue, saturation: newSaturation, brightness: brightness, alpha: alpha) + } + func withBrightness(_ newBrightness: CGFloat) -> UIColor { + var hue: CGFloat = 1, saturation: CGFloat = 1, alpha: CGFloat = 1 + self.getHue(&hue, saturation: &saturation, brightness: nil, alpha: &alpha) + return UIColor(hue: hue, saturation: saturation, brightness: newBrightness, alpha: alpha) + } + func withAlpha(_ newAlpha: CGFloat) -> UIColor { + var hue: CGFloat = 1, saturation: CGFloat = 1, brightness: CGFloat = 1 + self.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: nil) + return UIColor(hue: hue, saturation: saturation, brightness: brightness, alpha: newAlpha) + } + func highlight(withLevel highlight: CGFloat) -> UIColor { + var red: CGFloat = 1, green: CGFloat = 1, blue: CGFloat = 1, alpha: CGFloat = 1 + self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) + return UIColor(red: red * (1-highlight) + highlight, green: green * (1-highlight) + highlight, blue: blue * (1-highlight) + highlight, alpha: alpha * (1-highlight) + highlight) + } + func shadow(withLevel shadow: CGFloat) -> UIColor { + var red: CGFloat = 1, green: CGFloat = 1, blue: CGFloat = 1, alpha: CGFloat = 1 + self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) + return UIColor(red: red * (1-shadow), green: green * (1-shadow), blue: blue * (1-shadow), alpha: alpha * (1-shadow) + shadow) + } +} + +