KMUserInfoViewController.swift 74 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306
  1. //
  2. // KMUserInfoViewController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by wanjun on 2024/10/30.
  6. //
  7. import Cocoa
  8. import Combine
  9. class KMGradationBox: NSBox {
  10. override func draw(_ dirtyRect: NSRect){
  11. super.draw(dirtyRect)
  12. guard let context = NSGraphicsContext.current?.cgContext else { return }
  13. // 定义渐变颜色
  14. let colors = [NSColor(hex: "EBDABD").cgColor, NSColor(hex: "E5CCA8").cgColor]
  15. let gradient = CGGradient(colorsSpace: nil, colors: colors as CFArray, locations: nil)
  16. // 定义渐变起始和结束点
  17. let startPoint = CGPoint(x: bounds.minX, y: bounds.minY)
  18. let endPoint = CGPoint(x: bounds.maxX, y: bounds.maxY)
  19. // 绘制圆角矩形路径
  20. let roundedPath = NSBezierPath(roundedRect: bounds, xRadius: 4, yRadius: 4) // 你的圆角半径
  21. roundedPath.addClip() // 添加路径为剪切区域
  22. context.clip() // 使路径生效
  23. // 绘制渐变
  24. context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: [])
  25. context.restoreGState()
  26. }
  27. }
  28. @objcMembers
  29. class KMUserInfoViewController: NSViewController {
  30. @IBOutlet weak var userImageView: NSImageView!
  31. @IBOutlet weak var emailLabel: NSTextField!
  32. @IBOutlet weak var productLabel: NSTextField!
  33. @IBOutlet weak var spliLineImageView: NSImageView!
  34. @IBOutlet weak var endDateLabel: NSTextField!
  35. @IBOutlet weak var membershipLabel: NSTextField!
  36. @IBOutlet weak var lockedImageView: NSImageView!
  37. @IBOutlet weak var lockedLabel: NSTextField!
  38. @IBOutlet var lockedLabelWidthffset:NSLayoutConstraint!
  39. @IBOutlet var lockedBox:KMGradationBox!
  40. @IBOutlet weak var centerBackgroud: NSImageView!
  41. @IBOutlet weak var rightsBox: NSBox!
  42. @IBOutlet var rightsView: NSView!
  43. @IBOutlet weak var number1Label: NSTextField!
  44. @IBOutlet weak var number1ImageView: NSImageView!
  45. @IBOutlet weak var number2Label: NSTextField!
  46. @IBOutlet weak var iconBox: NSBox!
  47. @IBOutlet var iconView1: NSView!
  48. @IBOutlet weak var icon1ImageView: NSImageView!
  49. @IBOutlet weak var icon2ImageView: NSImageView!
  50. @IBOutlet weak var icon3ImageView: NSImageView!
  51. @IBOutlet weak var icon4ImageView: NSImageView!
  52. @IBOutlet var iconView2: NSView!
  53. @IBOutlet weak var icon5ImageView: NSImageView!
  54. @IBOutlet weak var icon6ImageView: NSImageView!
  55. @IBOutlet weak var icon7ImageView: NSImageView!
  56. @IBOutlet var iconView3: NSView!
  57. @IBOutlet weak var icon8ImageView: NSImageView!
  58. @IBOutlet weak var icon9ImageView: NSImageView!
  59. @IBOutlet var iconView4: NSView!
  60. @IBOutlet weak var icon10ImageView: NSImageView!
  61. @IBOutlet weak var number3Label: NSTextField!
  62. @IBOutlet weak var number4Label: NSTextField!
  63. @IBOutlet weak var number4_1Label: NSTextField!
  64. @IBOutlet weak var number5Label: NSTextField!
  65. @IBOutlet weak var buyBox: NSBox!
  66. @IBOutlet var buyView1: NSView!
  67. @IBOutlet weak var buyNow1Box: KMBox!
  68. @IBOutlet weak var buyNow1ImageView: NSImageView!
  69. @IBOutlet weak var buyNow1Label: NSTextField!
  70. @IBOutlet weak var arrow1ImageView: NSImageView!
  71. @IBOutlet weak var buyNow2Box: KMBox!
  72. @IBOutlet weak var buyNow2ImageView: NSImageView!
  73. @IBOutlet weak var buyNow2Label: NSTextField!
  74. @IBOutlet weak var arrow2ImageView: NSImageView!
  75. @IBOutlet var buyNow1BoxLeftConst: NSLayoutConstraint!
  76. @IBOutlet weak var accountCenterBox: KMBox!
  77. @IBOutlet weak var accountImageView: NSImageView!
  78. @IBOutlet weak var accountLabel: NSTextField!
  79. @IBOutlet weak var signOutBox: KMBox!
  80. @IBOutlet weak var signOutImageView: NSImageView!
  81. @IBOutlet weak var signOutLabel: NSTextField!
  82. @IBOutlet weak var closeAccountBox: KMBox!
  83. @IBOutlet weak var closeAccountImageView: NSImageView!
  84. @IBOutlet weak var closeAccountLabel: NSTextField!
  85. private var viewModel = KMUserInfoVCModel()
  86. private var cancellables = Set<AnyCancellable>()
  87. deinit {
  88. KMPrint("KMUserInfoViewController deinit.")
  89. }
  90. @objc class func refreshTokenUserInfo(callback: ((Bool,KMMemberCenterResult?)->Void)?) -> Void {
  91. if KMMemberCenterManager.manager.isConnectionAvailable() == false {
  92. let alert = NSAlert()
  93. alert.alertStyle = .critical
  94. alert.messageText = NSLocalizedString("Error Information", comment: "")
  95. alert.informativeText = NSLocalizedString("Please make sure your internet connection is available.", comment: "")
  96. alert.addButton(withTitle: NSLocalizedString("OK", comment: ""))
  97. alert.runModal()
  98. let res = KMMemberCenterResult(code: 500, msg: "", result: false)
  99. callback?(false,res)
  100. return
  101. }
  102. KMUserInfoVCModel().refreshUserInfo(networkAlert: false) { success, msg,resDic in
  103. callback?(success,resDic)
  104. if success {
  105. KMMemberInfo.shared.isLogin = true
  106. } else {
  107. KMMemberInfo.shared.isLogin = false
  108. }
  109. }
  110. }
  111. override func viewDidLoad() {
  112. super.viewDidLoad()
  113. // Do view setup here.
  114. self.view.wantsLayer = true
  115. self.view.layer?.backgroundColor = .white
  116. #if VERSION_FREE
  117. #if VERSION_DMG
  118. // DMG
  119. languageLocalized_DMG()
  120. initializeUI_DMG()
  121. #else
  122. // AppStore 免费版本
  123. languageLocalized()
  124. initializeUI()
  125. #endif
  126. #else
  127. // AppStore 付费版
  128. languageLocalized()
  129. initializeUI()
  130. #endif
  131. if let data = KMMemberInfo.shared.avatarImage {
  132. userImageView.image = data
  133. } else {
  134. userImageView.image = KMAdvertisementImage.imageWithURL(url: URL(string: KMMemberInfo.shared.avatarUrl) , completion: { [weak self] image in
  135. self?.userImageView.image = image
  136. KMMemberInfo.shared.avatarImage = image
  137. })
  138. }
  139. NotificationCenter.default.addObserver(self, selector: #selector(changeEffectiveAppearance), name: NSNotification.Name(rawValue: "kEffectiveAppearance"), object: nil)
  140. }
  141. @objc func changeEffectiveAppearance() {
  142. let isDarkModel = KMAdvertisementConfig.isDarkModel()
  143. if isDarkModel {
  144. self.view.appearance = NSAppearance(named: .darkAqua)
  145. } else {
  146. self.view.appearance = NSAppearance(named: .aqua)
  147. }
  148. #if VERSION_FREE
  149. #if VERSION_DMG
  150. // DMG
  151. initializeUI_DMG()
  152. #else
  153. // AppStore 免费版本
  154. initializeUI()
  155. #endif
  156. #else
  157. // AppStore 付费版
  158. initializeUI()
  159. #endif
  160. }
  161. // MARK: Private Method
  162. private func languageLocalized() -> Void {
  163. emailLabel.stringValue = KMMemberInfo.shared.userEmail
  164. productLabel.stringValue = NSLocalizedString("Personal Account", tableName: "MemberCenterLocalizable", comment: "")
  165. endDateLabel.stringValue = String(format: "%@ %@", KMMemberInfo.shared.vip_endDate,NSLocalizedString("expires", tableName: "MemberCenterLocalizable", comment: ""))
  166. membershipLabel.stringValue = NSLocalizedString("Membership Benefits", tableName: "MemberCenterLocalizable", comment: "")
  167. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  168. accountLabel.stringValue = NSLocalizedString("Account Center", tableName: "MemberCenterLocalizable", comment: "")
  169. signOutLabel.stringValue = NSLocalizedString("Sign out", tableName: "MemberCenterLocalizable", comment: "")
  170. if KMMemberInfo.shared.validFlag == "5" {
  171. closeAccountLabel.stringValue = NSLocalizedString("Undo Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  172. } else {
  173. closeAccountLabel.stringValue = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  174. }
  175. if KMMemberInfo.shared.vip_maxDeviceNum == 1 {
  176. number4Label.stringValue = NSLocalizedString("device", tableName: "MemberCenterLocalizable", comment: "")
  177. } else {
  178. number4Label.stringValue = NSLocalizedString("devices", tableName: "MemberCenterLocalizable", comment: "")
  179. }
  180. number4_1Label.stringValue = String(KMMemberInfo.shared.vip_maxDeviceNum)
  181. number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
  182. let platforms = viewModel.getPlatformsImages()
  183. if platforms.count == 4 {
  184. number3Label.stringValue = NSLocalizedString("All-platform Available", tableName: "MemberCenterLocalizable", comment: "")
  185. } else {
  186. number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
  187. }
  188. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  189. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  190. var isTrialPeriod = false
  191. #if !VERSION_DMG
  192. if IAPProductsManager.default().fourDevicesAllAccessPackNew12months_lite.isTrialPeriod == true {
  193. isTrialPeriod = true
  194. }
  195. #else
  196. #endif
  197. if isTrialPeriod {
  198. buyNow2Label.stringValue = NSLocalizedString("7-Day Free Trial", tableName: "MemberCenterLocalizable", comment: "")
  199. } else {
  200. buyNow2Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  201. }
  202. } else if KMMemberInfo.shared.userScenarioType == .lite_type9 {
  203. if(KMMemberInfo.shared.vip_status == 2) {
  204. buyNow1Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
  205. } else if (KMMemberInfo.shared.vip_status == 4) {
  206. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  207. } else {
  208. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  209. }
  210. } else if KMMemberInfo.shared.userScenarioType == .lite_type3 {
  211. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  212. } else if KMMemberInfo.shared.userScenarioType == .lite_type11 {
  213. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  214. } else if KMMemberInfo.shared.userScenarioType == .lite_type5 ||
  215. KMMemberInfo.shared.userScenarioType == .pro_type1 ||
  216. KMMemberInfo.shared.userScenarioType == .pro_type4 {
  217. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  218. } else if KMMemberInfo.shared.userScenarioType == .pro_type3 {
  219. if(KMMemberInfo.shared.vip_status == 2) {
  220. buyNow1Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
  221. } else {
  222. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  223. }
  224. } else if KMMemberInfo.shared.userScenarioType == .lite_type7 ||
  225. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  226. KMMemberInfo.shared.userScenarioType == .lite_type13 {
  227. buyNow1Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
  228. }
  229. }
  230. private func refreshEquity() -> Void {
  231. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  232. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  233. lockedImageView.image = NSImage(named: "LockedImage")
  234. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  235. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  236. number1ImageView.isHidden = true
  237. number1Label.isHidden = false
  238. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  239. number1Label.textColor = NSColor(hex: "0E1114")
  240. membershipLabel.textColor = NSColor(hex: "42464D")
  241. } else if KMMemberInfo.shared.userScenarioType == .lite_type2 {
  242. lockedLabel.stringValue = NSLocalizedString("Annual Plan", tableName: "MemberCenterLocalizable", comment: "")
  243. lockedImageView.image = NSImage(named: "UpgradeImage2")
  244. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  245. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  246. number1ImageView.isHidden = false
  247. number1Label.isHidden = true
  248. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  249. } else if KMMemberInfo.shared.userScenarioType == .lite_type3 {
  250. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  251. lockedImageView.image = NSImage(named: "LockedImage")
  252. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  253. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  254. number1ImageView.isHidden = true
  255. number1Label.isHidden = false
  256. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  257. number1Label.textColor = NSColor(hex: "0E1114")
  258. } else if KMMemberInfo.shared.userScenarioType == .lite_type4 {
  259. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  260. lockedImageView.image = NSImage(named: "UpgradeImage2")
  261. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  262. if KMMemberInfo.shared.vip_levels == "2" {
  263. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  264. } else {
  265. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  266. }
  267. number1ImageView.isHidden = false
  268. number1Label.isHidden = true
  269. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  270. } else if KMMemberInfo.shared.userScenarioType == .lite_type5 {
  271. lockedLabel.stringValue = NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "")
  272. lockedImageView.image = NSImage(named: "UpgradeImage2")
  273. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  274. if KMMemberInfo.shared.vip_levels == "2" {
  275. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  276. } else {
  277. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  278. }
  279. number1ImageView.isHidden = false
  280. number1Label.isHidden = true
  281. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
  282. } else if KMMemberInfo.shared.userScenarioType == .lite_type6 {
  283. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  284. lockedImageView.image = NSImage(named: "UpgradeImage2")
  285. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  286. if KMMemberInfo.shared.vip_levels == "2" {
  287. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  288. } else {
  289. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  290. }
  291. number1ImageView.isHidden = false
  292. number1Label.isHidden = true
  293. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  294. } else if KMMemberInfo.shared.userScenarioType == .lite_type7 {
  295. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  296. lockedImageView.image = NSImage(named: "LockedImage")
  297. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  298. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  299. number1ImageView.isHidden = true
  300. number1Label.isHidden = false
  301. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  302. number1Label.textColor = NSColor(hex: "0E1114")
  303. } else if KMMemberInfo.shared.userScenarioType == .lite_type8 {
  304. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  305. lockedImageView.image = NSImage(named: "UpgradeImage2")
  306. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  307. if KMMemberInfo.shared.vip_levels == "2" {
  308. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  309. } else {
  310. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  311. }
  312. number1ImageView.isHidden = false
  313. number1Label.isHidden = true
  314. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  315. } else if KMMemberInfo.shared.userScenarioType == .lite_type9 ||
  316. KMMemberInfo.shared.userScenarioType == .pro_type1 {
  317. if(KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_levels != "1") { //永久
  318. lockedLabel.stringValue = NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "")
  319. lockedImageView.image = NSImage(named: "UpgradeImage2")
  320. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  321. if KMMemberInfo.shared.vip_levels == "2" {
  322. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  323. } else {
  324. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  325. }
  326. number1ImageView.isHidden = false
  327. number1Label.isHidden = true
  328. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
  329. } else { //免费+订阅过期+试用过期
  330. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  331. lockedImageView.image = NSImage(named: "LockedImage")
  332. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  333. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  334. number1ImageView.isHidden = true
  335. number1Label.isHidden = false
  336. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  337. number1Label.textColor = NSColor(hex: "0E1114")
  338. }
  339. } else if KMMemberInfo.shared.userScenarioType == .lite_type10 {
  340. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  341. lockedImageView.image = NSImage(named: "UpgradeImage2")
  342. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  343. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  344. number1ImageView.isHidden = false
  345. number1Label.isHidden = true
  346. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  347. } else if KMMemberInfo.shared.userScenarioType == .lite_type11 {
  348. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  349. lockedImageView.image = NSImage(named: "LockedImage")
  350. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  351. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  352. number1ImageView.isHidden = true
  353. number1Label.isHidden = false
  354. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  355. number1Label.textColor = NSColor(hex: "0E1114")
  356. } else if KMMemberInfo.shared.userScenarioType == .lite_type12 {
  357. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  358. lockedImageView.image = NSImage(named: "UpgradeImage2")
  359. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  360. if(KMMemberInfo.shared.vip_levels == "2") {
  361. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  362. } else if((KMMemberInfo.shared.vip_levels == "3")) {
  363. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  364. }
  365. number1ImageView.isHidden = false
  366. number1Label.isHidden = true
  367. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  368. } else if KMMemberInfo.shared.userScenarioType == .lite_type13 {
  369. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  370. lockedImageView.image = NSImage(named: "UpgradeImage2")
  371. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  372. if KMMemberInfo.shared.vip_levels == "2" {
  373. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  374. } else {
  375. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  376. }
  377. number1ImageView.isHidden = false
  378. number1Label.isHidden = true
  379. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  380. } else if KMMemberInfo.shared.userScenarioType == .pro_type2 {
  381. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  382. lockedImageView.image = NSImage(named: "UpgradeImage2")
  383. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  384. if KMMemberInfo.shared.vip_levels == "2" {
  385. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  386. } else {
  387. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  388. }
  389. number1ImageView.isHidden = false
  390. number1Label.isHidden = true
  391. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  392. number1Label.textColor = NSColor(named: "FFFFFF")
  393. } else if KMMemberInfo.shared.userScenarioType == .pro_type3 {
  394. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  395. lockedImageView.image = NSImage(named: "LockedImage")
  396. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  397. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  398. number1ImageView.isHidden = true
  399. number1Label.isHidden = false
  400. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  401. number1Label.textColor = NSColor(hex: "0E1114")
  402. } else if KMMemberInfo.shared.userScenarioType == .pro_type4 {
  403. lockedLabel.stringValue = NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "")
  404. lockedImageView.image = NSImage(named: "UpgradeImage2")
  405. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  406. if KMMemberInfo.shared.vip_levels == "2" {
  407. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  408. } else {
  409. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  410. }
  411. number1ImageView.isHidden = false
  412. number1Label.isHidden = true
  413. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
  414. } else if KMMemberInfo.shared.userScenarioType == .pro_type5 {
  415. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  416. lockedImageView.image = NSImage(named: "UpgradeImage2")
  417. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  418. if KMMemberInfo.shared.vip_levels == "2" {
  419. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  420. } else {
  421. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  422. }
  423. number1ImageView.isHidden = false
  424. number1Label.isHidden = true
  425. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  426. } else {
  427. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  428. lockedImageView.image = NSImage(named: "LockedImage")
  429. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  430. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  431. number1ImageView.isHidden = true
  432. number1Label.isHidden = false
  433. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  434. number1Label.textColor = NSColor(hex: "0E1114")
  435. }
  436. if lockedLabel.stringValue == NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "") {
  437. lockedLabel.textColor = NSColor(hex: "#42464D")
  438. } else if lockedLabel.stringValue == NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "") {
  439. lockedLabel.textColor = NSColor(hex: "#42464D")
  440. } else if lockedLabel.stringValue == NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "") {
  441. lockedLabel.textColor = NSColor(hex: "#273C62")
  442. } else if lockedLabel.stringValue == NSLocalizedString("Annual Plan", tableName: "MemberCenterLocalizable", comment: "") {
  443. lockedLabel.textColor = NSColor(hex: "#42464D")
  444. }
  445. }
  446. private func initializeUI() -> Void {
  447. refreshEquity()
  448. self.view.wantsLayer = true
  449. let isDarkModel = KMAdvertisementConfig.isDarkModel()
  450. if isDarkModel {
  451. self.view.layer?.backgroundColor = NSColor(hex: "0E1114").cgColor;
  452. } else {
  453. self.view.layer?.backgroundColor = NSColor(hex: "FFFFFF").cgColor;
  454. }
  455. userImageView.image = NSImage(named: "UserProfilePicture_Size")
  456. emailLabel.textColor = NSColor(named: "0E1114")
  457. emailLabel.font = NSFont.SFMediumFontWithSize(14)
  458. productLabel.textColor = NSColor(named: "42464D_1")
  459. productLabel.font = NSFont.SFProTextRegularFont(12)
  460. endDateLabel.textColor = NSColor(named: "42464D_1")
  461. endDateLabel.font = NSFont.SFProTextRegularFont(12)
  462. spliLineImageView.isHidden = true
  463. endDateLabel.isHidden = true
  464. if KMMemberInfo.shared.vip_levels != "1" &&
  465. KMMemberInfo.shared.vip_paymentModel == "1" &&
  466. (KMMemberInfo.shared.vip_status == 1 || KMMemberInfo.shared.vip_status == 3) {
  467. // 订阅中、试用中,显示到期日期
  468. if KMMemberInfo.shared.vip_endDate.count > 0 {
  469. spliLineImageView.isHidden = false
  470. endDateLabel.isHidden = false
  471. }
  472. } else if KMMemberInfo.shared.vip_status == 2 {
  473. // 订阅到期,显示到期日期
  474. if KMMemberInfo.shared.vip_endDate.count > 0 {
  475. spliLineImageView.isHidden = false
  476. endDateLabel.isHidden = false
  477. endDateLabel.textColor = NSColor(named: "FA1E5D")
  478. }
  479. }
  480. membershipLabel.font = NSFont.SFMediumFontWithSize(16)
  481. lockedLabel.font = NSFont.SFMediumFontWithSize(12)
  482. rightsBox.contentView = rightsView
  483. number1Label.font = NSFont.SFMediumFontWithSize(24)
  484. number1ImageView.image = NSImage(named: "UpgradeImage")
  485. number2Label.font = NSFont.SFProTextRegularFont(12)
  486. number3Label.font = NSFont.SFProTextRegularFont(12)
  487. number5Label.font = NSFont.SFProTextRegularFont(12)
  488. buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  489. buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  490. buyNow1Label.textColor = NSColor(named: "FFFFFF")
  491. buyNow1Label.font = NSFont.SFProTextRegularFont(14)
  492. buyNow2Label.textColor = NSColor(named: "FFFFFF")
  493. buyNow2Label.font = NSFont.SFProTextRegularFont(14)
  494. accountCenterBox.borderColor = NSColor(named: "3091FF") ?? .blue
  495. accountCenterBox.fillColor = .clear
  496. accountLabel.textColor = NSColor(named: "3091FF")
  497. accountLabel.font = NSFont.SFProTextRegularFont(14)
  498. accountImageView.image = NSImage(named: "AccountCenterImage")
  499. signOutLabel.textColor = NSColor(named: "3091FF")
  500. signOutLabel.font = NSFont.SFProTextRegularFont(14)
  501. signOutImageView.image = NSImage(named: "SignOutImage")
  502. closeAccountLabel.textColor = NSColor(named: "3091FF")
  503. closeAccountLabel.font = NSFont.SFProTextRegularFont(14)
  504. closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  505. var isNoOldSubscribed = false
  506. var isTrialPeriod = false
  507. #if VERSION_FREE
  508. #if !VERSION_DMG
  509. isNoOldSubscribed = IAPProductsManager.default().allAccessPack6months_lite.isSubscribed == false && IAPProductsManager.default().allAccessPack12months_lite.isSubscribed == false
  510. if IAPProductsManager.default().fourDevicesAllAccessPackNew12months_lite.isTrialPeriod == true {
  511. isTrialPeriod = true
  512. }
  513. #endif
  514. #endif
  515. var isShowFreeTraalBtn = false
  516. if KMMemberInfo.shared.userScenarioType == .lite_type1 { //未试用
  517. buyBox.contentView = buyView1
  518. buyNow1ImageView.isHidden = false
  519. buyNow2ImageView.isHidden = false
  520. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  521. arrow2ImageView.image = NSImage(named: "BuyNewArrowImage1")
  522. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  523. buyNow2Label.textColor = NSColor(hex: "FFFFFF")
  524. if isTrialPeriod == true {
  525. buyNow2Box.isHidden = true
  526. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  527. } else {
  528. isShowFreeTraalBtn = true
  529. }
  530. } else if KMMemberInfo.shared.userScenarioType == .pro_type3 {
  531. buyBox.contentView = buyView1
  532. buyNow1ImageView.isHidden = false
  533. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  534. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  535. buyNow2Box.isHidden = true
  536. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  537. } else if KMMemberInfo.shared.userScenarioType == .lite_type9 ||
  538. KMMemberInfo.shared.userScenarioType == .pro_type1 {
  539. buyBox.contentView = buyView1
  540. buyNow2Box.isHidden = true
  541. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  542. if((KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_levels != "1")) { //永久
  543. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  544. buyNow1Label.textColor = NSColor(hex: "42464D")
  545. } else {
  546. buyNow1ImageView.isHidden = false
  547. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  548. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  549. }
  550. } else if KMMemberInfo.shared.userScenarioType == .lite_type11 { //试用过期
  551. if(!isNoOldSubscribed) {
  552. buyBox.contentView = buyView1
  553. buyNow1ImageView.isHidden = false
  554. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  555. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  556. buyNow2Box.isHidden = true
  557. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  558. }
  559. } else if KMMemberInfo.shared.userScenarioType == .lite_type2 ||
  560. KMMemberInfo.shared.userScenarioType == .lite_type4 ||
  561. KMMemberInfo.shared.userScenarioType == .lite_type6 ||
  562. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  563. KMMemberInfo.shared.userScenarioType == .lite_type10 ||
  564. KMMemberInfo.shared.userScenarioType == .lite_type12 ||
  565. KMMemberInfo.shared.userScenarioType == .lite_type13 ||
  566. KMMemberInfo.shared.userScenarioType == .pro_type2 ||
  567. KMMemberInfo.shared.userScenarioType == .pro_type5 { //有订阅+试用中
  568. } else if KMMemberInfo.shared.userScenarioType == .lite_type7 ||
  569. KMMemberInfo.shared.userScenarioType == .lite_type3 { //试用过期+会员到期
  570. buyBox.contentView = buyView1
  571. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  572. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  573. buyNow2Box.isHidden = true
  574. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  575. } else {
  576. buyBox.contentView = buyView1
  577. buyNow2Box.isHidden = true
  578. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  579. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  580. buyNow1Label.textColor = NSColor(hex: "42464D")
  581. }
  582. if KMMemberInfo.shared.userScenarioType == .lite_type2 ||
  583. KMMemberInfo.shared.userScenarioType == .lite_type4 ||
  584. KMMemberInfo.shared.userScenarioType == .lite_type5 ||
  585. KMMemberInfo.shared.userScenarioType == .lite_type6 ||
  586. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  587. KMMemberInfo.shared.userScenarioType == .lite_type10 ||
  588. KMMemberInfo.shared.userScenarioType == .lite_type12 ||
  589. KMMemberInfo.shared.userScenarioType == .lite_type13 ||
  590. KMMemberInfo.shared.userScenarioType == .pro_type2 ||
  591. KMMemberInfo.shared.userScenarioType == .pro_type4 ||
  592. KMMemberInfo.shared.userScenarioType == .pro_type5 { //订阅或者买断
  593. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  594. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  595. buyNow1ImageView.isHidden = true
  596. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  597. number2Label.textColor = NSColor(hex: "FFFFFF")
  598. number3Label.textColor = NSColor(hex: "FFFFFF")
  599. number4Label.textColor = NSColor(hex: "FFFFFF")
  600. number4_1Label.textColor = NSColor(hex: "FFFFFF")
  601. number5Label.textColor = NSColor(hex: "FFFFFF")
  602. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  603. } else if(KMMemberInfo.shared.userScenarioType == .lite_type9 ||
  604. KMMemberInfo.shared.userScenarioType == .pro_type1) {
  605. if(KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_levels != "1") { //永久
  606. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  607. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  608. buyNow1ImageView.isHidden = true
  609. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  610. number2Label.textColor = NSColor(hex: "FFFFFF")
  611. number3Label.textColor = NSColor(hex: "FFFFFF")
  612. number4Label.textColor = NSColor(hex: "FFFFFF")
  613. number4_1Label.textColor = NSColor(hex: "FFFFFF")
  614. number5Label.textColor = NSColor(hex: "FFFFFF")
  615. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  616. } else {
  617. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  618. membershipLabel.textColor = NSColor(hex: "42464D")
  619. buyNow1ImageView.isHidden = false
  620. buyNow1Box.fillColor = NSColor.clear
  621. number2Label.textColor = NSColor(hex:"42464D")
  622. number3Label.textColor = NSColor(hex:"42464D")
  623. number4Label.textColor = NSColor(hex: "42464D")
  624. number4_1Label.textColor = NSColor(hex: "42464D")
  625. number5Label.textColor = NSColor(hex: "42464D")
  626. membershipLabel.textColor = NSColor(hex: "42464D")
  627. }
  628. } else {
  629. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  630. membershipLabel.textColor = NSColor(hex: "42464D")
  631. buyNow1ImageView.isHidden = false
  632. buyNow1Box.fillColor = NSColor.clear
  633. number2Label.textColor = NSColor(hex:"42464D")
  634. number3Label.textColor = NSColor(hex:"42464D")
  635. number4Label.textColor = NSColor(hex: "42464D")
  636. number4_1Label.textColor = NSColor(hex: "42464D")
  637. number5Label.textColor = NSColor(hex: "42464D")
  638. membershipLabel.textColor = NSColor(hex: "42464D")
  639. }
  640. lockedLabel.textColor = NSColor(hex: "42464D")
  641. let platforms = viewModel.getPlatformsImages()
  642. if platforms.count == 4 {
  643. iconBox.contentView = iconView1
  644. icon1ImageView.image = platforms[0]
  645. icon2ImageView.image = platforms[1]
  646. icon3ImageView.image = platforms[2]
  647. icon4ImageView.image = platforms[3]
  648. } else if platforms.count == 3 {
  649. iconBox.contentView = iconView2
  650. icon5ImageView.image = platforms[0]
  651. icon6ImageView.image = platforms[1]
  652. icon7ImageView.image = platforms[2]
  653. } else if platforms.count == 2 {
  654. iconBox.contentView = iconView3
  655. icon8ImageView.image = platforms[0]
  656. icon9ImageView.image = platforms[1]
  657. } else if platforms.count == 1 {
  658. iconBox.contentView = iconView4
  659. icon10ImageView.image = platforms[0]
  660. }
  661. buyNow1Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  662. guard let self = self else { return }
  663. if KMMemberInfo.shared.userScenarioType == .lite_type2 ||
  664. KMMemberInfo.shared.userScenarioType == .lite_type4 ||
  665. KMMemberInfo.shared.userScenarioType == .lite_type5 ||
  666. KMMemberInfo.shared.userScenarioType == .lite_type6 ||
  667. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  668. KMMemberInfo.shared.userScenarioType == .lite_type10 ||
  669. KMMemberInfo.shared.userScenarioType == .lite_type12 ||
  670. KMMemberInfo.shared.userScenarioType == .lite_type13 ||
  671. KMMemberInfo.shared.userScenarioType == .pro_type2 ||
  672. KMMemberInfo.shared.userScenarioType == .pro_type4 ||
  673. KMMemberInfo.shared.userScenarioType == .pro_type5 { //订阅或者买断
  674. if mouseEntered {
  675. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2Hover")
  676. self.buyNow1Label.textColor = NSColor(hex: "4982E6")
  677. } else {
  678. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  679. self.buyNow1Label.textColor = NSColor(hex: "0E1114")
  680. }
  681. } else {
  682. if mouseEntered {
  683. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  684. } else {
  685. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  686. }
  687. }
  688. }
  689. buyNow1Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  690. guard let self = self else { return }
  691. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  692. // 免费版,免费账号跳转购买比较表
  693. self.viewModel.skipCompare(.lite_Base)
  694. } else {
  695. // 其它情况根据账号状态跳转不同比较表
  696. NotificationCenter.default.post(name: NSNotification.Name("CloseMenuNotification"), object: nil)
  697. KMMemberInfo.shared.productCompareShow()
  698. }
  699. }
  700. buyNow2Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  701. guard let self = self else { return }
  702. if mouseEntered {
  703. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  704. } else {
  705. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  706. }
  707. }
  708. buyNow2Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  709. guard let self = self else { return }
  710. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  711. // 免费版,免费账号跳转试用比较表
  712. self.viewModel.skipCompare(.trial)
  713. }
  714. }
  715. accountCenterBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  716. guard let self = self else { return }
  717. if mouseEntered {
  718. self.accountCenterBox.fillColor = NSColor(named: "F5FAFF") ?? .white
  719. self.accountLabel.textColor = NSColor(named: "3091FF")
  720. self.accountImageView.image = NSImage(named: "AccountCenterImage_Hov")
  721. } else {
  722. self.accountCenterBox.fillColor = .clear
  723. self.accountLabel.textColor = NSColor(named: "3091FF")
  724. self.accountImageView.image = NSImage(named: "AccountCenterImage")
  725. }
  726. }
  727. accountCenterBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  728. guard let self = self else { return }
  729. self.viewModel.skipAccountCenter()
  730. }
  731. signOutBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  732. guard let self = self else { return }
  733. if mouseEntered {
  734. self.signOutLabel.textColor = NSColor(named: "3091FF")
  735. self.signOutImageView.image = NSImage(named: "SignOutImage_Hov")
  736. } else {
  737. self.signOutLabel.textColor = NSColor(named: "3091FF")
  738. self.signOutImageView.image = NSImage(named: "SignOutImage")
  739. }
  740. }
  741. signOutBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  742. guard let self = self else { return }
  743. self.viewModel.signOutAction()
  744. }
  745. closeAccountBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  746. guard let self = self else { return }
  747. if mouseEntered {
  748. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  749. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage_hover")
  750. } else {
  751. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  752. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  753. }
  754. }
  755. closeAccountBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  756. guard let self = self else { return }
  757. self.viewModel.closeAccountAction()
  758. }
  759. if isShowFreeTraalBtn == true { //没有试用过,才能显示,不然就算远程支持,功能上也不支持远程控制
  760. //远程控制
  761. if let userViewInfoContent = KMAdvertisementManager.manager.info.userViewInfoContent {
  762. if userViewInfoContent.content?.isEmpty == false {
  763. buyNow2Box.isHidden = true
  764. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  765. }
  766. }
  767. }
  768. }
  769. // MARK: Action Method
  770. private func languageLocalized_DMG() -> Void {
  771. emailLabel.stringValue = KMMemberInfo.shared.userEmail
  772. productLabel.stringValue = NSLocalizedString("Personal Account", tableName: "MemberCenterLocalizable", comment: "")
  773. endDateLabel.stringValue = String(format: "%@ %@", KMMemberInfo.shared.vip_endDate,NSLocalizedString("expires", tableName: "MemberCenterLocalizable", comment: ""))
  774. membershipLabel.stringValue = NSLocalizedString("Membership Benefits", tableName: "MemberCenterLocalizable", comment: "")
  775. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  776. accountLabel.stringValue = NSLocalizedString("Account Center", tableName: "MemberCenterLocalizable", comment: "")
  777. signOutLabel.stringValue = NSLocalizedString("Sign out", tableName: "MemberCenterLocalizable", comment: "")
  778. if KMMemberInfo.shared.validFlag == "5" {
  779. closeAccountLabel.stringValue = NSLocalizedString("Undo Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  780. } else {
  781. closeAccountLabel.stringValue = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  782. }
  783. if KMMemberInfo.shared.vip_maxDeviceNum == 1 {
  784. number4Label.stringValue = NSLocalizedString("device", tableName: "MemberCenterLocalizable", comment: "")
  785. } else {
  786. number4Label.stringValue = NSLocalizedString("devices", tableName: "MemberCenterLocalizable", comment: "")
  787. }
  788. number4_1Label.stringValue = String(KMMemberInfo.shared.vip_maxDeviceNum)
  789. number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
  790. let platforms = viewModel.getPlatformsImages()
  791. if platforms.count == 4 {
  792. number3Label.stringValue = NSLocalizedString("All-platform Available", tableName: "MemberCenterLocalizable", comment: "")
  793. } else {
  794. number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
  795. }
  796. if KMMemberInfo.shared.userScenarioType == .dmg_type5 ||
  797. KMMemberInfo.shared.userScenarioType == .dmg_type6 ||
  798. KMMemberInfo.shared.userScenarioType == .dmg_type7 ||
  799. KMMemberInfo.shared.userScenarioType == .dmg_type28 ||
  800. KMMemberInfo.shared.userScenarioType == .dmg_type29 ||
  801. KMMemberInfo.shared.userScenarioType == .dmg_type30 ||
  802. KMMemberInfo.shared.userScenarioType == .dmg_type43 ||
  803. KMMemberInfo.shared.userScenarioType == .dmg_type44 ||
  804. KMMemberInfo.shared.userScenarioType == .dmg_type45 { // 买断
  805. lockedLabel.stringValue = NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "")
  806. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  807. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  808. } else if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  809. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  810. KMMemberInfo.shared.userScenarioType == .dmg_type10 ||
  811. KMMemberInfo.shared.userScenarioType == .dmg_type12 ||
  812. KMMemberInfo.shared.userScenarioType == .dmg_type13 ||
  813. KMMemberInfo.shared.userScenarioType == .dmg_type14 ||
  814. KMMemberInfo.shared.userScenarioType == .dmg_type15 ||
  815. KMMemberInfo.shared.userScenarioType == .dmg_type16 ||
  816. KMMemberInfo.shared.userScenarioType == .dmg_type17 ||
  817. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  818. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  819. KMMemberInfo.shared.userScenarioType == .dmg_type23 ||
  820. KMMemberInfo.shared.userScenarioType == .dmg_type24 ||
  821. KMMemberInfo.shared.userScenarioType == .dmg_type25 ||
  822. KMMemberInfo.shared.userScenarioType == .dmg_type26 ||
  823. KMMemberInfo.shared.userScenarioType == .dmg_type27 ||
  824. KMMemberInfo.shared.userScenarioType == .dmg_type31 ||
  825. KMMemberInfo.shared.userScenarioType == .dmg_type32 ||
  826. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  827. KMMemberInfo.shared.userScenarioType == .dmg_type36 ||
  828. KMMemberInfo.shared.userScenarioType == .dmg_type38 ||
  829. KMMemberInfo.shared.userScenarioType == .dmg_type39 ||
  830. KMMemberInfo.shared.userScenarioType == .dmg_type40 ||
  831. KMMemberInfo.shared.userScenarioType == .dmg_type41 ||
  832. KMMemberInfo.shared.userScenarioType == .dmg_type42 ||
  833. KMMemberInfo.shared.userScenarioType == .dmg_type46 ||
  834. KMMemberInfo.shared.userScenarioType == .dmg_type47 { // 订阅
  835. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  836. if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  837. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  838. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  839. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  840. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  841. KMMemberInfo.shared.userScenarioType == .dmg_type36 {
  842. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  843. } else {
  844. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  845. }
  846. } else { // 免费 & 到期
  847. if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  848. KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  849. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  850. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  851. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  852. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  853. KMMemberInfo.shared.userScenarioType == .dmg_type34 ||
  854. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  855. KMMemberInfo.shared.userScenarioType == .dmg_type48 {
  856. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  857. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  858. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  859. if KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  860. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  861. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  862. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  863. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  864. KMMemberInfo.shared.userScenarioType == .dmg_type48 { // 到期
  865. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  866. } else { // 免费
  867. }
  868. if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  869. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  870. KMMemberInfo.shared.userScenarioType == .dmg_type34 {
  871. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  872. buyNow2Label.stringValue = NSLocalizedString("7-Day Free Trial", tableName: "MemberCenterLocalizable", comment: "")
  873. } else if KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  874. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  875. KMMemberInfo.shared.userScenarioType == .dmg_type37 {
  876. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  877. } else if KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  878. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  879. KMMemberInfo.shared.userScenarioType == .dmg_type48 {
  880. buyNow1Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
  881. }
  882. }
  883. }
  884. }
  885. private func initializeUI_DMG() -> Void {
  886. self.view.wantsLayer = true
  887. let isDarkModel = KMAdvertisementConfig.isDarkModel()
  888. if isDarkModel {
  889. self.view.layer?.backgroundColor = NSColor(hex: "0E1114").cgColor;
  890. } else {
  891. self.view.layer?.backgroundColor = NSColor(hex: "FFFFFF").cgColor;
  892. }
  893. rightsBox.contentView = rightsView
  894. buyBox.contentView = buyView1
  895. userImageView.image = NSImage(named: "UserProfilePicture_Size")
  896. emailLabel.textColor = NSColor(named: "0E1114")
  897. emailLabel.font = NSFont.SFMediumFontWithSize(14)
  898. productLabel.textColor = NSColor(named: "42464D_1")
  899. productLabel.font = NSFont.SFProTextRegularFont(12)
  900. endDateLabel.textColor = NSColor(named: "42464D_1")
  901. endDateLabel.font = NSFont.SFProTextRegularFont(12)
  902. spliLineImageView.isHidden = true
  903. endDateLabel.isHidden = true
  904. number1Label.font = NSFont.SFMediumFontWithSize(24)
  905. number1Label.textColor = NSColor(hex: "0E1114")
  906. number2Label.font = NSFont.SFProTextRegularFont(12)
  907. number3Label.font = NSFont.SFProTextRegularFont(12)
  908. number5Label.font = NSFont.SFProTextRegularFont(12)
  909. membershipLabel.font = NSFont.SFMediumFontWithSize(16)
  910. lockedLabel.font = NSFont.SFMediumFontWithSize(12)
  911. lockedLabel.textColor = NSColor(hex: "42464D")
  912. accountCenterBox.borderColor = NSColor(named: "3091FF") ?? .blue
  913. accountCenterBox.fillColor = .clear
  914. accountLabel.textColor = NSColor(named: "3091FF")
  915. accountLabel.font = NSFont.SFProTextRegularFont(14)
  916. accountImageView.image = NSImage(named: "AccountCenterImage")
  917. signOutLabel.textColor = NSColor(named: "3091FF")
  918. signOutLabel.font = NSFont.SFProTextRegularFont(14)
  919. signOutImageView.image = NSImage(named: "SignOutImage")
  920. closeAccountLabel.textColor = NSColor(named: "3091FF")
  921. closeAccountLabel.font = NSFont.SFProTextRegularFont(14)
  922. closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  923. buyNow1Label.font = NSFont.SFProTextRegularFont(14)
  924. buyNow2Label.font = NSFont.SFProTextRegularFont(14)
  925. let platforms = viewModel.getPlatformsImages()
  926. if platforms.count == 4 {
  927. iconBox.contentView = iconView1
  928. icon1ImageView.image = platforms[0]
  929. icon2ImageView.image = platforms[1]
  930. icon3ImageView.image = platforms[2]
  931. icon4ImageView.image = platforms[3]
  932. } else if platforms.count == 3 {
  933. iconBox.contentView = iconView2
  934. icon5ImageView.image = platforms[0]
  935. icon6ImageView.image = platforms[1]
  936. icon7ImageView.image = platforms[2]
  937. } else if platforms.count == 2 {
  938. iconBox.contentView = iconView3
  939. icon8ImageView.image = platforms[0]
  940. icon9ImageView.image = platforms[1]
  941. } else if platforms.count == 1 {
  942. iconBox.contentView = iconView4
  943. icon10ImageView.image = platforms[0]
  944. }
  945. buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  946. buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  947. if KMMemberInfo.shared.userScenarioType == .dmg_type5 ||
  948. KMMemberInfo.shared.userScenarioType == .dmg_type6 ||
  949. KMMemberInfo.shared.userScenarioType == .dmg_type7 ||
  950. KMMemberInfo.shared.userScenarioType == .dmg_type28 ||
  951. KMMemberInfo.shared.userScenarioType == .dmg_type29 ||
  952. KMMemberInfo.shared.userScenarioType == .dmg_type30 ||
  953. KMMemberInfo.shared.userScenarioType == .dmg_type43 ||
  954. KMMemberInfo.shared.userScenarioType == .dmg_type44 ||
  955. KMMemberInfo.shared.userScenarioType == .dmg_type45 { // 买断
  956. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
  957. lockedImageView.image = NSImage(named: "UpgradeImage2")
  958. number1ImageView.isHidden = false
  959. number1ImageView.image = NSImage(named: "UpgradeImage")
  960. number1Label.isHidden = true
  961. number2Label.textColor = NSColor(hex: "FFFFFF")
  962. number3Label.textColor = NSColor(hex: "FFFFFF")
  963. number4Label.textColor = NSColor(hex: "FFFFFF")
  964. number4_1Label.textColor = NSColor(hex: "FFFFFF")
  965. number5Label.textColor = NSColor(hex: "FFFFFF")
  966. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  967. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  968. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  969. buyNow1ImageView.isHidden = true
  970. buyNow2Box.isHidden = true
  971. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  972. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  973. buyNow1Label.textColor = NSColor(hex: "42464D")
  974. } else if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  975. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  976. KMMemberInfo.shared.userScenarioType == .dmg_type10 ||
  977. KMMemberInfo.shared.userScenarioType == .dmg_type12 ||
  978. KMMemberInfo.shared.userScenarioType == .dmg_type13 ||
  979. KMMemberInfo.shared.userScenarioType == .dmg_type14 ||
  980. KMMemberInfo.shared.userScenarioType == .dmg_type15 ||
  981. KMMemberInfo.shared.userScenarioType == .dmg_type16 ||
  982. KMMemberInfo.shared.userScenarioType == .dmg_type17 ||
  983. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  984. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  985. KMMemberInfo.shared.userScenarioType == .dmg_type23 ||
  986. KMMemberInfo.shared.userScenarioType == .dmg_type24 ||
  987. KMMemberInfo.shared.userScenarioType == .dmg_type25 ||
  988. KMMemberInfo.shared.userScenarioType == .dmg_type26 ||
  989. KMMemberInfo.shared.userScenarioType == .dmg_type27 ||
  990. KMMemberInfo.shared.userScenarioType == .dmg_type31 ||
  991. KMMemberInfo.shared.userScenarioType == .dmg_type32 ||
  992. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  993. KMMemberInfo.shared.userScenarioType == .dmg_type36 ||
  994. KMMemberInfo.shared.userScenarioType == .dmg_type38 ||
  995. KMMemberInfo.shared.userScenarioType == .dmg_type39 ||
  996. KMMemberInfo.shared.userScenarioType == .dmg_type40 ||
  997. KMMemberInfo.shared.userScenarioType == .dmg_type41 ||
  998. KMMemberInfo.shared.userScenarioType == .dmg_type42 ||
  999. KMMemberInfo.shared.userScenarioType == .dmg_type46 ||
  1000. KMMemberInfo.shared.userScenarioType == .dmg_type47 { // 订阅
  1001. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  1002. lockedImageView.image = NSImage(named: "UpgradeImage2")
  1003. number1ImageView.isHidden = false
  1004. number1ImageView.image = NSImage(named: "UpgradeImage")
  1005. number1Label.isHidden = true
  1006. number2Label.textColor = NSColor(hex: "FFFFFF")
  1007. number3Label.textColor = NSColor(hex: "FFFFFF")
  1008. number4Label.textColor = NSColor(hex: "FFFFFF")
  1009. number4_1Label.textColor = NSColor(hex: "FFFFFF")
  1010. number5Label.textColor = NSColor(hex: "FFFFFF")
  1011. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  1012. if KMMemberInfo.shared.vip_endDate.count > 0 {
  1013. spliLineImageView.isHidden = false
  1014. endDateLabel.isHidden = false
  1015. }
  1016. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  1017. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  1018. buyNow1ImageView.isHidden = true
  1019. buyNow1Box.isHidden = true
  1020. buyNow2Box.isHidden = true
  1021. } else { // 免费 & 到期
  1022. if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  1023. KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  1024. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  1025. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  1026. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  1027. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  1028. KMMemberInfo.shared.userScenarioType == .dmg_type34 ||
  1029. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  1030. KMMemberInfo.shared.userScenarioType == .dmg_type48 {
  1031. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  1032. lockedImageView.image = NSImage(named: "LockedImage")
  1033. number1ImageView.isHidden = true
  1034. number1Label.isHidden = false
  1035. number2Label.textColor = NSColor(hex:"42464D")
  1036. number3Label.textColor = NSColor(hex:"42464D")
  1037. number4Label.textColor = NSColor(hex: "42464D")
  1038. number4_1Label.textColor = NSColor(hex: "42464D")
  1039. number5Label.textColor = NSColor(hex: "42464D")
  1040. membershipLabel.textColor = NSColor(hex: "42464D")
  1041. rightsBox.fillColor = NSColor(named: "7094F6_0.1") ?? .white
  1042. buyNow1Box.fillColor = NSColor.clear
  1043. buyNow2Box.fillColor = NSColor.clear
  1044. buyNow1ImageView.isHidden = false
  1045. buyNow2ImageView.isHidden = false
  1046. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  1047. arrow2ImageView.image = NSImage(named: "BuyNewArrowImage1")
  1048. buyNow1Label.textColor = NSColor(named: "FFFFFF")
  1049. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  1050. buyNow2Label.textColor = NSColor(hex: "FFFFFF")
  1051. if KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  1052. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  1053. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  1054. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  1055. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  1056. KMMemberInfo.shared.userScenarioType == .dmg_type48 { // 到期
  1057. if KMMemberInfo.shared.vip_endDate.count > 0 &&
  1058. KMMemberInfo.shared.vip_status == 2 {
  1059. spliLineImageView.isHidden = false
  1060. endDateLabel.isHidden = false
  1061. endDateLabel.textColor = NSColor(named: "FA1E5D")
  1062. }
  1063. spliLineImageView.isHidden = false
  1064. endDateLabel.isHidden = false
  1065. buyNow2Box.isHidden = true
  1066. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  1067. } else { // 免费
  1068. if KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  1069. KMMemberInfo.shared.userScenarioType == .dmg_type34 {
  1070. buyNow2Box.isHidden = true
  1071. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  1072. }
  1073. }
  1074. }
  1075. }
  1076. buyNow1Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1077. guard let self = self else { return }
  1078. if KMMemberInfo.shared.userScenarioType == .dmg_type5 ||
  1079. KMMemberInfo.shared.userScenarioType == .dmg_type6 ||
  1080. KMMemberInfo.shared.userScenarioType == .dmg_type7 ||
  1081. KMMemberInfo.shared.userScenarioType == .dmg_type28 ||
  1082. KMMemberInfo.shared.userScenarioType == .dmg_type29 ||
  1083. KMMemberInfo.shared.userScenarioType == .dmg_type30 ||
  1084. KMMemberInfo.shared.userScenarioType == .dmg_type43 ||
  1085. KMMemberInfo.shared.userScenarioType == .dmg_type44 ||
  1086. KMMemberInfo.shared.userScenarioType == .dmg_type45 { // 买断
  1087. if mouseEntered {
  1088. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2Hover")
  1089. self.buyNow1Label.textColor = NSColor(hex: "4982E6")
  1090. } else {
  1091. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  1092. self.buyNow1Label.textColor = NSColor(hex: "0E1114")
  1093. }
  1094. } else if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  1095. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  1096. KMMemberInfo.shared.userScenarioType == .dmg_type10 ||
  1097. KMMemberInfo.shared.userScenarioType == .dmg_type12 ||
  1098. KMMemberInfo.shared.userScenarioType == .dmg_type13 ||
  1099. KMMemberInfo.shared.userScenarioType == .dmg_type14 ||
  1100. KMMemberInfo.shared.userScenarioType == .dmg_type15 ||
  1101. KMMemberInfo.shared.userScenarioType == .dmg_type16 ||
  1102. KMMemberInfo.shared.userScenarioType == .dmg_type17 ||
  1103. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  1104. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  1105. KMMemberInfo.shared.userScenarioType == .dmg_type23 ||
  1106. KMMemberInfo.shared.userScenarioType == .dmg_type24 ||
  1107. KMMemberInfo.shared.userScenarioType == .dmg_type25 ||
  1108. KMMemberInfo.shared.userScenarioType == .dmg_type26 ||
  1109. KMMemberInfo.shared.userScenarioType == .dmg_type27 ||
  1110. KMMemberInfo.shared.userScenarioType == .dmg_type31 ||
  1111. KMMemberInfo.shared.userScenarioType == .dmg_type32 ||
  1112. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  1113. KMMemberInfo.shared.userScenarioType == .dmg_type36 ||
  1114. KMMemberInfo.shared.userScenarioType == .dmg_type38 ||
  1115. KMMemberInfo.shared.userScenarioType == .dmg_type39 ||
  1116. KMMemberInfo.shared.userScenarioType == .dmg_type40 ||
  1117. KMMemberInfo.shared.userScenarioType == .dmg_type41 ||
  1118. KMMemberInfo.shared.userScenarioType == .dmg_type42 ||
  1119. KMMemberInfo.shared.userScenarioType == .dmg_type46 ||
  1120. KMMemberInfo.shared.userScenarioType == .dmg_type47 { // 订阅
  1121. if mouseEntered {
  1122. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2Hover")
  1123. self.buyNow1Label.textColor = NSColor(hex: "4982E6")
  1124. } else {
  1125. self.arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  1126. self.buyNow1Label.textColor = NSColor(hex: "0E1114")
  1127. }
  1128. } else {
  1129. if mouseEntered {
  1130. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  1131. } else {
  1132. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  1133. }
  1134. }
  1135. }
  1136. buyNow1Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1137. guard let self = self else { return }
  1138. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  1139. // 免费版,免费账号跳转购买比较表
  1140. self.viewModel.skipCompare(.lite_Base)
  1141. } else {
  1142. // 其它情况根据账号状态跳转不同比较表
  1143. NotificationCenter.default.post(name: NSNotification.Name("CloseMenuNotification"), object: nil)
  1144. KMMemberInfo.shared.productCompareShow()
  1145. }
  1146. }
  1147. buyNow2Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1148. guard let self = self else { return }
  1149. if mouseEntered {
  1150. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  1151. } else {
  1152. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  1153. }
  1154. }
  1155. buyNow2Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1156. guard let self = self else { return }
  1157. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  1158. self.viewModel.skipCompare(.trial)
  1159. } else if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  1160. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  1161. KMMemberInfo.shared.userScenarioType == .dmg_type34 {
  1162. self.viewModel.skipCompare(.trial)
  1163. }
  1164. }
  1165. accountCenterBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1166. guard let self = self else { return }
  1167. if mouseEntered {
  1168. self.accountCenterBox.fillColor = NSColor(named: "F5FAFF") ?? .white
  1169. self.accountLabel.textColor = NSColor(named: "3091FF")
  1170. self.accountImageView.image = NSImage(named: "AccountCenterImage_Hov")
  1171. } else {
  1172. self.accountCenterBox.fillColor = .clear
  1173. self.accountLabel.textColor = NSColor(named: "3091FF")
  1174. self.accountImageView.image = NSImage(named: "AccountCenterImage")
  1175. }
  1176. }
  1177. accountCenterBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1178. guard let self = self else { return }
  1179. self.viewModel.skipAccountCenter()
  1180. }
  1181. signOutBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1182. guard let self = self else { return }
  1183. if mouseEntered {
  1184. self.signOutLabel.textColor = NSColor(named: "3091FF")
  1185. self.signOutImageView.image = NSImage(named: "SignOutImage_Hov")
  1186. } else {
  1187. self.signOutLabel.textColor = NSColor(named: "3091FF")
  1188. self.signOutImageView.image = NSImage(named: "SignOutImage")
  1189. }
  1190. }
  1191. signOutBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1192. guard let self = self else { return }
  1193. self.viewModel.signOutAction()
  1194. }
  1195. closeAccountBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1196. guard let self = self else { return }
  1197. if mouseEntered {
  1198. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  1199. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage_hover")
  1200. } else {
  1201. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  1202. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  1203. }
  1204. }
  1205. closeAccountBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1206. guard let self = self else { return }
  1207. self.viewModel.closeAccountAction()
  1208. }
  1209. //远程控制
  1210. if let userViewInfoContent = KMAdvertisementManager.manager.info.userViewInfoContent {
  1211. buyNow1BoxLeftConst.constant = 0
  1212. buyNow2Box.isHidden = false
  1213. if userViewInfoContent.content?.isEmpty == false {
  1214. buyNow2Box.isHidden = true
  1215. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  1216. }
  1217. }
  1218. }
  1219. }