mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
323 lines
5.8 KiB
Swift
323 lines
5.8 KiB
Swift
import UIKit
|
|
import Display
|
|
|
|
private let colors: [UInt32: String] = [
|
|
0x8e0000: "Berry",
|
|
0xdec196: "Brandy",
|
|
0x800b47: "Cherry",
|
|
0xff7f50: "Coral",
|
|
0xdb5079: "Cranberry",
|
|
0xdc143c: "Crimson",
|
|
0xe0b0ff: "Mauve",
|
|
0xffc0cb: "Pink",
|
|
0xff0000: "Red",
|
|
0xff007f: "Rose",
|
|
0x80461b: "Russet",
|
|
0xff2400: "Scarlet",
|
|
0xf1f1f1: "Seashell",
|
|
0xff3399: "Strawberry",
|
|
0xffbf00: "Amber",
|
|
0xeb9373: "Apricot",
|
|
0xfbe7b2: "Banana",
|
|
0xa1c50a: "Citrus",
|
|
0xb06500: "Ginger",
|
|
0xffd700: "Gold",
|
|
0xfde910: "Lemon",
|
|
0xffa500: "Orange",
|
|
0xffe5b4: "Peach",
|
|
0xff6b53: "Persimmon",
|
|
0xe4d422: "Sunflower",
|
|
0xf28500: "Tangerine",
|
|
0xffc87c: "Topaz",
|
|
0xffff00: "Yellow",
|
|
0x384910: "Clover",
|
|
0x83aa5d: "Cucumber",
|
|
0x50c878: "Emerald",
|
|
0xb5b35c: "Olive",
|
|
0x00ff00: "Green",
|
|
0x00a86b: "Jade",
|
|
0x29ab87: "Jungle",
|
|
0xbfff00: "Lime",
|
|
0x0bda51: "Malachite",
|
|
0x98ff98: "Mint",
|
|
0xaddfad: "Moss",
|
|
0x315ba1: "Azure",
|
|
0x0000ff: "Blue",
|
|
0x0047ab: "Cobalt",
|
|
0x4f69c6: "Indigo",
|
|
0x017987: "Lagoon",
|
|
0x71d9e2: "Aquamarine",
|
|
0x120a8f: "Ultramarine",
|
|
0x000080: "Navy",
|
|
0x2f519e: "Sapphire",
|
|
0x76d7ea: "Sky",
|
|
0x008080: "Teal",
|
|
0x40e0d0: "Turquoise",
|
|
0x9966cc: "Amethyst",
|
|
0x4d0135: "Blackberry",
|
|
0x614051: "Eggplant",
|
|
0xc8a2c8: "Lilac",
|
|
0xb57edc: "Lavender",
|
|
0xccccff: "Periwinkle",
|
|
0x843179: "Plum",
|
|
0x660099: "Purple",
|
|
0xd8bfd8: "Thistle",
|
|
0xda70d6: "Orchid",
|
|
0x240a40: "Violet",
|
|
0x3f2109: "Bronze",
|
|
0x370202: "Chocolate",
|
|
0x7b3f00: "Cinnamon",
|
|
0x301f1e: "Cocoa",
|
|
0x706555: "Coffee",
|
|
0x796989: "Rum",
|
|
0x4e0606: "Mahogany",
|
|
0x782d19: "Mocha",
|
|
0xc2b280: "Sand",
|
|
0x882d17: "Sienna",
|
|
0x780109: "Maple",
|
|
0xf0e68c: "Khaki",
|
|
0xb87333: "Copper",
|
|
0xb94e48: "Chestnut",
|
|
0xeed9c4: "Almond",
|
|
0xfffdd0: "Cream",
|
|
0xb9f2ff: "Diamond",
|
|
0xa98307: "Honey",
|
|
0xfffff0: "Ivory",
|
|
0xeae0c8: "Pearl",
|
|
0xeff2f3: "Porcelain",
|
|
0xd1bea8: "Vanilla",
|
|
0xffffff: "White",
|
|
0x808080: "Gray",
|
|
0x000000: "Black",
|
|
0xe8f1d4: "Chrome",
|
|
0x36454f: "Charcoal",
|
|
0x0c0b1d: "Ebony",
|
|
0xc0c0c0: "Silver",
|
|
0xf5f5f5: "Smoke",
|
|
0x262335: "Steel",
|
|
0x4fa83d: "Apple",
|
|
0x80b3c4: "Glacier",
|
|
0xfebaad: "Melon",
|
|
0xc54b8c: "Mulberry",
|
|
0xa9c6c2: "Opal",
|
|
0x54a5f8: "Blue"
|
|
]
|
|
|
|
private let adjectives: [String] = [
|
|
"Ancient",
|
|
"Antique",
|
|
"Autumn",
|
|
"Baby",
|
|
"Barely",
|
|
"Baroque",
|
|
"Blazing",
|
|
"Blushing",
|
|
"Bohemian",
|
|
"Bubbly",
|
|
"Burning",
|
|
"Buttered",
|
|
"Classic",
|
|
"Clear",
|
|
"Cool",
|
|
"Cosmic",
|
|
"Cotton",
|
|
"Cozy",
|
|
"Crystal",
|
|
"Dark",
|
|
"Daring",
|
|
"Darling",
|
|
"Dawn",
|
|
"Dazzling",
|
|
"Deep",
|
|
"Deepest",
|
|
"Delicate",
|
|
"Delightful",
|
|
"Divine",
|
|
"Double",
|
|
"Downtown",
|
|
"Dreamy",
|
|
"Dusky",
|
|
"Dusty",
|
|
"Electric",
|
|
"Enchanted",
|
|
"Endless",
|
|
"Evening",
|
|
"Fantastic",
|
|
"Flirty",
|
|
"Forever",
|
|
"Frigid",
|
|
"Frosty",
|
|
"Frozen",
|
|
"Gentle",
|
|
"Heavenly",
|
|
"Hyper",
|
|
"Icy",
|
|
"Infinite",
|
|
"Innocent",
|
|
"Instant",
|
|
"Luscious",
|
|
"Lunar",
|
|
"Lustrous",
|
|
"Magic",
|
|
"Majestic",
|
|
"Mambo",
|
|
"Midnight",
|
|
"Millenium",
|
|
"Morning",
|
|
"Mystic",
|
|
"Natural",
|
|
"Neon",
|
|
"Night",
|
|
"Opaque",
|
|
"Paradise",
|
|
"Perfect",
|
|
"Perky",
|
|
"Polished",
|
|
"Powerful",
|
|
"Rich",
|
|
"Royal",
|
|
"Sheer",
|
|
"Simply",
|
|
"Sizzling",
|
|
"Solar",
|
|
"Sparkling",
|
|
"Splendid",
|
|
"Spicy",
|
|
"Spring",
|
|
"Stellar",
|
|
"Sugared",
|
|
"Summer",
|
|
"Sunny",
|
|
"Super",
|
|
"Sweet",
|
|
"Tender",
|
|
"Tenacious",
|
|
"Tidal",
|
|
"Toasted",
|
|
"Totally",
|
|
"Tranquil",
|
|
"Tropical",
|
|
"True",
|
|
"Twilight",
|
|
"Twinkling",
|
|
"Ultimate",
|
|
"Ultra",
|
|
"Velvety",
|
|
"Vibrant",
|
|
"Vintage",
|
|
"Virtual",
|
|
"Warm",
|
|
"Warmest",
|
|
"Whipped",
|
|
"Wild",
|
|
"Winsome"
|
|
]
|
|
|
|
private let subjectives: [String] = [
|
|
"Ambrosia",
|
|
"Attack",
|
|
"Avalanche",
|
|
"Blast",
|
|
"Bliss",
|
|
"Blossom",
|
|
"Blush",
|
|
"Burst",
|
|
"Butter",
|
|
"Candy",
|
|
"Carnival",
|
|
"Charm",
|
|
"Chiffon",
|
|
"Cloud",
|
|
"Comet",
|
|
"Delight",
|
|
"Dream",
|
|
"Dust",
|
|
"Fantasy",
|
|
"Flame",
|
|
"Flash",
|
|
"Fire",
|
|
"Freeze",
|
|
"Frost",
|
|
"Glade",
|
|
"Glaze",
|
|
"Gleam",
|
|
"Glimmer",
|
|
"Glitter",
|
|
"Glow",
|
|
"Grande",
|
|
"Haze",
|
|
"Highlight",
|
|
"Ice",
|
|
"Illusion",
|
|
"Intrigue",
|
|
"Jewel",
|
|
"Jubilee",
|
|
"Kiss",
|
|
"Lights",
|
|
"Lollypop",
|
|
"Love",
|
|
"Luster",
|
|
"Madness",
|
|
"Matte",
|
|
"Mirage",
|
|
"Mist",
|
|
"Moon",
|
|
"Muse",
|
|
"Myth",
|
|
"Nectar",
|
|
"Nova",
|
|
"Parfait",
|
|
"Passion",
|
|
"Pop",
|
|
"Rain",
|
|
"Reflection",
|
|
"Rhapsody",
|
|
"Romance",
|
|
"Satin",
|
|
"Sensation",
|
|
"Silk",
|
|
"Shine",
|
|
"Shadow",
|
|
"Shimmer",
|
|
"Sky",
|
|
"Spice",
|
|
"Star",
|
|
"Sugar",
|
|
"Sunrise",
|
|
"Sunset",
|
|
"Sun",
|
|
"Twist",
|
|
"Unbound",
|
|
"Velvet",
|
|
"Vibrant",
|
|
"Waters",
|
|
"Wine",
|
|
"Wink",
|
|
"Wonder",
|
|
"Zone"
|
|
]
|
|
|
|
func generateThemeName(accentColor: UIColor) -> String {
|
|
var nearest: (color: UInt32, distance: Int32)?
|
|
for (color, _) in colors {
|
|
let distance = accentColor.distance(to: UIColor(rgb: color))
|
|
if let currentNearest = nearest {
|
|
if distance < currentNearest.distance {
|
|
nearest = (color, distance)
|
|
}
|
|
} else {
|
|
nearest = (color, distance)
|
|
}
|
|
}
|
|
|
|
if let color = nearest?.color, let colorName = colors[color]?.capitalized {
|
|
if arc4random() % 2 == 0 {
|
|
return "\((adjectives.randomElement() ?? "").capitalized) \(colorName)"
|
|
} else {
|
|
return "\(colorName) \((subjectives.randomElement() ?? "").capitalized)"
|
|
}
|
|
} else {
|
|
return ""
|
|
}
|
|
}
|