github.com/status-im/status-go@v1.1.0/multiaccounts/common/const.go (about) 1 package common 2 3 import ( 4 "fmt" 5 ) 6 7 type CustomizationColor string 8 9 const ( 10 CustomizationColorPrimary CustomizationColor = "primary" 11 CustomizationColorPurple CustomizationColor = "purple" 12 CustomizationColorIndigo CustomizationColor = "indigo" 13 CustomizationColorTurquoise CustomizationColor = "turquoise" 14 CustomizationColorBlue CustomizationColor = "blue" 15 CustomizationColorGreen CustomizationColor = "green" 16 CustomizationColorYellow CustomizationColor = "yellow" 17 CustomizationColorOrange CustomizationColor = "orange" 18 CustomizationColorRed CustomizationColor = "red" 19 CustomizationColorFlamingo CustomizationColor = "flamingo" 20 CustomizationColorBrown CustomizationColor = "brown" 21 CustomizationColorSky CustomizationColor = "sky" 22 CustomizationColorArmy CustomizationColor = "army" 23 CustomizationColorMagenta CustomizationColor = "magenta" 24 CustomizationColorCopper CustomizationColor = "copper" 25 CustomizationColorCamel CustomizationColor = "camel" 26 CustomizationColorYinYang CustomizationColor = "yinyang" 27 CustomizationColorBeige CustomizationColor = "beige" 28 ) 29 30 var colorToIDMap = map[CustomizationColor]uint32{ 31 CustomizationColorPrimary: 0, 32 CustomizationColorPurple: 1, 33 CustomizationColorIndigo: 2, 34 CustomizationColorTurquoise: 3, 35 CustomizationColorBlue: 4, 36 CustomizationColorGreen: 5, 37 CustomizationColorYellow: 6, 38 CustomizationColorOrange: 7, 39 CustomizationColorRed: 8, 40 CustomizationColorFlamingo: 9, 41 CustomizationColorBrown: 10, 42 CustomizationColorSky: 11, 43 CustomizationColorArmy: 12, 44 CustomizationColorMagenta: 13, 45 CustomizationColorCopper: 14, 46 CustomizationColorCamel: 15, 47 CustomizationColorYinYang: 16, 48 CustomizationColorBeige: 17, 49 } 50 51 func ColorToID(color CustomizationColor) (uint32, error) { 52 id, ok := colorToIDMap[color] 53 if !ok { 54 return 0, fmt.Errorf("Invalid color: %s", color) 55 } 56 return id, nil 57 } 58 59 func IDToColor(id uint32) (CustomizationColor, error) { 60 for color, colorID := range colorToIDMap { 61 if colorID == id { 62 return color, nil 63 } 64 } 65 return "", fmt.Errorf("Invalid color id: %d", id) 66 } 67 68 func ColorToIDFallbackToBlue(color CustomizationColor) uint32 { 69 id, err := ColorToID(color) 70 if err != nil { 71 return 4 72 } 73 return id 74 } 75 76 func IDToColorFallbackToBlue(id uint32) CustomizationColor { 77 color, err := IDToColor(id) 78 if err != nil { 79 return CustomizationColorBlue 80 } 81 82 return color 83 }