KMAdvertisementModelTransition.swift 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. //
  2. // KMAdvertisementModelTansition.swift
  3. // KMAdvertisement
  4. //
  5. // Created by lizhe on 2022/12/2.
  6. //
  7. #if os(OSX)
  8. import AppKit
  9. #elseif os(iOS)
  10. import UIKit
  11. #endif
  12. @objcMembers open class KMAdvertisementModelTransition: NSObject {
  13. //MARK: 模型转换
  14. //颜色模型转换
  15. public static func transitionColor(color: KMAdvertisementModelItem.Color?, highlight:Bool) -> UIColor {
  16. var result = UIColor.clear
  17. guard let tempColor = color else { return result }
  18. if highlight {
  19. let darkHex = tempColor.height?.dark?.hex
  20. let darkAlpha = tempColor.height?.dark?.alpha
  21. let universalHex = tempColor.height?.universal?.hex
  22. let universalAlpha = tempColor.height?.universal?.alpha
  23. let light = NSColor.init(hex: universalHex ?? "").withAlphaComponent(CGFloat(universalAlpha ?? 1))
  24. let dark = NSColor.init(hex: darkHex ?? universalHex ?? "").withAlphaComponent(CGFloat(darkAlpha ?? universalAlpha ?? 1))
  25. result = KMAdvertisementConfig.adapterDark(light: light , dark: dark) as! NSColor
  26. } else {
  27. let darkHex = tempColor.normal?.dark?.hex
  28. let darkAlpha = tempColor.normal?.dark?.alpha
  29. let universalHex = tempColor.normal?.universal?.hex
  30. let universalAlpha = tempColor.normal?.universal?.alpha
  31. let light = NSColor.init(hex: universalHex ?? "").withAlphaComponent(CGFloat(universalAlpha ?? 1))
  32. let dark = NSColor.init(hex: darkHex ?? universalHex ?? "").withAlphaComponent(CGFloat(darkAlpha ?? universalAlpha ?? 1))
  33. result = KMAdvertisementConfig.adapterDark(light: light, dark: dark) as! NSColor
  34. }
  35. return result
  36. }
  37. //图片转换
  38. public static func transitionImagePath(image: KMAdvertisementModelItem.Image?, highlight:Bool) -> String {
  39. var result = ""
  40. guard let tempImage = image else { return result }
  41. if highlight {
  42. if tempImage.height != nil {
  43. result = transitionLanguage(langeuage: KMAdvertisementConfig.isDarkModel() ? tempImage.height!.dark : tempImage.height!.universal)
  44. }
  45. } else {
  46. if tempImage.normal != nil {
  47. result = transitionLanguage(langeuage: KMAdvertisementConfig.isDarkModel() ? tempImage.normal?.dark : tempImage.normal?.universal)
  48. }
  49. }
  50. return result
  51. }
  52. //多语转换
  53. @objc public static func transitionLanguage(langeuage: KMAdvertisementModelItem.Language?) -> String {
  54. var result = ""
  55. let languageConfig = KMAdvertisementManager.manager.configuration.language
  56. if languageConfig != .unknow {
  57. if languageConfig == .en {
  58. result = langeuage?.en ?? ""
  59. } else if languageConfig == .zhCN {
  60. result = langeuage?.zh_CN ?? ""
  61. } else if languageConfig == .zhTW {
  62. result = langeuage?.zh_TW ?? ""
  63. }
  64. } else {
  65. let string = KMAdvertisementModelTransition.getLanguageType()
  66. if string == "zh-Hans-CN" {
  67. result = langeuage?.zh_CN ?? ""
  68. } else if string == "zh-Hans-TW" {
  69. result = langeuage?.zh_TW ?? ""
  70. } else {
  71. result = langeuage?.en ?? ""
  72. }
  73. }
  74. return result
  75. }
  76. public static func getLanguageType() -> String {
  77. #if os(iOS)
  78. let def = UserDefaults.standard
  79. let allLanguages: [String] = def.object(forKey: "AppleLanguages") as! [String]
  80. let chooseLanguage = allLanguages.first
  81. return chooseLanguage ?? "en"
  82. #elseif os(OSX)
  83. // let locale = NSLocale.current.languageCode
  84. // let chooseLanguage = Locale.preferredLanguages[0]
  85. let allLanguages: [String] = UserDefaults.standard.object(forKey: "AppleLanguages") as! [String]
  86. let chooseLanguage: String = allLanguages.first ?? "en"
  87. return chooseLanguage
  88. #endif
  89. }
  90. }