KMUserInfoViewController.swift 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211
  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. override func viewDidLoad() {
  91. super.viewDidLoad()
  92. // Do view setup here.
  93. self.view.wantsLayer = true
  94. self.view.layer?.backgroundColor = .white
  95. #if VERSION_FREE
  96. #if VERSION_DMG
  97. // DMG
  98. languageLocalized_DMG()
  99. initializeUI_DMG()
  100. #else
  101. // AppStore 免费版本
  102. languageLocalized()
  103. initializeUI()
  104. #endif
  105. #else
  106. // AppStore 付费版
  107. languageLocalized()
  108. initializeUI()
  109. #endif
  110. NotificationCenter.default.addObserver(self, selector: #selector(changeEffectiveAppearance), name: NSNotification.Name(rawValue: "kEffectiveAppearance"), object: nil)
  111. }
  112. @objc func changeEffectiveAppearance() {
  113. let isDarkModel = KMAdvertisementConfig.isDarkModel()
  114. if isDarkModel {
  115. self.view.appearance = NSAppearance(named: .darkAqua)
  116. } else {
  117. self.view.appearance = NSAppearance(named: .aqua)
  118. }
  119. #if VERSION_FREE
  120. #if VERSION_DMG
  121. // DMG
  122. initializeUI_DMG()
  123. #else
  124. // AppStore 免费版本
  125. initializeUI()
  126. #endif
  127. #else
  128. // AppStore 付费版
  129. initializeUI()
  130. #endif
  131. }
  132. // MARK: Private Method
  133. private func languageLocalized() -> Void {
  134. emailLabel.stringValue = KMMemberInfo.shared.userEmail
  135. productLabel.stringValue = NSLocalizedString("Personal Account", tableName: "MemberCenterLocalizable", comment: "")
  136. endDateLabel.stringValue = String(format: "%@ %@", KMMemberInfo.shared.vip_endDate,NSLocalizedString("expires", tableName: "MemberCenterLocalizable", comment: ""))
  137. membershipLabel.stringValue = NSLocalizedString("Membership Benefits", tableName: "MemberCenterLocalizable", comment: "")
  138. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  139. accountLabel.stringValue = NSLocalizedString("Account Center", tableName: "MemberCenterLocalizable", comment: "")
  140. signOutLabel.stringValue = NSLocalizedString("Sign out", tableName: "MemberCenterLocalizable", comment: "")
  141. if KMMemberInfo.shared.validFlag == "5" {
  142. closeAccountLabel.stringValue = NSLocalizedString("Undo Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  143. } else {
  144. closeAccountLabel.stringValue = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  145. }
  146. if KMMemberInfo.shared.vip_maxDeviceNum == 1 {
  147. number4Label.stringValue = NSLocalizedString("device", tableName: "MemberCenterLocalizable", comment: "")
  148. } else {
  149. number4Label.stringValue = NSLocalizedString("devices", tableName: "MemberCenterLocalizable", comment: "")
  150. }
  151. number4_1Label.stringValue = String(KMMemberInfo.shared.vip_maxDeviceNum)
  152. number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
  153. let platforms = viewModel.getPlatformsImages()
  154. if platforms.count == 4 {
  155. number3Label.stringValue = NSLocalizedString("All-platform Available", tableName: "MemberCenterLocalizable", comment: "")
  156. } else {
  157. number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
  158. }
  159. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  160. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  161. var isTrialPeriod = false
  162. #if !VERSION_DMG
  163. if IAPProductsManager.default().fourDevicesAllAccessPackNew12months_lite.isTrialPeriod == true {
  164. isTrialPeriod = true
  165. }
  166. #else
  167. #endif
  168. if isTrialPeriod {
  169. buyNow2Label.stringValue = NSLocalizedString("7-Day Free Trial", tableName: "MemberCenterLocalizable", comment: "")
  170. } else {
  171. buyNow2Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  172. }
  173. } else if KMMemberInfo.shared.userScenarioType == .lite_type9 {
  174. if(KMMemberInfo.shared.vip_status == 2) {
  175. buyNow1Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
  176. } else if (KMMemberInfo.shared.vip_status == 4) {
  177. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  178. } else {
  179. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  180. }
  181. } else if KMMemberInfo.shared.userScenarioType == .lite_type3 {
  182. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  183. } else if KMMemberInfo.shared.userScenarioType == .lite_type11 {
  184. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  185. } else if KMMemberInfo.shared.userScenarioType == .lite_type5 ||
  186. KMMemberInfo.shared.userScenarioType == .pro_type1 ||
  187. KMMemberInfo.shared.userScenarioType == .pro_type3 ||
  188. KMMemberInfo.shared.userScenarioType == .pro_type4 {
  189. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  190. } else if KMMemberInfo.shared.userScenarioType == .lite_type7 ||
  191. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  192. KMMemberInfo.shared.userScenarioType == .lite_type13 {
  193. buyNow1Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
  194. }
  195. }
  196. private func refreshEquity() -> Void {
  197. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  198. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  199. lockedImageView.image = NSImage(named: "LockedImage")
  200. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  201. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  202. number1ImageView.isHidden = true
  203. number1Label.isHidden = false
  204. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  205. number1Label.textColor = NSColor(hex: "0E1114")
  206. membershipLabel.textColor = NSColor(hex: "42464D")
  207. } else if KMMemberInfo.shared.userScenarioType == .lite_type2 {
  208. lockedLabel.stringValue = NSLocalizedString("Annual Plan", tableName: "MemberCenterLocalizable", comment: "")
  209. lockedImageView.image = NSImage(named: "UpgradeImage2")
  210. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  211. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  212. number1ImageView.isHidden = false
  213. number1Label.isHidden = true
  214. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  215. } else if KMMemberInfo.shared.userScenarioType == .lite_type3 {
  216. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  217. lockedImageView.image = NSImage(named: "LockedImage")
  218. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  219. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  220. number1ImageView.isHidden = true
  221. number1Label.isHidden = false
  222. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  223. number1Label.textColor = NSColor(hex: "0E1114")
  224. } else if KMMemberInfo.shared.userScenarioType == .lite_type4 {
  225. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  226. lockedImageView.image = NSImage(named: "UpgradeImage2")
  227. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  228. if KMMemberInfo.shared.vip_levels == "2" {
  229. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  230. } else {
  231. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  232. }
  233. number1ImageView.isHidden = false
  234. number1Label.isHidden = true
  235. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  236. } else if KMMemberInfo.shared.userScenarioType == .lite_type5 {
  237. lockedLabel.stringValue = NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "")
  238. lockedImageView.image = NSImage(named: "UpgradeImage2")
  239. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  240. if KMMemberInfo.shared.vip_levels == "2" {
  241. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  242. } else {
  243. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  244. }
  245. number1ImageView.isHidden = false
  246. number1Label.isHidden = true
  247. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
  248. } else if KMMemberInfo.shared.userScenarioType == .lite_type6 {
  249. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  250. lockedImageView.image = NSImage(named: "UpgradeImage2")
  251. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  252. if KMMemberInfo.shared.vip_levels == "2" {
  253. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  254. } else {
  255. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  256. }
  257. number1ImageView.isHidden = false
  258. number1Label.isHidden = true
  259. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  260. } else if KMMemberInfo.shared.userScenarioType == .lite_type7 {
  261. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  262. lockedImageView.image = NSImage(named: "LockedImage")
  263. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  264. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  265. number1ImageView.isHidden = true
  266. number1Label.isHidden = false
  267. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  268. number1Label.textColor = NSColor(hex: "0E1114")
  269. } else if KMMemberInfo.shared.userScenarioType == .lite_type8 {
  270. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  271. lockedImageView.image = NSImage(named: "UpgradeImage2")
  272. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  273. if KMMemberInfo.shared.vip_levels == "2" {
  274. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  275. } else {
  276. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  277. }
  278. number1ImageView.isHidden = false
  279. number1Label.isHidden = true
  280. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  281. } else if KMMemberInfo.shared.userScenarioType == .lite_type9 ||
  282. KMMemberInfo.shared.userScenarioType == .pro_type1 {
  283. if(KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_levels != "1") { //永久
  284. lockedLabel.stringValue = NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "")
  285. lockedImageView.image = NSImage(named: "UpgradeImage2")
  286. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  287. if KMMemberInfo.shared.vip_levels == "2" {
  288. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  289. } else {
  290. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  291. }
  292. number1ImageView.isHidden = false
  293. number1Label.isHidden = true
  294. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
  295. } else { //免费+订阅过期+试用过期
  296. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  297. lockedImageView.image = NSImage(named: "LockedImage")
  298. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  299. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  300. number1ImageView.isHidden = true
  301. number1Label.isHidden = false
  302. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  303. number1Label.textColor = NSColor(hex: "0E1114")
  304. }
  305. } else if KMMemberInfo.shared.userScenarioType == .lite_type10 {
  306. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  307. lockedImageView.image = NSImage(named: "UpgradeImage2")
  308. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  309. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  310. number1ImageView.isHidden = false
  311. number1Label.isHidden = true
  312. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  313. } else if KMMemberInfo.shared.userScenarioType == .lite_type11 {
  314. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  315. lockedImageView.image = NSImage(named: "LockedImage")
  316. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  317. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  318. number1ImageView.isHidden = true
  319. number1Label.isHidden = false
  320. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  321. number1Label.textColor = NSColor(hex: "0E1114")
  322. } else if KMMemberInfo.shared.userScenarioType == .lite_type12 {
  323. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  324. lockedImageView.image = NSImage(named: "UpgradeImage2")
  325. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  326. if(KMMemberInfo.shared.vip_levels == "2") {
  327. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  328. } else if((KMMemberInfo.shared.vip_levels == "3")) {
  329. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  330. }
  331. number1ImageView.isHidden = false
  332. number1Label.isHidden = true
  333. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  334. } else if KMMemberInfo.shared.userScenarioType == .lite_type13 {
  335. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  336. lockedImageView.image = NSImage(named: "UpgradeImage2")
  337. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  338. if KMMemberInfo.shared.vip_levels == "2" {
  339. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  340. } else {
  341. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  342. }
  343. number1ImageView.isHidden = false
  344. number1Label.isHidden = true
  345. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  346. } else if KMMemberInfo.shared.userScenarioType == .pro_type2 {
  347. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  348. lockedImageView.image = NSImage(named: "UpgradeImage2")
  349. number1Label.stringValue = NSLocalizedString("", tableName: "MemberCenterLocalizable", comment: "")
  350. if KMMemberInfo.shared.vip_levels == "2" {
  351. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  352. } else {
  353. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  354. }
  355. number1ImageView.isHidden = false
  356. number1Label.isHidden = true
  357. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  358. number1Label.textColor = NSColor(named: "FFFFFF")
  359. } else if KMMemberInfo.shared.userScenarioType == .pro_type3 {
  360. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  361. lockedImageView.image = NSImage(named: "LockedImage")
  362. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  363. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  364. number1ImageView.isHidden = true
  365. number1Label.isHidden = false
  366. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  367. number1Label.textColor = NSColor(hex: "0E1114")
  368. } else if KMMemberInfo.shared.userScenarioType == .pro_type4 {
  369. lockedLabel.stringValue = NSLocalizedString("Permanent", 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: "ButtonBackgroundImage4")
  380. } else if KMMemberInfo.shared.userScenarioType == .pro_type5 {
  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. } else {
  393. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  394. lockedImageView.image = NSImage(named: "LockedImage")
  395. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  396. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  397. number1ImageView.isHidden = true
  398. number1Label.isHidden = false
  399. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  400. number1Label.textColor = NSColor(hex: "0E1114")
  401. }
  402. }
  403. private func initializeUI() -> Void {
  404. refreshEquity()
  405. self.view.wantsLayer = true
  406. let isDarkModel = KMAdvertisementConfig.isDarkModel()
  407. if isDarkModel {
  408. self.view.layer?.backgroundColor = NSColor(hex: "0E1114").cgColor;
  409. } else {
  410. self.view.layer?.backgroundColor = NSColor(hex: "FFFFFF").cgColor;
  411. }
  412. userImageView.image = NSImage(named: "UserProfilePicture_Size")
  413. emailLabel.textColor = NSColor(named: "0E1114")
  414. emailLabel.font = NSFont.SFMediumFontWithSize(14)
  415. productLabel.textColor = NSColor(named: "42464D_1")
  416. productLabel.font = NSFont.SFProTextRegularFont(12)
  417. endDateLabel.textColor = NSColor(named: "42464D_1")
  418. endDateLabel.font = NSFont.SFProTextRegularFont(12)
  419. spliLineImageView.isHidden = true
  420. endDateLabel.isHidden = true
  421. if KMMemberInfo.shared.userScenarioType == .lite_type2 ||
  422. KMMemberInfo.shared.userScenarioType == .lite_type4 ||
  423. KMMemberInfo.shared.userScenarioType == .lite_type6 ||
  424. KMMemberInfo.shared.userScenarioType == .lite_type7 ||
  425. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  426. KMMemberInfo.shared.userScenarioType == .lite_type10 ||
  427. KMMemberInfo.shared.userScenarioType == .lite_type12 ||
  428. KMMemberInfo.shared.userScenarioType == .lite_type13 ||
  429. KMMemberInfo.shared.userScenarioType == .pro_type2 ||
  430. KMMemberInfo.shared.userScenarioType == .pro_type5 {
  431. if KMMemberInfo.shared.vip_endDate.count > 0 {
  432. spliLineImageView.isHidden = false
  433. endDateLabel.isHidden = false
  434. }
  435. } else if KMMemberInfo.shared.userScenarioType == .lite_type9 ||
  436. KMMemberInfo.shared.userScenarioType == .pro_type1 ||
  437. KMMemberInfo.shared.userScenarioType == .pro_type3 {
  438. if KMMemberInfo.shared.vip_endDate.count > 0 &&
  439. KMMemberInfo.shared.vip_status == 2 {
  440. spliLineImageView.isHidden = false
  441. endDateLabel.isHidden = false
  442. }
  443. }
  444. membershipLabel.font = NSFont.SFMediumFontWithSize(16)
  445. lockedLabel.font = NSFont.SFMediumFontWithSize(12)
  446. rightsBox.contentView = rightsView
  447. number1Label.font = NSFont.SFMediumFontWithSize(24)
  448. number1ImageView.image = NSImage(named: "UpgradeImage")
  449. number2Label.font = NSFont.SFProTextRegularFont(12)
  450. number3Label.font = NSFont.SFProTextRegularFont(12)
  451. number5Label.font = NSFont.SFProTextRegularFont(12)
  452. buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  453. buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  454. buyNow1Label.textColor = NSColor(named: "FFFFFF")
  455. buyNow1Label.font = NSFont.SFProTextRegularFont(14)
  456. buyNow2Label.textColor = NSColor(named: "FFFFFF")
  457. buyNow2Label.font = NSFont.SFProTextRegularFont(14)
  458. accountCenterBox.borderColor = NSColor(named: "3091FF") ?? .blue
  459. accountCenterBox.fillColor = .clear
  460. accountLabel.textColor = NSColor(named: "3091FF")
  461. accountLabel.font = NSFont.SFProTextRegularFont(14)
  462. accountImageView.image = NSImage(named: "AccountCenterImage")
  463. signOutLabel.textColor = NSColor(named: "3091FF")
  464. signOutLabel.font = NSFont.SFProTextRegularFont(14)
  465. signOutImageView.image = NSImage(named: "SignOutImage")
  466. closeAccountLabel.textColor = NSColor(named: "3091FF")
  467. closeAccountLabel.font = NSFont.SFProTextRegularFont(14)
  468. closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  469. var isNoOldSubscribed = false
  470. var isTrialPeriod = false
  471. #if VERSION_FREE
  472. #if !VERSION_DMG
  473. isNoOldSubscribed = IAPProductsManager.default().allAccessPack6months_lite.isSubscribed == false && IAPProductsManager.default().allAccessPack12months_lite.isSubscribed == false
  474. if IAPProductsManager.default().fourDevicesAllAccessPackNew12months_lite.isTrialPeriod == true {
  475. isTrialPeriod = true
  476. }
  477. #endif
  478. #endif
  479. if KMMemberInfo.shared.userScenarioType == .lite_type1 { //未试用
  480. buyBox.contentView = buyView1
  481. buyNow1ImageView.isHidden = false
  482. buyNow2ImageView.isHidden = false
  483. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  484. arrow2ImageView.image = NSImage(named: "BuyNewArrowImage1")
  485. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  486. buyNow2Label.textColor = NSColor(hex: "FFFFFF")
  487. if isTrialPeriod == true {
  488. buyNow2Box.isHidden = true
  489. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  490. }
  491. } else if KMMemberInfo.shared.userScenarioType == .pro_type3 {
  492. buyBox.contentView = buyView1
  493. buyNow1ImageView.isHidden = false
  494. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  495. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  496. buyNow2Box.isHidden = true
  497. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  498. } else if KMMemberInfo.shared.userScenarioType == .lite_type9 ||
  499. KMMemberInfo.shared.userScenarioType == .pro_type1 {
  500. buyBox.contentView = buyView1
  501. buyNow2Box.isHidden = true
  502. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  503. if((KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_levels != "1")) { //永久
  504. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  505. buyNow1Label.textColor = NSColor(hex: "42464D")
  506. } else {
  507. buyNow1ImageView.isHidden = false
  508. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  509. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  510. }
  511. } else if KMMemberInfo.shared.userScenarioType == .lite_type11 { //试用过期
  512. if(!isNoOldSubscribed) {
  513. buyBox.contentView = buyView1
  514. buyNow1ImageView.isHidden = false
  515. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  516. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  517. buyNow2Box.isHidden = true
  518. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  519. }
  520. } else if KMMemberInfo.shared.userScenarioType == .lite_type2 ||
  521. KMMemberInfo.shared.userScenarioType == .lite_type4 ||
  522. KMMemberInfo.shared.userScenarioType == .lite_type6 ||
  523. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  524. KMMemberInfo.shared.userScenarioType == .lite_type10 ||
  525. KMMemberInfo.shared.userScenarioType == .lite_type12 ||
  526. KMMemberInfo.shared.userScenarioType == .lite_type13 ||
  527. KMMemberInfo.shared.userScenarioType == .pro_type2 ||
  528. KMMemberInfo.shared.userScenarioType == .pro_type5 { //有订阅+试用中
  529. } else if KMMemberInfo.shared.userScenarioType == .lite_type7 ||
  530. KMMemberInfo.shared.userScenarioType == .lite_type3 { //试用过期+会员到期
  531. buyBox.contentView = buyView1
  532. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  533. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  534. buyNow2Box.isHidden = true
  535. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  536. } else {
  537. buyBox.contentView = buyView1
  538. buyNow2Box.isHidden = true
  539. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  540. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  541. buyNow1Label.textColor = NSColor(hex: "42464D")
  542. }
  543. if KMMemberInfo.shared.userScenarioType == .lite_type2 ||
  544. KMMemberInfo.shared.userScenarioType == .lite_type4 ||
  545. KMMemberInfo.shared.userScenarioType == .lite_type5 ||
  546. KMMemberInfo.shared.userScenarioType == .lite_type6 ||
  547. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  548. KMMemberInfo.shared.userScenarioType == .lite_type10 ||
  549. KMMemberInfo.shared.userScenarioType == .lite_type12 ||
  550. KMMemberInfo.shared.userScenarioType == .lite_type13 ||
  551. KMMemberInfo.shared.userScenarioType == .pro_type2 ||
  552. KMMemberInfo.shared.userScenarioType == .pro_type4 ||
  553. KMMemberInfo.shared.userScenarioType == .pro_type5 { //订阅或者买断
  554. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  555. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  556. buyNow1ImageView.isHidden = true
  557. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  558. number2Label.textColor = NSColor(hex: "FFFFFF")
  559. number3Label.textColor = NSColor(hex: "FFFFFF")
  560. number4Label.textColor = NSColor(hex: "FFFFFF")
  561. number4_1Label.textColor = NSColor(hex: "FFFFFF")
  562. number5Label.textColor = NSColor(hex: "FFFFFF")
  563. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  564. } else if(KMMemberInfo.shared.userScenarioType == .lite_type9 ||
  565. KMMemberInfo.shared.userScenarioType == .pro_type1) {
  566. if(KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_levels != "1") { //永久
  567. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  568. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  569. buyNow1ImageView.isHidden = true
  570. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  571. number2Label.textColor = NSColor(hex: "FFFFFF")
  572. number3Label.textColor = NSColor(hex: "FFFFFF")
  573. number4Label.textColor = NSColor(hex: "FFFFFF")
  574. number4_1Label.textColor = NSColor(hex: "FFFFFF")
  575. number5Label.textColor = NSColor(hex: "FFFFFF")
  576. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  577. } else {
  578. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  579. membershipLabel.textColor = NSColor(hex: "42464D")
  580. buyNow1ImageView.isHidden = false
  581. buyNow1Box.fillColor = NSColor.clear
  582. number2Label.textColor = NSColor(hex:"42464D")
  583. number3Label.textColor = NSColor(hex:"42464D")
  584. number4Label.textColor = NSColor(hex: "42464D")
  585. number4_1Label.textColor = NSColor(hex: "42464D")
  586. number5Label.textColor = NSColor(hex: "42464D")
  587. membershipLabel.textColor = NSColor(hex: "42464D")
  588. }
  589. } else {
  590. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  591. membershipLabel.textColor = NSColor(hex: "42464D")
  592. buyNow1ImageView.isHidden = false
  593. buyNow1Box.fillColor = NSColor.clear
  594. number2Label.textColor = NSColor(hex:"42464D")
  595. number3Label.textColor = NSColor(hex:"42464D")
  596. number4Label.textColor = NSColor(hex: "42464D")
  597. number4_1Label.textColor = NSColor(hex: "42464D")
  598. number5Label.textColor = NSColor(hex: "42464D")
  599. membershipLabel.textColor = NSColor(hex: "42464D")
  600. }
  601. lockedLabel.textColor = NSColor(hex: "42464D")
  602. let platforms = viewModel.getPlatformsImages()
  603. if platforms.count == 4 {
  604. iconBox.contentView = iconView1
  605. icon1ImageView.image = platforms[0]
  606. icon2ImageView.image = platforms[1]
  607. icon3ImageView.image = platforms[2]
  608. icon4ImageView.image = platforms[3]
  609. } else if platforms.count == 3 {
  610. iconBox.contentView = iconView2
  611. icon5ImageView.image = platforms[0]
  612. icon6ImageView.image = platforms[1]
  613. icon7ImageView.image = platforms[2]
  614. } else if platforms.count == 2 {
  615. iconBox.contentView = iconView3
  616. icon8ImageView.image = platforms[0]
  617. icon9ImageView.image = platforms[1]
  618. } else if platforms.count == 1 {
  619. iconBox.contentView = iconView4
  620. icon10ImageView.image = platforms[0]
  621. }
  622. buyNow1Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  623. guard let self = self else { return }
  624. if KMMemberInfo.shared.userScenarioType == .lite_type2 ||
  625. KMMemberInfo.shared.userScenarioType == .lite_type4 ||
  626. KMMemberInfo.shared.userScenarioType == .lite_type5 ||
  627. KMMemberInfo.shared.userScenarioType == .lite_type6 ||
  628. KMMemberInfo.shared.userScenarioType == .lite_type8 ||
  629. KMMemberInfo.shared.userScenarioType == .lite_type10 ||
  630. KMMemberInfo.shared.userScenarioType == .lite_type12 ||
  631. KMMemberInfo.shared.userScenarioType == .lite_type13 ||
  632. KMMemberInfo.shared.userScenarioType == .pro_type2 ||
  633. KMMemberInfo.shared.userScenarioType == .pro_type4 ||
  634. KMMemberInfo.shared.userScenarioType == .pro_type5 { //订阅或者买断
  635. } else {
  636. if mouseEntered {
  637. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  638. } else {
  639. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  640. }
  641. }
  642. }
  643. buyNow1Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  644. guard let self = self else { return }
  645. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  646. // 免费版,免费账号跳转购买比较表
  647. self.viewModel.skipCompare(.lite_Base)
  648. } else {
  649. // 其它情况根据账号状态跳转不同比较表
  650. KMMemberInfo.shared.productCompareShow()
  651. }
  652. }
  653. buyNow2Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  654. guard let self = self else { return }
  655. if mouseEntered {
  656. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  657. } else {
  658. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  659. }
  660. }
  661. buyNow2Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  662. guard let self = self else { return }
  663. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  664. // 免费版,免费账号跳转试用比较表
  665. self.viewModel.skipCompare(.trial)
  666. }
  667. }
  668. accountCenterBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  669. guard let self = self else { return }
  670. if mouseEntered {
  671. self.accountCenterBox.fillColor = NSColor(named: "F5FAFF") ?? .white
  672. self.accountLabel.textColor = NSColor(named: "3091FF")
  673. self.accountImageView.image = NSImage(named: "AccountCenterImage_Hov")
  674. } else {
  675. self.accountCenterBox.fillColor = .clear
  676. self.accountLabel.textColor = NSColor(named: "3091FF")
  677. self.accountImageView.image = NSImage(named: "AccountCenterImage")
  678. }
  679. }
  680. accountCenterBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  681. guard let self = self else { return }
  682. self.viewModel.skipAccountCenter()
  683. }
  684. signOutBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  685. guard let self = self else { return }
  686. if mouseEntered {
  687. self.signOutLabel.textColor = NSColor(named: "3091FF")
  688. self.signOutImageView.image = NSImage(named: "SignOutImage_Hov")
  689. } else {
  690. self.signOutLabel.textColor = NSColor(named: "3091FF")
  691. self.signOutImageView.image = NSImage(named: "SignOutImage")
  692. }
  693. }
  694. signOutBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  695. guard let self = self else { return }
  696. self.viewModel.signOutAction()
  697. }
  698. closeAccountBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  699. guard let self = self else { return }
  700. if mouseEntered {
  701. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  702. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage_hover")
  703. } else {
  704. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  705. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  706. }
  707. }
  708. closeAccountBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  709. guard let self = self else { return }
  710. self.viewModel.closeAccountAction()
  711. }
  712. if isTrialPeriod == false { //没有试用过,才能显示,不然就算远程支持,功能上也不支持远程控制
  713. //远程控制
  714. if let userViewInfoContent = KMAdvertisementManager.manager.info.userViewInfoContent {
  715. buyNow1BoxLeftConst.constant = 0
  716. buyNow2Box.isHidden = false
  717. if userViewInfoContent.content?.isEmpty == false {
  718. buyNow2Box.isHidden = true
  719. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  720. }
  721. }
  722. }
  723. }
  724. // MARK: Action Method
  725. private func languageLocalized_DMG() -> Void {
  726. emailLabel.stringValue = KMMemberInfo.shared.userEmail
  727. productLabel.stringValue = NSLocalizedString("Personal Account", tableName: "MemberCenterLocalizable", comment: "")
  728. endDateLabel.stringValue = String(format: "%@ %@", KMMemberInfo.shared.vip_endDate,NSLocalizedString("expires", tableName: "MemberCenterLocalizable", comment: ""))
  729. membershipLabel.stringValue = NSLocalizedString("Membership Benefits", tableName: "MemberCenterLocalizable", comment: "")
  730. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  731. accountLabel.stringValue = NSLocalizedString("Account Center", tableName: "MemberCenterLocalizable", comment: "")
  732. signOutLabel.stringValue = NSLocalizedString("Sign out", tableName: "MemberCenterLocalizable", comment: "")
  733. if KMMemberInfo.shared.validFlag == "5" {
  734. closeAccountLabel.stringValue = NSLocalizedString("Undo Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  735. } else {
  736. closeAccountLabel.stringValue = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
  737. }
  738. if KMMemberInfo.shared.vip_maxDeviceNum == 1 {
  739. number4Label.stringValue = NSLocalizedString("device", tableName: "MemberCenterLocalizable", comment: "")
  740. } else {
  741. number4Label.stringValue = NSLocalizedString("devices", tableName: "MemberCenterLocalizable", comment: "")
  742. }
  743. number4_1Label.stringValue = String(KMMemberInfo.shared.vip_maxDeviceNum)
  744. number5Label.stringValue = NSLocalizedString("Devices Access", tableName: "MemberCenterLocalizable", comment: "")
  745. let platforms = viewModel.getPlatformsImages()
  746. if platforms.count == 4 {
  747. number3Label.stringValue = NSLocalizedString("All-platform Available", tableName: "MemberCenterLocalizable", comment: "")
  748. } else {
  749. number3Label.stringValue = NSLocalizedString("Platform", tableName: "MemberCenterLocalizable", comment: "")
  750. }
  751. if KMMemberInfo.shared.userScenarioType == .dmg_type5 ||
  752. KMMemberInfo.shared.userScenarioType == .dmg_type6 ||
  753. KMMemberInfo.shared.userScenarioType == .dmg_type7 ||
  754. KMMemberInfo.shared.userScenarioType == .dmg_type28 ||
  755. KMMemberInfo.shared.userScenarioType == .dmg_type29 ||
  756. KMMemberInfo.shared.userScenarioType == .dmg_type30 ||
  757. KMMemberInfo.shared.userScenarioType == .dmg_type43 ||
  758. KMMemberInfo.shared.userScenarioType == .dmg_type44 ||
  759. KMMemberInfo.shared.userScenarioType == .dmg_type45 { // 买断
  760. lockedLabel.stringValue = NSLocalizedString("Permanent", tableName: "MemberCenterLocalizable", comment: "")
  761. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  762. buyNow1Label.stringValue = NSLocalizedString("Upgrade Now", tableName: "MemberCenterLocalizable", comment: "")
  763. } else if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  764. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  765. KMMemberInfo.shared.userScenarioType == .dmg_type10 ||
  766. KMMemberInfo.shared.userScenarioType == .dmg_type12 ||
  767. KMMemberInfo.shared.userScenarioType == .dmg_type13 ||
  768. KMMemberInfo.shared.userScenarioType == .dmg_type14 ||
  769. KMMemberInfo.shared.userScenarioType == .dmg_type15 ||
  770. KMMemberInfo.shared.userScenarioType == .dmg_type16 ||
  771. KMMemberInfo.shared.userScenarioType == .dmg_type17 ||
  772. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  773. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  774. KMMemberInfo.shared.userScenarioType == .dmg_type23 ||
  775. KMMemberInfo.shared.userScenarioType == .dmg_type24 ||
  776. KMMemberInfo.shared.userScenarioType == .dmg_type25 ||
  777. KMMemberInfo.shared.userScenarioType == .dmg_type26 ||
  778. KMMemberInfo.shared.userScenarioType == .dmg_type27 ||
  779. KMMemberInfo.shared.userScenarioType == .dmg_type31 ||
  780. KMMemberInfo.shared.userScenarioType == .dmg_type32 ||
  781. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  782. KMMemberInfo.shared.userScenarioType == .dmg_type36 ||
  783. KMMemberInfo.shared.userScenarioType == .dmg_type38 ||
  784. KMMemberInfo.shared.userScenarioType == .dmg_type39 ||
  785. KMMemberInfo.shared.userScenarioType == .dmg_type40 ||
  786. KMMemberInfo.shared.userScenarioType == .dmg_type41 ||
  787. KMMemberInfo.shared.userScenarioType == .dmg_type42 ||
  788. KMMemberInfo.shared.userScenarioType == .dmg_type46 ||
  789. KMMemberInfo.shared.userScenarioType == .dmg_type47 { // 订阅
  790. lockedLabel.stringValue = NSLocalizedString("Subscription", tableName: "MemberCenterLocalizable", comment: "")
  791. if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  792. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  793. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  794. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  795. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  796. KMMemberInfo.shared.userScenarioType == .dmg_type36 {
  797. number2Label.stringValue = NSLocalizedString("Standard Version", tableName: "MemberCenterLocalizable", comment: "")
  798. } else {
  799. number2Label.stringValue = NSLocalizedString("Advanced Version", tableName: "MemberCenterLocalizable", comment: "")
  800. }
  801. } else { // 免费 & 到期
  802. if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  803. KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  804. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  805. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  806. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  807. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  808. KMMemberInfo.shared.userScenarioType == .dmg_type34 ||
  809. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  810. KMMemberInfo.shared.userScenarioType == .dmg_type48 {
  811. lockedLabel.stringValue = NSLocalizedString("Locked", tableName: "MemberCenterLocalizable", comment: "")
  812. number1Label.stringValue = NSLocalizedString("150+", tableName: "MemberCenterLocalizable", comment: "")
  813. number2Label.stringValue = NSLocalizedString("Benefits of Functions", tableName: "MemberCenterLocalizable", comment: "")
  814. if KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  815. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  816. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  817. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  818. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  819. KMMemberInfo.shared.userScenarioType == .dmg_type48 { // 到期
  820. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  821. } else { // 免费
  822. }
  823. if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  824. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  825. KMMemberInfo.shared.userScenarioType == .dmg_type34 {
  826. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  827. buyNow2Label.stringValue = NSLocalizedString("7-Day Free Trial", tableName: "MemberCenterLocalizable", comment: "")
  828. } else if KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  829. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  830. KMMemberInfo.shared.userScenarioType == .dmg_type37 {
  831. buyNow1Label.stringValue = NSLocalizedString("Buy Now", tableName: "MemberCenterLocalizable", comment: "")
  832. } else if KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  833. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  834. KMMemberInfo.shared.userScenarioType == .dmg_type48 {
  835. buyNow1Label.stringValue = NSLocalizedString("Renew now", tableName: "MemberCenterLocalizable", comment: "")
  836. }
  837. }
  838. }
  839. }
  840. private func initializeUI_DMG() -> Void {
  841. self.view.wantsLayer = true
  842. let isDarkModel = KMAdvertisementConfig.isDarkModel()
  843. if isDarkModel {
  844. self.view.layer?.backgroundColor = NSColor(hex: "0E1114").cgColor;
  845. } else {
  846. self.view.layer?.backgroundColor = NSColor(hex: "FFFFFF").cgColor;
  847. }
  848. rightsBox.contentView = rightsView
  849. buyBox.contentView = buyView1
  850. userImageView.image = NSImage(named: "UserProfilePicture_Size")
  851. emailLabel.textColor = NSColor(named: "0E1114")
  852. emailLabel.font = NSFont.SFMediumFontWithSize(14)
  853. productLabel.textColor = NSColor(named: "42464D_1")
  854. productLabel.font = NSFont.SFProTextRegularFont(12)
  855. endDateLabel.textColor = NSColor(named: "42464D_1")
  856. endDateLabel.font = NSFont.SFProTextRegularFont(12)
  857. spliLineImageView.isHidden = true
  858. endDateLabel.isHidden = true
  859. number1Label.font = NSFont.SFMediumFontWithSize(24)
  860. number1Label.textColor = NSColor(hex: "0E1114")
  861. number2Label.font = NSFont.SFProTextRegularFont(12)
  862. number3Label.font = NSFont.SFProTextRegularFont(12)
  863. number5Label.font = NSFont.SFProTextRegularFont(12)
  864. membershipLabel.font = NSFont.SFMediumFontWithSize(16)
  865. lockedLabel.font = NSFont.SFMediumFontWithSize(12)
  866. lockedLabel.textColor = NSColor(hex: "42464D")
  867. accountCenterBox.borderColor = NSColor(named: "3091FF") ?? .blue
  868. accountCenterBox.fillColor = .clear
  869. accountLabel.textColor = NSColor(named: "3091FF")
  870. accountLabel.font = NSFont.SFProTextRegularFont(14)
  871. accountImageView.image = NSImage(named: "AccountCenterImage")
  872. signOutLabel.textColor = NSColor(named: "3091FF")
  873. signOutLabel.font = NSFont.SFProTextRegularFont(14)
  874. signOutImageView.image = NSImage(named: "SignOutImage")
  875. closeAccountLabel.textColor = NSColor(named: "3091FF")
  876. closeAccountLabel.font = NSFont.SFProTextRegularFont(14)
  877. closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  878. buyNow1Label.font = NSFont.SFProTextRegularFont(14)
  879. buyNow2Label.font = NSFont.SFProTextRegularFont(14)
  880. let platforms = viewModel.getPlatformsImages()
  881. if platforms.count == 4 {
  882. iconBox.contentView = iconView1
  883. icon1ImageView.image = platforms[0]
  884. icon2ImageView.image = platforms[1]
  885. icon3ImageView.image = platforms[2]
  886. icon4ImageView.image = platforms[3]
  887. } else if platforms.count == 3 {
  888. iconBox.contentView = iconView2
  889. icon5ImageView.image = platforms[0]
  890. icon6ImageView.image = platforms[1]
  891. icon7ImageView.image = platforms[2]
  892. } else if platforms.count == 2 {
  893. iconBox.contentView = iconView3
  894. icon8ImageView.image = platforms[0]
  895. icon9ImageView.image = platforms[1]
  896. } else if platforms.count == 1 {
  897. iconBox.contentView = iconView4
  898. icon10ImageView.image = platforms[0]
  899. }
  900. buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  901. buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  902. if KMMemberInfo.shared.userScenarioType == .dmg_type5 ||
  903. KMMemberInfo.shared.userScenarioType == .dmg_type6 ||
  904. KMMemberInfo.shared.userScenarioType == .dmg_type7 ||
  905. KMMemberInfo.shared.userScenarioType == .dmg_type28 ||
  906. KMMemberInfo.shared.userScenarioType == .dmg_type29 ||
  907. KMMemberInfo.shared.userScenarioType == .dmg_type30 ||
  908. KMMemberInfo.shared.userScenarioType == .dmg_type43 ||
  909. KMMemberInfo.shared.userScenarioType == .dmg_type44 ||
  910. KMMemberInfo.shared.userScenarioType == .dmg_type45 { // 买断
  911. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage4")
  912. lockedImageView.image = NSImage(named: "UpgradeImage2")
  913. number1ImageView.isHidden = false
  914. number1ImageView.image = NSImage(named: "UpgradeImage")
  915. number1Label.isHidden = true
  916. number2Label.textColor = NSColor(hex: "FFFFFF")
  917. number3Label.textColor = NSColor(hex: "FFFFFF")
  918. number4Label.textColor = NSColor(hex: "FFFFFF")
  919. number4_1Label.textColor = NSColor(hex: "FFFFFF")
  920. number5Label.textColor = NSColor(hex: "FFFFFF")
  921. membershipLabel.textColor = NSColor(hex: "FFFFFF")
  922. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  923. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  924. buyNow1ImageView.isHidden = true
  925. buyNow2Box.isHidden = true
  926. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  927. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage2")
  928. buyNow1Label.textColor = NSColor(hex: "42464D")
  929. } else if KMMemberInfo.shared.userScenarioType == .dmg_type8 ||
  930. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  931. KMMemberInfo.shared.userScenarioType == .dmg_type10 ||
  932. KMMemberInfo.shared.userScenarioType == .dmg_type12 ||
  933. KMMemberInfo.shared.userScenarioType == .dmg_type13 ||
  934. KMMemberInfo.shared.userScenarioType == .dmg_type14 ||
  935. KMMemberInfo.shared.userScenarioType == .dmg_type15 ||
  936. KMMemberInfo.shared.userScenarioType == .dmg_type16 ||
  937. KMMemberInfo.shared.userScenarioType == .dmg_type17 ||
  938. KMMemberInfo.shared.userScenarioType == .dmg_type20 ||
  939. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  940. KMMemberInfo.shared.userScenarioType == .dmg_type23 ||
  941. KMMemberInfo.shared.userScenarioType == .dmg_type24 ||
  942. KMMemberInfo.shared.userScenarioType == .dmg_type25 ||
  943. KMMemberInfo.shared.userScenarioType == .dmg_type26 ||
  944. KMMemberInfo.shared.userScenarioType == .dmg_type27 ||
  945. KMMemberInfo.shared.userScenarioType == .dmg_type31 ||
  946. KMMemberInfo.shared.userScenarioType == .dmg_type32 ||
  947. KMMemberInfo.shared.userScenarioType == .dmg_type35 ||
  948. KMMemberInfo.shared.userScenarioType == .dmg_type36 ||
  949. KMMemberInfo.shared.userScenarioType == .dmg_type38 ||
  950. KMMemberInfo.shared.userScenarioType == .dmg_type39 ||
  951. KMMemberInfo.shared.userScenarioType == .dmg_type40 ||
  952. KMMemberInfo.shared.userScenarioType == .dmg_type41 ||
  953. KMMemberInfo.shared.userScenarioType == .dmg_type42 ||
  954. KMMemberInfo.shared.userScenarioType == .dmg_type46 ||
  955. KMMemberInfo.shared.userScenarioType == .dmg_type47 { // 订阅
  956. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage5")
  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. if KMMemberInfo.shared.userScenarioType == .dmg_type13 ||
  968. KMMemberInfo.shared.userScenarioType == .dmg_type15 ||
  969. KMMemberInfo.shared.userScenarioType == .dmg_type9 ||
  970. KMMemberInfo.shared.userScenarioType == .dmg_type17 ||
  971. KMMemberInfo.shared.userScenarioType == .dmg_type25 ||
  972. KMMemberInfo.shared.userScenarioType == .dmg_type27 ||
  973. KMMemberInfo.shared.userScenarioType == .dmg_type21 ||
  974. KMMemberInfo.shared.userScenarioType == .dmg_type32 ||
  975. KMMemberInfo.shared.userScenarioType == .dmg_type40 ||
  976. KMMemberInfo.shared.userScenarioType == .dmg_type42 ||
  977. KMMemberInfo.shared.userScenarioType == .dmg_type36 ||
  978. KMMemberInfo.shared.userScenarioType == .dmg_type47 {
  979. if KMMemberInfo.shared.vip_endDate.count > 0 {
  980. spliLineImageView.isHidden = false
  981. endDateLabel.isHidden = false
  982. }
  983. }
  984. rightsBox.fillColor = NSColor(named: "FFFFFF_0.2") ?? .white
  985. buyNow1Box.fillColor = NSColor(hex: "FFFFFF")
  986. buyNow1ImageView.isHidden = true
  987. buyNow1Box.isHidden = true
  988. buyNow2Box.isHidden = true
  989. } else { // 免费 & 到期
  990. if KMMemberInfo.shared.userScenarioType == .dmg_type4 ||
  991. KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  992. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  993. KMMemberInfo.shared.userScenarioType == .dmg_type19 ||
  994. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  995. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  996. KMMemberInfo.shared.userScenarioType == .dmg_type34 ||
  997. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  998. KMMemberInfo.shared.userScenarioType == .dmg_type48 {
  999. centerBackgroud.image = NSImage(named: "ButtonBackgroundImage3")
  1000. lockedImageView.image = NSImage(named: "LockedImage")
  1001. number1ImageView.isHidden = true
  1002. number1Label.isHidden = false
  1003. number2Label.textColor = NSColor(hex:"42464D")
  1004. number3Label.textColor = NSColor(hex:"42464D")
  1005. number4Label.textColor = NSColor(hex: "42464D")
  1006. number4_1Label.textColor = NSColor(hex: "42464D")
  1007. number5Label.textColor = NSColor(hex: "42464D")
  1008. membershipLabel.textColor = NSColor(hex: "42464D")
  1009. rightsBox.fillColor = NSColor(named: "7094F6_0.1") ?? .white
  1010. buyNow1Box.fillColor = NSColor.clear
  1011. buyNow2Box.fillColor = NSColor.clear
  1012. buyNow1ImageView.isHidden = false
  1013. buyNow2ImageView.isHidden = false
  1014. arrow1ImageView.image = NSImage(named: "BuyNewArrowImage1")
  1015. arrow2ImageView.image = NSImage(named: "BuyNewArrowImage1")
  1016. buyNow1Label.textColor = NSColor(named: "FFFFFF")
  1017. buyNow1Label.textColor = NSColor(hex: "FFFFFF")
  1018. buyNow2Label.textColor = NSColor(hex: "FFFFFF")
  1019. if KMMemberInfo.shared.userScenarioType == .dmg_type11 ||
  1020. KMMemberInfo.shared.userScenarioType == .dmg_type18 ||
  1021. KMMemberInfo.shared.userScenarioType == .dmg_type22 ||
  1022. KMMemberInfo.shared.userScenarioType == .dmg_type33 ||
  1023. KMMemberInfo.shared.userScenarioType == .dmg_type37 ||
  1024. KMMemberInfo.shared.userScenarioType == .dmg_type48 { // 到期
  1025. if KMMemberInfo.shared.vip_endDate.count > 0 &&
  1026. KMMemberInfo.shared.vip_status == 2 {
  1027. spliLineImageView.isHidden = false
  1028. endDateLabel.isHidden = false
  1029. endDateLabel.textColor = NSColor(named: "FA1E5D")
  1030. }
  1031. spliLineImageView.isHidden = false
  1032. endDateLabel.isHidden = false
  1033. buyNow2Box.isHidden = true
  1034. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  1035. } else { // 免费
  1036. }
  1037. }
  1038. }
  1039. buyNow1Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1040. guard let self = self else { return }
  1041. if mouseEntered {
  1042. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  1043. } else {
  1044. self.buyNow1ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  1045. }
  1046. }
  1047. buyNow1Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1048. guard let self = self else { return }
  1049. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  1050. // 免费版,免费账号跳转购买比较表
  1051. self.viewModel.skipCompare(.lite_Base)
  1052. } else {
  1053. // 其它情况根据账号状态跳转不同比较表
  1054. KMMemberInfo.shared.productCompareShow()
  1055. }
  1056. }
  1057. buyNow2Box.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1058. guard let self = self else { return }
  1059. if mouseEntered {
  1060. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2_Hov")
  1061. } else {
  1062. self.buyNow2ImageView.image = NSImage(named: "ButtonBackgroundImage2")
  1063. }
  1064. }
  1065. buyNow2Box.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1066. guard let self = self else { return }
  1067. if KMMemberInfo.shared.userScenarioType == .lite_type1 {
  1068. self.viewModel.skipCompare(.trial)
  1069. }
  1070. }
  1071. accountCenterBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1072. guard let self = self else { return }
  1073. if mouseEntered {
  1074. self.accountCenterBox.fillColor = NSColor(named: "F5FAFF") ?? .white
  1075. self.accountLabel.textColor = NSColor(named: "3091FF")
  1076. self.accountImageView.image = NSImage(named: "AccountCenterImage_Hov")
  1077. } else {
  1078. self.accountCenterBox.fillColor = .clear
  1079. self.accountLabel.textColor = NSColor(named: "3091FF")
  1080. self.accountImageView.image = NSImage(named: "AccountCenterImage")
  1081. }
  1082. }
  1083. accountCenterBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1084. guard let self = self else { return }
  1085. self.viewModel.skipAccountCenter()
  1086. }
  1087. signOutBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1088. guard let self = self else { return }
  1089. if mouseEntered {
  1090. self.signOutLabel.textColor = NSColor(named: "3091FF")
  1091. self.signOutImageView.image = NSImage(named: "SignOutImage_Hov")
  1092. } else {
  1093. self.signOutLabel.textColor = NSColor(named: "3091FF")
  1094. self.signOutImageView.image = NSImage(named: "SignOutImage")
  1095. }
  1096. }
  1097. signOutBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1098. guard let self = self else { return }
  1099. self.viewModel.signOutAction()
  1100. }
  1101. closeAccountBox.moveCallback = { [weak self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
  1102. guard let self = self else { return }
  1103. if mouseEntered {
  1104. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  1105. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage_hover")
  1106. } else {
  1107. self.closeAccountLabel.textColor = NSColor(named: "3091FF")
  1108. self.closeAccountImageView.image = NSImage(named: "CloseAccountImage")
  1109. }
  1110. }
  1111. closeAccountBox.downCallback = { [weak self](downEntered: Bool, mouseBox: KMBox, event) -> Void in
  1112. guard let self = self else { return }
  1113. self.viewModel.closeAccountAction()
  1114. }
  1115. //远程控制
  1116. if let userViewInfoContent = KMAdvertisementManager.manager.info.userViewInfoContent {
  1117. buyNow1BoxLeftConst.constant = 0
  1118. buyNow2Box.isHidden = false
  1119. if userViewInfoContent.content?.isEmpty == false {
  1120. buyNow2Box.isHidden = true
  1121. buyNow1BoxLeftConst.constant = (CGRectGetWidth(view.bounds) - CGRectGetWidth(buyNow1Box.frame))/2
  1122. }
  1123. }
  1124. }
  1125. }